OSDN Git Service

Properly check glibc.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
2
3         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
4         check glibc.
5
6 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
7
8         PR target/22152
9         * config/i386/mmx.md (*mov<mode>_internal_rex64,
10         *mov<mode>_internal_avx, *mov<mode>_internal,
11         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
12         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
13
14 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
15
16         * c-typeck.c (do_warn_double_promotion): Remove.
17         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
18         Objective-C++ too.
19
20 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
21
22         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
23         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
24         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
25         argument type to reg_class_t. Change result type to bool.
26         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
27
28 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
29
30         PR libobjc/19850
31         * gthr-posix.h (__gthread_objc_thread_detach): Use
32         _objc_thread_attribs when detaching a thread.
33         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
34
35 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
36
37         PR target/45524
38         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
39         * configure: Regenerated.
40
41 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
42
43         * combine.c (try_combine): Set subst_low_luid to i0.
44
45 2010-09-06  Richard Guenther  <rguenther@suse.de>
46
47         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
48         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
49         (build_aligned_type): Declare.
50         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
51         (check_aligned_type): New function.
52         (build_aligned_type): Likewise.
53         * expr.c (expand_assignment): Handle misaligned stores via
54         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
55         (expand_expr_real_1): Likewise.
56         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
57         * tree-vect-stmts.c (vectorizable_store): Do not build
58         MISALIGNED_INDIRECT_REF but initialize alignment information.
59         (vectorizable_load): Likewise.
60         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
61         handling.
62         * cfgexpand.c (expand_debug_expr): Likewise.
63         * dwarf2out.c (loc_list_from_tree): Likewise.
64         * fold-const.c (maybe_lvalue_p): Likewise.
65         (operand_equal_p): Likewise.
66         (build_fold_addr_expr_with_type_loc): Likewise.
67         * gimplify.c (gimplify_addr_expr): Likewise.
68         (gimplify_expr): Likewise.
69         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
70         (verify_gimple_assign_single): Likewise.
71         * tree-dump.c (dequeue_and_dump): Likewise.
72         (tree_could_trap_p): Likewise.
73         * tree-predcom.c (ref_at_iteration): Likewise.
74         * tree-pretty-print.c (dump_generic_node): Likewise.
75         (op_code_prio): Likewise.
76         (op_symbol_code): Likewise.
77         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
78         * tree-ssa-loop-im.c (for_each_index): Likewise.
79         (gen_lsm_tmp_name): Likewise.
80         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
81         (find_interesting_uses_address): Likewise.
82         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
83         * tree-ssa-operands.c (get_expr_operands): Likewise.
84         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
85         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
86         (ao_ref_init_from_vn_reference): Likewise.
87         * tree.c (staticp): Likewise.
88         (build1_stat): Likewise.
89         (reference_alias_ptr_type): Likewise.
90         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
91         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
92         MISALIGNED_INDIRECT_REF handling.
93
94 2010-09-06  Richard Guenther  <rguenther@suse.de>
95
96         PR tree-optimization/45534
97         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
98         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
99         on the target.
100         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
101         valid on the target.
102
103 2010-09-06  Andreas Schwab  <schwab@redhat.com>
104
105         * configure.ac: Quote argument of AC_MSG_WARN.
106         * configure: Regenerate.
107
108 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
109
110         * sel-sched.c (move_cond_jump): Correct arguments to
111         maybe_tidy_empty_bb.
112         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
113
114 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
115
116         PR rtl-optimization/44919
117         * sel-sched.c (move_cond_jump): Remove assert, check that
118         the several blocks case can only happen with mutually exclusive
119         insns instead.  Rewrite the movement code to support moving through
120         several basic blocks.
121
122 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
123
124         * config/i386/i386.md (iptrsize): New mode attribute.
125         (tp_seg): Ditto.
126         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
127         mode iterator.
128         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
129         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
130         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
131         (stack_tls_protect_set_<mode>): Ditto from
132         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
133         of thread base pointer load.
134         (stack_tls_protect_test_<mode>): Ditto from
135         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
136         of thread base pointer load.
137         (stack_protect_set): Rewrite using indirect functions.
138         (stack_protect_test): Ditto.
139         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
140         (ix86_print_operand): Handle '@'.
141
142 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
143
144         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
145         MINUS_EXPR.
146
147 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
148
149         * doc/invoke.texi: Document -Wdouble-promotion.
150         * c-typeck.c (convert_arguments): Check for implicit conversions
151         from float to double.
152         (do_warn_double_promotion): New function.
153         (build_conditional_expr): Use it.
154         (build_binary_op): Likewise.
155
156 2010-09-05  Richard Guenther  <rguenther@suse.de>
157
158         PR tree-optimization/45535
159         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
160         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
161         dereferencing it.
162         (indirect_refs_may_alias_p): Likewise.
163
164 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
165
166         * config/sh/sh.c (sh_option_override): Make static.
167         Adjust comments.  Declare.
168         (sh_function_value_regno_p): Likewise.
169         (sh_register_move_cost): Modify the arguments, make static.
170         Adjust comments.  Declare.
171         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
172         TARGET_FUNCTION_VALUE_REGNO_P): Define.
173         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
174         REGISTER_MOVE_COST): Delete.
175         * config/sh/sh-protos.h (sh_override_options): Delete.
176         (sh_register_move_cost): Delete.
177         (sh_function_value_regno_p): Delete.
178
179 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
180
181         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
182         m32r_function_value_regno_p): New functions.
183         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
184         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
185         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
186         FUNCTION_VALUE_REGNO_P): Remove.
187
188 2010-09-04  Jan Hubicka  <jh@suse.cz>
189
190         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
191         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
192         fold_read_from_constant_string.
193
194         * gimple.h (canonicalize_constructor_val): Declare.
195         * gimple-fold.c (canonicalize_constructor_val): New function.
196         (get_symbol_constant_value):Use it.
197         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
198
199 2010-09-04  Jan Hubicka  <jh@suse.cz>
200
201         * tree-switch-conversion.c (build_one_array): Set constructor to be
202         static.
203         * varpool.c (varpool_finalize_decl): Compute const_value_known.
204
205 2010-09-04  Richard Guenther  <rguenther@suse.de>
206
207         PR bootstrap/45519
208         * tree-flow.h (force_gimple_operand_1): Declare.
209         (force_gimple_operand_gsi_1): Likewise.
210         * gimplify.c (force_gimple_operand_1): New worker taking a
211         gimple predicate for ...
212         (force_gimple_operand): ... which now wraps it.
213         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
214         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
215         last change.
216         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
217         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
218         (create_mem_ref): Likewise.
219
220 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
221
222         * config/i386/predicates.md (sse_reg_operand): New predicate.
223         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
224         predicate for operand 1.
225         (XFmode push splitter): Use fp_register_operand predicate
226         for operand 1.
227         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
228         (SF-DF float_extend push splitter): Add reload_completed insn
229         predicate.
230         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
231         MODEF mode macro.  Add reload_completed insn predicate.
232
233 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
234
235         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
236         (struct df_extract_ref): Remove.
237         (union df_ref_d): Remove extract_ref member.
238         (df_ref_create): Remove last three arguments.
239         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
240         * df-scan.c (df_ref_record): Remove last three arguments, do not
241         pass them to df_ref_create_structure.
242         (df_uses_record): Remove first and last three arguments.  Replace
243         first argument with DF_REF_REGULAR, adjust calls to remove the
244         width, offset and mode.  Always call recursively on the second
245         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
246         (df_ref_create_structure): Remove first argument.
247         (struct df_scan_problem_data): Remove ref_extract_pool.
248         (df_scan_free_internal): Do not free it.
249         (df_scan_alloc): Do not allocate it.
250         (df_ref_create): Remove last three arguments, do not pass them to
251         df_ref_create_structure.
252         (df_free_ref): Remove DF_REF_EXTRACT case.
253         (df_notes_rescan): Adjust call to df_uses_record.
254         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
255         Remove DF_REF_EXTRACT case.
256         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
257         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
258         and SUBREG definitions.
259         (df_get_conditional_uses): Remove references to width/offset/mode,
260         adjust call to df_ref_create_structure.
261         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
262         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
263         calls to df_uses_record and df_ref_record.
264         * fwprop.c (update_df): Remove references to width/offset/mode,
265         adjust call to df_ref_create.
266
267 2010-09-03  Jan Hubicka  <jh@suse.cz>
268
269         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
270         (build_cdtor_fns): Update use of build_cdtor.
271
272 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
273
274         * doc/options.texi (SeparateAlias): Document.
275         * opt-functions.awk (switch_flags): Handle SeparateAlias.
276         * opth-gen.awk: Generate enumeration names for options marked
277         SeparateAlias, but not for those marked Ignore.
278         * opts-common.c (generate_canonical_option): Don't output separate
279         argument for options marked CL_SEPARATE_ALIAS.
280         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
281         * opts.h (CL_SEPARATE_ALIAS): New.
282         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
283         CL_COMMON): Adjust definitions.
284         * config/i386/darwin.opt, config/mips/sde.opt: New.
285         * common.opt (fdump-final-insns): New.
286         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
287         i386/darwin.opt.
288         (mips*-sde-elf*): Add mips/sde.opt.
289         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
290         -mno-data-in-code and -mcode-xonly here.
291         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
292         * gcc.c (option_map): Add "j" to --dump entry.
293         (translate_options): Don't translate -d to -foutput-class-dir= here.
294
295 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
296
297         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
298         DR_IS_WRITE.
299         (compute_all_dependences): Same.
300         (create_rdg_edge_for_ddr): Same.
301         * tree-data-ref.h (DR_IS_WRITE): New.
302         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
303         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
304         (write_memrefs_written_at_least_once): Same.
305         * tree-predcom.c (suitable_component_p): Same.
306         (determine_roots_comp): Same.
307         (execute_load_motion): Same.
308         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
309         (vect_enhance_data_refs_alignment): Same.
310         (vect_analyze_group_access): Same.
311
312 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
313
314         PR testsuite/42843
315         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
316         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
317
318 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
319
320         * dwarf2out.c (file scope): Remove #if0'd code.
321         (gen_subprogram_die): Same.
322
323 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
324
325         PR middle-end/45484
326         * dwarf2out.c (flush_queued_reg_saves): Rename to...
327         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
328         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
329         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
330         * config/i386/i386.c (output_set_got): Call it.
331
332 2010-09-03  Michael Matz  <matz@suse.de>
333
334         PR middle-end/45415
335         * tree-sra.c (sra_modify_assign): If we modify the statement,
336         say so.
337
338         * tree-ssa.c (verify_ssa): Check number of operands and links
339         per statement to agree.
340
341 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
342             Iain Sandoe  <iains@gcc.gnu.org>
343
344         PR target/45476
345         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
346         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
347         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
348
349 2010-09-03  Richard Guenther  <rguenther@suse.de>
350
351         * lto-streamer-out.c (output_function): Output function
352         start and end loci.
353         * lto-streamer-in.c (input_function): Input function start
354         and end loci.
355
356 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
357
358         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
359         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
360         * configure: Regenerate.
361         * aclocal.m4: Regenerate.
362
363 2010-09-03  Jan Hubicka  <jh@suse.cz>
364
365         PR lto/44812
366         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
367         on functions/variables in other partition.
368
369 2010-09-03  Jan Hubicka  <jh@suse.cz>
370
371         * cgraph.h (struct varpool_node): Add const_value_known.
372         (varpool_decide_const_value_known): Declare.
373         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
374         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
375         (input_varpool_node): Restore const_value_known.
376         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
377         initializer folding.
378         * ipa.c (ipa_discover_readonly_nonaddressable_var,
379         function_and_variable_visibility): Compute const_value_known.
380         * gimple-fold.c (get_symbol_constant_value): Use varpool for
381         initializer folding.
382         * varpool.c (varpool_decide_const_value_known): New function.
383
384 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
385
386         * config/i386/i386.md: Remove empty preparation statements
387         from splitters.
388
389 2010-09-03  Jan Hubicka  <jh@suse.cz>
390
391         * passes.c (rest_of_decl_compilation): Do not add local vars into
392         varpool.
393         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
394         static or extern vars are in varpool.
395         (varpool_finalize_decl): Sanity check that only static vars are
396         finalized.
397
398 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
399
400         PR debug/45500
401         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
402         not just generic vectors with BLKmode.
403
404 2010-09-03  Richard Guenther  <rguenther@suse.de>
405
406         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
407         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
408         * tree.h (TMR_SYMBOL): Remove.
409         (TMR_BASE, TMR_OFFSET): Adjust.
410         (TMR_INDEX2): New.
411         * alias.c (ao_ref_from_mem): Use TMR_BASE.
412         * builtins.c (get_object_alignment): Merge TMR_BASE and
413         TMR_SYMBOL handling.
414         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
415         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
416         handling.  Also allow TARGET_MEM_REF as base address.
417         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
418         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
419         base.  Gimplify TMR_INDEX2.
420         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
421         * tree-dfa.c (get_ref_base_and_extent): Likewise.
422         (get_addr_base_and_unit_offset): Likewise.
423         * tree-eh.c (tree_could_trap_p): Likewise.
424         * tree-pretty-print.c (dump_generic_node): Likewise.
425         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
426         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
427         base to index2.
428         (get_address_description): Reconstruct addres description
429         from merged TMR_BASE and TMR_INDEX2.
430         (maybe_fold_tmr): Fold propagated addresses.
431         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
432         MEM_REF and TARGET_MEM_REF paths.
433         (indirect_refs_may_alias_p): Likewise.
434         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
435         instead of TMR_SYMBOL.
436         * tree-ssa-operands.c (get_tmr_operands): Simplify.
437         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
438         according to changes ...
439         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
440         Split TARGET_MEM_REF into two fields plus the base.
441         * tree.c (mem_ref_offset): Simplify.
442         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
443         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
444         Strip NOPs when folding MEM_REF addresses.
445         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
446         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
447         (fold_gimple_assign): ... not here.
448
449 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
450
451         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
452         * config/mips/mips.c (mips_shift_truncation_mask): New function.
453         (TARGET_SHIFT_TRUNCATION_MASK): Define.
454
455 2010-09-02  Richard Henderson  <rth@redhat.com>
456
457         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
458         instead of readelf in the test.
459         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
460         in the .debug_frame section for coff targets.
461         * configure: Rebuild.
462
463 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
464
465         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
466         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
467         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
468         (m32c_class_likely_spilled_p): Make static. Change argument type to
469         reg_class_t. Change result type to bool.
470
471 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
472
473         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
474         to convert (double)(long) into a single FRIZ instruction or not
475         when -ffast-math is used.
476
477         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
478         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
479         or FRIZ instruction if -ffast-math.
480         * config/rs6000/rs6000.md (friz): Ditto.
481
482         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
483
484 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
485
486         * opth-gen.awk (quote, comma): Remove unused variables.
487
488 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
489
490         * arm.c (arm_override_options): Correct fall-back code to use
491         SUBTARGET_CPU_DEFAULT.
492
493 2010-09-02  Julian Brown  <julian@codesourcery.com>
494
495         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
496         unspecs.
497         (vcond<mode>, vcondu<mode>): New expanders.
498         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
499         comparisons with zero.
500         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
501         * config/arm/constraints.md (Dz): New constraint.
502
503 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
504
505         * target.def (class_likely_spilled_p): New hook.
506         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
507         * doc/tm.texi: Regenerate.
508         * targhooks.c (default_class_likely_spilled_p): New function.
509         * targhooks.h (default_class_likely_spilled_p): Declare.
510         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
511         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
512         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
513         Use fixed_reg_set instead of fixed_regs.
514         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
515         * calls.c (avoid_likely_spilled_reg): Ditto.
516         * ira-conflicts.c (ira_build_conflicts): Ditto.
517         * ira.c (update_equiv_regs): Ditto.
518         * mode-switching.c (create_pre_exit): Ditto.
519         * regmove.c (find_matches): Ditto.
520         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
521         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
522         (small_register_class_p): New inline function.
523         (push_secondary_reload, find_reusable_reload, find_reloads): Use
524         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
525
526         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
527         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
528         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
529
530 2010-09-02  Richard Guenther  <rguenther@suse.de>
531
532         PR tree-optimization/44937
533         PR tree-optimization/45412
534         * ipa-split.c (split_function): Properly remove PHI nodes.
535
536 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
537
538         * opts.h (struct cl_option): Add warn_message field.
539         (struct cl_decoded_option): Add warn_message field.
540         * doc/options.texi (Ignore, Warn): Document.
541         * opt-functions.awk (needs_state_p): Don't consider aliases or
542         ignored options to need state saved.
543         * optc-gen.awk: Handle Warn and Ignore.
544         * opth-gen.awk: Output OPT_SPECIAL_ignore.
545         * opts-common.c (decode_cmdline_option): Set warn_message field.
546         Handle ignored options.
547         (decode_cmdline_options_to_array, generate_option,
548         generate_option_input_file): Set warn_message field.
549         (read_cmdline_option): Generate warnings from warn_message field.
550         Handle ignored options.
551         * common.opt (Wunreachable-code, fargument-alias,
552         fargument-noalias, fargument-noalias-global,
553         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
554         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
555         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
556         ftree-salias): Mark Ignore.
557         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
558         -mintel-syntax and -mno-intel-syntax here.
559         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
560         using Warn.
561         * opts.c (common_handle_option): Don't handle options marked as
562         ignored.
563         (enable_warning_as_error): Handle ignored options.
564
565 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
566
567         PR driver/44076
568         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
569         alias_target fields.
570         * opt-functions.awk (opt_sanitized_name): Don't handle
571         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
572         * optc-gen.awk: Generate alias fields.
573         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
574         Don't generate such constants for aliases.
575         * opts-common.c (generate_canonical_option): New.
576         (decode_cmdline_option): Handle aliases.  Use
577         generate_canonical_option for known options instead of copying the
578         input option text.
579         * doc/options.texi (Alias): Document.
580         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
581         fstack-check, specs): Mark as aliases.
582         * gcc.c (driver_handle_option): Canonicalize -L options to joined
583         arguments.
584         (driver_handle_option): Don't handle OPT_specs.
585         * opts.c (common_handle_option): Don't handle options marked as
586         aliases.
587         (enable_warning_as_error): Handle aliases.
588         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
589         OPT_Wlarger_than_eq.
590         * tree-optimize.c (tree_rest_of_compilation): Use
591         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
592
593 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
594
595         * config/i386/i386.md (nonmemory_operand): New mode attribute.
596         (push memory peephole2): Macroize peepholes using SWI mode iterator.
597         (move immediate to memory peephole2): Macroize peepholes using
598         SWI124 mode iterator.
599         (non-pairable NOT peephole2): Macroize peepholes using SWI124
600         mode iterator.
601         (simple lea add peephole2): Macroize peepholes using SWI48
602         mode iterator.
603         (simple lea mult peephole2): Ditto.
604         (imul by 3,5,9 to lea peephole2): Ditto.
605         (mov $-1, reg peephole2): Macroize peepholes using SWI248
606         mode iterator.
607         (imul $32bit_imm,mem,reg peephole2): Ditto.
608         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
609
610 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
611
612         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
613
614 2010-09-02  Olivier Hainque  <hainque@adacore.com>
615
616         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
617         (allocno_priority_compare_func): Use it instead of a straight
618         difference computation over priorities.
619
620 2010-09-02  Andi Kleen  <ak@linux.intel.com>
621
622         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
623
624 2010-09-02  Ira Rosen  <irar@il.ibm.com>
625
626         * tree-vectorizer.h (get_later_stmt): New function.
627         (vect_analyze_data_ref_dependences): Add argument.
628         * tree-vect-loop.c (vect_analyze_loop): Update call to
629         vect_analyze_data_ref_dependences.
630         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
631         New function.
632         (vect_analyze_data_ref_dependence): Add argument for basic block
633         dependencies. Check dependencies in basic block vectorization.
634         (vect_analyze_data_ref_dependences): Add argument and update call to
635         vect_analyze_data_ref_dependences.
636         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
637         (vect_bb_vectorizable_with_dependencies): New.
638         (vect_slp_analyze_bb): Check dependencies in basic block.
639         (vect_schedule_slp_instance): Insert stores before the last store in
640         SLP instance.
641
642 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
643
644         PR target/45476
645         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
646         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
647
648 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
649
650         PR middle-end/45458
651         * bb-reorder.c (add_labels_and_missing_jumps): Treat
652         bbs ending with throwing insns like blocks ending with a call.
653         (fix_up_fall_thru_edges): Likewise.
654
655 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
656
657         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
658         (m32c_function_arg_advance): Delete.
659         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
660         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
661         comments.  Take a const_tree and a bool.  Declare.
662         (m32c_function_arg_advance): Likewise.
663         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
664
665 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
666
667         PR target/45476
668         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
669         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
670         * config/i386/mingw32.h: ... here.
671
672 2010-09-01  Andi Kleen  <ak@linux.intel.com>
673
674         PR lto/45475
675         * lto-streamer-in.c (lto_input_ts_target_option): Add.
676         (lto_input_tree_pointers): Call lto_input_ts_target_option.
677         * lto-streamer-out (lto_output_ts_target_option): Add.
678         (lto_output_tree_pointers): Call lto_output_ts_target_option.
679
680 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
681
682         PR/target 45452
683         * config/i386/cygwin.h: Change order of specified import libraries.
684         * config/i386/mingw32.h: Likewise.
685         * config/i386/t-cygwin: Likewise.
686         * config/i386/t-mingw32: Likewise.
687         * config/i386/t-mingw-w32: Likewise.
688         * config/i386/t-mingw-w64: Likewise.
689
690 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
691
692         * config/arm/neon-schedgen.ml (core): New type.
693         (allCores): List of supported cores.
694         (availability_table): Add supported cores.
695         (collate_bypasses): Accept core as a parameter.
696         (worst_case_latencies_and_bypasses): Accept core as a parameter.
697         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
698         and coreStr to get tune attribute and prefix for functional units.
699         (emit_bypasses): Accept core name and use it.
700         (calculate_per_core_availability_table): New.
701         (filter_core): New.
702         (calculate_core_availability_table): New.
703         (main): Use calculate_core_availablity_table.
704         * config/arm/cortex-a8-neon.md: Update copyright year.
705         Regenerated from ml file and merged in.
706         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
707         cortex_a8_neon_mrc.
708
709 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
710
711         * Makefile.in (tree-switch-conversion.o): Update dependencies.
712
713 2010-09-01  Richard Guenther  <rguenther@suse.de>
714
715         * alias.c (ao_ref_from_mem): Adjust.
716         * builtins.c (get_object_alignment): Likewise.
717         * cfgexpand.c (expand_debug_expr): Likewise.
718         * gimple.c (get_base_address): Likewise.
719         * tree-dfa.c (get_ref_base_and_extent): Likewise.
720         (get_addr_base_and_unit_offset): Likewise.  Fix for
721         both TMR_SYMBOL and TMR_BASE being set.
722         * tree-eh.c (tree_could_trap_p): Likewise.
723         * gimplify.c (gimplify_expr): Do not attempt to gimplify
724         TMR_SYMBOL.  Always gimplify TMR_BASE.
725         * tree-cfg.c (verify_types_in_gimple_reference): Verify
726         TMR_BASE if there is a TMR_SYMBOL.
727         * tree-pretty-print.c (dump_generic_node): Adjust.
728         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
729         (tree_mem_ref_addr): Likewise.
730         (create_mem_ref_raw): Likewise.
731         (move_fixed_address_to_symbol): Likewise.
732         (create_mem_ref): Likewise.
733         (dump_mem_address): Likewise.
734         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
735         Fix for both TMR_SYMBOL and TMR_BASE being set.
736         (indirect_refs_may_alias_p): Likewise.
737         * tree-ssa-operands.c (get_tmr_operands): Adjust.
738         * tree.def (TARGET_MEM_REF): Adjust documentation.
739
740 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
741
742         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
743         Rename from X86_TUNE_ADD_ESP_4.
744         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
745         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
746         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
747         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
748         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
749         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
750         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
751         * config/i386/i386.c (initial_ix86_tune_features)
752         <X86_TUNE_SINGLE_POP>: Invert members.
753         <X86_TUNE_DOUBLE_POP>: Ditto.
754         <X86_TUNE_SINGLE_PUSH>: Ditto.
755         <X86_TUNE_DOUBLE_PUSH>: Ditto.
756         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
757         No longer exported.
758         (push peephole2 patterns): Macroize peepholes using P mode iterator.
759         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
760         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
761         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
762
763 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
764
765         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
766         a volatile LHS if the constructor has only one element.
767
768 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
769
770         PR bootstrap/45321
771         * tree.c (stdarg_p): Make fntype parameter const.
772         * tree.h (stdarg_p): Likewise.
773         (function_args_iterator): Remove unused fntype field.
774         (function_args_iter_init): Do not initialize fntype
775         field.  Make fntype parameter const.
776
777 2010-09-01  Richard Guenther  <rguenther@suse.de>
778
779         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
780         estimate.
781         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
782         (execute_vrp): Compute number of iteration estimates.
783         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
784         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
785         * tree-data-ref.c (estimated_loop_iterations): Adjust.
786         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
787         Infer loop bounds from undefined behavior based on a new parameter.
788         (estimate_numbers_of_iterations): Likewise.
789         (scev_probably_wraps_p): Adjust.
790         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
791
792 2010-09-01  Nick Clifton  <nickc@redhat.com>
793
794         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
795         where appropriate.
796         (xstormy16_legitimate_address_p): Use true and false instead of 1
797         and 0.
798         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
799         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
800         magic constant 2.
801         (xstormy16_expand_call): Fix comment at start of function.
802
803 2010-09-01  Nick Clifton  <nickc@redhat.com>
804
805         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
806         when pushing accumulator register.
807         (rx_get_stack_layout): Always save call clobbered registers inside
808         interrupt handlers.
809         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
810
811 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
812
813         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
814         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
815
816         * libgcc-std.ver (GCC_4.6.0): Define version.
817
818 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
819
820         * tree-nested.c (convert_all_function_calls): Iterate until after the
821         sum of static chains in the nest doesn't change.
822
823 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
824
825         * config/m32c/m32c.c (classes_intersect): Remove.
826         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
827         reg_classes_intersect_p instead of classes_intersect.
828         (class_can_hold_mode): Change arguments type from enum reg_class to
829         reg_class_t.  Use reg_class_contents instead of class_contents.
830         (m32c_register_move_cost): Make static. Change arguments type from
831         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
832         classes_intersect. Use reg_class_contents instead of class_contents.
833         (m32c_memory_move_cost): Make static. Change arguments type from
834         enum reg_class to reg_class_t.
835         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
836         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
837         * config/m32c/m32c-protos.h (m32c_register_move_cost,
838         m32c_memory_move_cost): Remove.
839
840 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
841
842         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
843         (arm_function_arg): Delete.
844         (arm_needs_doubleword_align): Take a const_tree.
845         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
846         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
847         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
848         (arm_function_arg): Make static.  Take a const_tree and a bool.
849         (arm_function_arg_advance): Likewise.
850         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
851
852 2010-08-31  Andi Kleen  <ak@linux.intel.com>
853
854         * common.opt (fwhopr=): Update for -fwhopr=jobserver
855         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
856         * lto-wrapper.c (run_gcc): Add jobserver mode.
857         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
858         argument.
859
860 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
861
862         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
863         (popsi1): Ditto.
864         (*popdi1_epilogue): Ditto.
865         (*popsi1_epilogue): Ditto.
866         (popsi, popdi peephole2 patterns): Update peepholes for changed
867         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
868
869         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
870         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
871
872         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
873         (override_options): Do not initialize removed ix86_gen_pop1.
874         (gen_pop): New static function.
875         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
876         (release_scratch_register_on_entry): Ditto.
877         (ix86_restore_reg_using_pop): Ditto.
878         (ix86_expand_epilogue): Ditto.
879
880 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
881
882         PR middle-end/45461
883         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
884
885 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
886
887         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
888         semicolons.
889
890 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
891
892         * doc/extend.texi: Fix documentation of the return value of
893         __builtin_choose_expr.
894
895 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
896
897         * config/v850/v850-protos.h (function_arg): Delete.
898         * config/v850/v850.h (FUNCTION_ARG): Delete.
899         (FUNCTION_ARG_ADVANCE): Move code to...
900         * config/v850/v850.c (v850_function_arg_advance): ...here.
901         (v850_function_arg): Make static.  Take a const_tree and a bool.
902         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
903
904 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
905
906         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
907         these...
908         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
909         ...and these...
910         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
911         ..to here..
912         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
913         ...and here.
914         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
915
916 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
917
918         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
919         Delete.
920         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
921         * config/rx/rx.c (rx_function_arg_size): Make static.
922         (rx_function_arg): Likewise.
923         (rx_function_arg_advance): New function.
924         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
925
926 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
927
928         * config/arm/arm.c (arm_override_options): Remove superfluous test.
929         Fix indentation.
930
931 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
932
933         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
934         (dwarf2out_decl) <CONST_DECL>: Likewise.
935
936 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
937
938         Stack usage support
939         * common.opt (-fstack-usage): New option.
940         * doc/invoke.texi (Debugging options): Document it.
941         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
942         allocate_dynamic_stack_space.
943         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
944         and propagate it to allocate_dynamic_stack_space.
945         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
946         * calls.c (initialize_argument_information): Pass TRUE as 4th
947         argument to allocate_dynamic_stack_space.
948         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
949         to 1 when pushing a variable-sized argument onto the stack.  Pass
950         TRUE as 4th argument to allocate_dynamic_stack_space.
951         Update current_function_pushed_stack_size.
952         (emit_library_call_value_1): Likewise.
953         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
954         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
955         attempt to find an upper bound.  Remove redundant code for the
956         SETJMP_VIA_SAVE_AREA case.
957         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
958         * function.h (struct stack_usage): New structure.
959         (current_function_static_stack_size): New macro.
960         (current_function_dynamic_stack_size): Likewise.
961         (current_function_pushed_stack_size): Likewise.
962         (current_function_dynamic_alloc_count): Likewise.
963         (current_function_has_unbounded_dynamic_stack_size): Likewise.
964         (current_function_allocates_dynamic_stack_space): Likewise.
965         (struct function): Add new field 'su'.
966         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
967         add the value of the dynamic offset to the dynamic stack usage.
968         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
969         for variable-sized objects.
970         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
971         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
972         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
973         BUILT_IN_ALLOCA for variable-sized objects.
974         * output.h (output_stack_usage): Declare.
975         * toplev.c (stack_usage_file): New file pointer.
976         (output_stack_usage): New function.
977         (open_auxiliary_file): Likewise.
978         (lang_dependent_init): Open file if flag_stack_usage is set.
979         (finalize): Close file if stack_usage_file is not null.
980         * tree.h (ALLOCA_FOR_VAR_P): New macro.
981         * config/alpha/alpha.c (compute_frame_size): New function.
982         (alpha_expand_prologue): Use it.
983         (alpha_start_function): Likewise.
984         (alpha_expand_epilogue): Likewise.  Set stack usage info.
985         * config/i386/i386.c (ix86_expand_prologue): Likewise.
986         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
987         * config/mips/mips.c (mips_expand_prologue): Likewise.
988         * config/pa/pa.c (hppa_expand_prologue): Likewise.
989         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
990         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
991
992 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
993
994         PR tree-optimization/45427
995         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
996         Handle the case that the exit is never taken correctly.
997         (number_of_iterations_ne): Pass exit_must_be_taken to
998         number_of_iterations_ne_max.
999
1000 2010-08-30  Catherine Moore  <clm@codesourcery.com>
1001
1002         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
1003         Infer -mdspr2 for the the 74K.
1004
1005 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
1006
1007         PR debug/45419
1008         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
1009
1010         PR middle-end/45423
1011         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
1012         and TRUTH_{AND,OR,XOR}_EXPR.
1013         * c-parser.c (c_parser_omp_atomic): Handle boolean
1014         {PRE,POST}_{INC,DEC}REMENT.
1015
1016 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
1017
1018         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
1019         (function_arg): Delete.
1020         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1021         (FUNCTION_INCOMING_ARG): Delete.
1022         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
1023         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
1024         and a bool.
1025         (function_arg): Rename to...
1026         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
1027         a bool.
1028         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
1029         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1030         (TARGET_FUNCTION_INCOMING_ARG): Define.
1031
1032 2010-08-30  Richard Guenther  <rguenther@suse.de>
1033
1034         PR tree-optimization/21602
1035         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
1036         using points-to information.
1037
1038 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
1039
1040         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
1041
1042 2010-08-30  Richard Guenther  <rguenther@suse.de>
1043
1044         PR tree-optimization/45449
1045         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
1046         variables.
1047
1048 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
1049
1050         * opts.h (CL_ERR_NEGATIVE): Define.
1051         * opts.c (unknown_option_callback): Don't postpone warnings for
1052         options marked with CL_ERR_NEGATIVE.
1053         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
1054         for negative versions of CL_REJECT_NEGATIVE options.
1055
1056 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
1057
1058         * config/i386/i386.md (zero_extendsidi2_1): Rename from
1059         zero_extendsidi2_32.
1060         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
1061         using SWI12 mode iterator.
1062         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
1063         to define_insn_and_split pattern.
1064         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
1065         using SWI24 mode iterator.
1066         (*zero_extendqi<mode>2_and): Macroize insn from
1067         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
1068         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
1069         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
1070         SWI24 mode iterator.
1071         (*zero_extendqi<mode>2_movzbl): Ditto from
1072         *zero_extendqi{hi,si}2_movzbl.
1073         (extendsidi2_1): Rename from extendsidi2_32.
1074         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
1075         SWI12 mode iterator.
1076
1077 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
1078
1079         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
1080         general purpose registers.
1081         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
1082         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
1083         with general purpose registers and memory operands.  Add associated
1084         CCImode post-reload splitter.
1085         * config/ia64/div.md: Change BImode to CCImode throughout.
1086
1087 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
1088
1089         * config/ia64/ia64.md (cstorebi4): Fix thinko.
1090
1091 2010-08-28  Hariharan Sandanagobalane <hariharan@picochip.com>
1092
1093         * config/picochip/picochip.c (reorder_var_tracking_notes): This
1094         function was dropping debug insns which caused PR45299.
1095
1096 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
1097
1098         * config/i386/sse.md (extsuffix): New code attribute.
1099         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
1100         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
1101         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
1102         and sse4_1_zero_extendv4qiv4si2.
1103         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
1104         and sse4_1_zero_extendv2qiv2di2.
1105         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
1106         and sse4_1_zero_extendv4hiv4si2.
1107         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
1108         and sse4_1_zero_extendv2hiv2di2.
1109         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
1110         and sse4_1_zero_extendv2siv2di2
1111
1112         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
1113         using any_extend code iterator.
1114         (*avx_<s>mulv8hi3_highpart): Macroize insn from
1115         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
1116         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
1117
1118         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
1119         gen_sse4_1_sign_extend* functions.
1120         (struct builtin_description bdesc_args): Ditto.
1121
1122 2010-08-27  Xinliang David Li  <davidxl@google.com>
1123
1124         PR/45422
1125         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
1126         (iv_ca_set_no_cp): Update used inv expr count.
1127         (iv_ca_set_cp): Ditto.
1128         (iv_ca_new): Initialize new member.
1129         (iv_ca_free): Free memory.
1130
1131 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
1132
1133         * config/sh/sh-protos.h (sh_function_arg): Delete.
1134         (sh_function_arg_advance): Delete.
1135         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1136         (PASS_IN_REG_P): Eliminate cast.
1137         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
1138         const_tree and a bool.
1139         (sh_function_arg): Likewise.
1140         (sh_output_mi_thunk): Call sh_function_arg_advance) and
1141         sh_function_arg.
1142         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1143
1144 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
1145             Kaz Kojima  <kkojima@gcc.gnu.org>
1146
1147         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
1148         when possible.
1149         (sh_expand_epilogue): Likewise.
1150         * config/sh/sh.md (movml_push_banked): New insn.
1151         (movml_pop_banked): Likewise.
1152
1153 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
1154
1155         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
1156         gen_regexp_oneof, gen_regexp_sequence): Use the string found
1157         in vector element 0 rather than the original string when there's
1158         only one element.
1159         (gen_regexp): Remove extra semicolon.
1160
1161         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
1162         thumb2_movsf_vfp): Set attribute "insn".
1163         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
1164         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
1165         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
1166         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
1167         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
1168         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
1169         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
1170         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
1171         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
1172         if_not_arith, if_arith_not, cond_move_not): Likewise.
1173
1174 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1175
1176         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
1177         New declaration.
1178         (rs6000_allocate_stack_temp): Ditto.
1179         (rs6000_expand_convert_si_to_sfdf): Ditto.
1180
1181         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
1182         line.  Update the options set if power6 or power7 server/embedded
1183         type options are used.  If we give a warning for no vsx under
1184         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
1185         (rs6000_allocate_stack_temp): New function to allocate a stack
1186         tempoary and adjust the address so it meets either REG+OFFSET or
1187         REG+REG addressing requirements.
1188         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
1189         that they can be used with the LFIWAX/LFIWZX instrucitons.
1190         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
1191         converting signed/unsigned SImode to either SFmode/DFmode.
1192
1193         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
1194         whether certain instructions can be generated.
1195         (TARGET_FCTIDZ): Ditto.
1196         (TARGET_STFIWX): Ditto.
1197         (TARGET_LFIWAX): Ditto.
1198         (TARGET_LFIWZX): Ditto.
1199         (TARGET_FCFIDS): Ditto.
1200         (TARGET_FCFIDU): Ditto.
1201         (TARGET_FCFIDUS): Ditto.
1202         (TARGET_FCTIDUZ): Ditto.
1203         (TARGET_FCTIWUZ): Ditto.
1204
1205         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
1206         (UNSPEC_FCTID): Ditto.
1207         (UNSPEC_LFIWAX): Ditto.
1208         (UNSPEC_LFIWZX): Ditto.
1209         (UNSPEC_FCTIWUZ): Ditto.
1210         (rreg): Use correct constraints.
1211         (SI_CONVERT_FP): New mode attribute for floating point conversion
1212         tests.
1213         (E500_CONVERT): Ditto.
1214         (lfiwax): New insns for converting from integer to floating point
1215         utilizing newer instructions.  Attempt to optimize conversions
1216         that come from memory so that we don't load the value into a GPR,
1217         spill it to the stack and reload it into a FPR.
1218         (floatsi<mode>2_lfiwax): Ditto.
1219         (floatsi<mode>2_lfiwax_mem): Ditto.
1220         (floatsi<mode>2_lfiwax_mem2): Ditto.
1221         (lfiwzx): Ditto.
1222         (floatunssi<mode>2_lfiwzx): Ditto.
1223         (floatunssi<mode>2_lfiwzx_mem): Ditto.
1224         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
1225         (floatdidf2_mem): Ditto.
1226         (floatunsdidf2_fcfidu): Ditto.
1227         (floatunsdidf2_mem): Ditto.
1228         (floatunsdisf2): Ditto.
1229         (floatunsdisf2_fcfidus): Ditto.
1230         (floatunsdisf2_mem): Ditto.
1231         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
1232         Use FCFID on 32-bit hosts that support it.
1233         (floatsidf2_internal): Ditto.
1234         (floatunssisf2): Ditto.
1235         (floatunssidf2): Ditto.
1236         (floatunssidf2_internal): Ditto.
1237         (floatsisf2): Ditto.
1238         (floatdidf2): Ditto.
1239         (floatdidf2_fpr): Ditto.
1240         (floatunsdidf2): Ditto.
1241         (floatdisf2): Ditto.
1242         (floatdisf2_fcfids): Ditto.
1243         (floatdisf2_internal1): Ditto.
1244         (fixuns_truncsfsi2): Delete, merge into common pattern for both
1245         SF/DF.  Add power7 support.
1246         (fix_truncsfsi2): Ditto.
1247         (fixuns_truncdfsi2): Ditto.
1248         (fixuns_truncdfdi2): Ditto.
1249         (fix_truncdfsi2): Ditto.
1250         (fix_truncdfsi2_internal): Ditto.
1251         (fix_truncdfsi2_internal_gfxopt): Ditto.
1252         (fix_truncdfsi2_mfpgpr): Ditto.
1253         (fctiwz): Ditto.
1254         (btruncdf2): Ditto.
1255         (btruncdf2_fpr): Ditto.
1256         (btructsf2): Ditto.
1257         (ceildf2): Ditto.
1258         (ceildf2_fpr): Ditto.
1259         (ceilsf2): Ditto.
1260         (floordf2): Ditto.
1261         (floordf2_fpr): Ditto.
1262         (floorsf2): Ditto.
1263         (rounddf2): Ditto.
1264         (rounddf2_fpr): Ditto.
1265         (roundsf2): Ditto.
1266         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
1267         (fix_trunc<mode>di2): Ditto.
1268         (fixuns_trunc<mode>si2): Ditto.
1269         (fixuns_trunc<mode>di2): Ditto.
1270         (fctiwz_<mode>): Ditto.
1271         (btrunc<mode>2): Ditto.
1272         (btrunc<mode>2_fpr): Ditto.
1273         (ceil<mode>2): Ditto.
1274         (ceil<mode>2_fpr): Ditto.
1275         (floor<mode>2): Ditto.
1276         (float<mode>2_fpr): Ditto.
1277         (round<mode>2): Ditto.
1278         (round<mode>2_fpr): Ditto.
1279         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
1280         (fixuns_trunc<mode>si2_stfiwx): Ditto.
1281         (fix_truncdfsi2_internal): Ditto.
1282         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
1283         converted value on stack, loaded into GPR, and then stored into
1284         the final destination.
1285         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
1286         FCTIDZ.
1287         (lrint<mode>di2): New insn, provide the lrint builtin functions.
1288         (ftruncdf2): Delete, unused.
1289         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
1290
1291         * config/rs6000/vsx.md (toplevel): Update copyright year.
1292         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
1293         (VSr3): Ditto.
1294
1295 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
1296             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1297
1298         * gengtype.c (output_type_enum): Test the right union member.
1299
1300 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
1301
1302         PR target/41484
1303         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
1304         operands for operand 1.
1305         (sse4_1_extendv4qiv4si2): Ditto.
1306         (sse4_1_extendv2qiv2di2): Ditto.
1307         (sse4_1_extendv4hiv4si2): Ditto.
1308         (sse4_1_extendv2hiv2di2): Ditto.
1309         (sse4_1_extendv2siv2di2): Ditto.
1310         (sse4_1_zero_extendv8qiv8hi2): Ditto.
1311         (sse4_1_zero_extendv4qiv4si2): Ditto.
1312         (sse4_1_zero_extendv2qiv2di2): Ditto.
1313         (sse4_1_zero_extendv4hiv4si2): Ditto.
1314         (sse4_1_zero_extendv2hiv2di2): Ditto.
1315         (sse4_1_zero_extendv2siv2di2): Ditto.
1316         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
1317         (*sse4_1_extendv4qiv4si2): Ditto.
1318         (*sse4_1_extendv2qiv2di2): Ditto.
1319         (*sse4_1_extendv4hiv4si2): Ditto.
1320         (*sse4_1_extendv2hiv2di2): Ditto.
1321         (*sse4_1_extendv2siv2di2): Ditto.
1322         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
1323         (*sse4_1_zero_extendv4qiv4si2): Ditto.
1324         (*sse4_1_zero_extendv2qiv2di2): Ditto.
1325         (*sse4_1_zero_extendv4hiv4si2): Ditto.
1326         (*sse4_1_zero_extendv2hiv2di2): Ditto.
1327         (*sse4_1_zero_extendv2siv2di2): Ditto.
1328
1329 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
1330
1331         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
1332         (mips_function_arg): Delete.
1333         (mips_function_arg_boundary): Take a const_tree.
1334         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
1335         (mips_arg_info): Likewise.
1336         (mips_setup_incoming_varargs): Call mips_function_arg_advance
1337         instead of FUNCTION_ARG_ADVANCE.
1338         (mips_function_arg_advance): Adjust prototype.  Make static.
1339         (mips_function_arg): Likewise.
1340         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1341         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
1342
1343 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
1344
1345         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1346         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
1347         (function_arg): Delete.
1348         (function_arg_boundary): Take a const_tree.
1349         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
1350         (rs6000_spe_function_arg): Likewise.
1351         (rs6000_parm_start): Likewise.
1352         (rs6000_arg_size): Likewise.
1353         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
1354         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
1355         (rs6000_mixed_function_arg): Likewise.
1356         (function_arg): Rename to...
1357         (rs6000_function_arg): ...this.
1358         (function_arg_advance): Rename to...
1359         (rs6000_function_arg_advance_1): ...this
1360         (rs6000_function_arg_advance): New function.  Call it.
1361         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
1362         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
1363         (rs6000_function_value): Likewise.
1364         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1365
1366 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1367
1368         * config/arm/arm.md (enabled): Test the value of arch_enabled
1369         rather than just using it.
1370
1371 2010-08-27  Olivier Hainque  <hainque@adacore.com>
1372             Eric Botcazou  <ebotcazou@adacore.com>
1373
1374         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
1375         cover all the possible offsets from this base.
1376         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
1377
1378 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
1379
1380         PR tree-optimization/44485
1381         * calls.c (flags_from_decl_or_type): For const or pure
1382         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
1383         together with ECF_CONST resp. ECF_PURE.
1384         * builtins.c (expand_builtin): Use flags_from_decl_or_type
1385         instead of querying flags directly.
1386         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
1387         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
1388
1389 2010-08-26  Richard Guenther  <rguenther@suse.de>
1390
1391         PR tree-optimization/45255
1392         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
1393         and externals are also invariant.
1394
1395 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
1396
1397         PR rtl-optimization/44858
1398         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
1399         newi2pat, make sure they don't affect newpat.
1400
1401         PR rtl-optimization/45400
1402         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
1403         SUBREG_REG if both modes are of MODE_INT class.
1404
1405 2010-08-25  Julian Brown  <julian@codesourcery.com>
1406
1407         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
1408         * config/arm/arm.md (generic_sched): No for Cortex-A5.
1409         (generic_vfp): Likewise.
1410         (cortex-a5.md): Include.
1411         * config/arm/cortex-a5.md: New.
1412
1413 2010-08-25  Richard Guenther  <rguenther@suse.de>
1414
1415         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
1416         * gimple.c (gimple_get_alias_set): Remove special handling
1417         for pointers.
1418
1419 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
1420
1421         PR middle-end/45355
1422         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
1423         dead_or_set_p when computing i0_feeds_i2_n.
1424
1425         * combine.c (find_split_point): Undo canonicalization of multiply-add
1426         to (minus x (mult)) when it seems likely that this will increase the
1427         chances of a split.
1428
1429 2010-08-25  Richard Guenther  <rguenther@suse.de>
1430
1431         PR lto/44562
1432         * lto-streamer.c (lto_record_common_node): Do not mess with
1433         TYPE_CANONICAL when not in lto.
1434         * gimple.c (gimple_register_type): Likewise.
1435
1436 2010-08-25  Richard Guenther  <rguenther@suse.de>
1437
1438         PR tree-optimization/45316
1439         * tree-ssa-pre.c (eliminate): Properly clean EH info.
1440
1441 2010-08-25  Richard Guenther  <rguenther@suse.de>
1442
1443         PR tree-optimization/45393
1444         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
1445         and clean EH info.  Avoid SSA update.
1446         (execute_cse_sincos): Cleanup the CFG if it has changed.
1447
1448 2010-08-25  Richard Guenther  <rguenther@suse.de>
1449
1450         PR middle-end/45379
1451         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
1452         TARGET_MEM_REF in alignment computation.
1453
1454 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
1455
1456         PR tree-optimization/45059
1457         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
1458         type conversions from newop{1,2}.  Assert t is a comparison and
1459         newop{1,2} after the stripping are gimple vals.
1460
1461 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
1462
1463         * config/arm/iterators.md (VU, SE, V_widen_l): New.
1464         (V_unpack, US): New.
1465         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
1466         (vec_unpack<US>_lo_<mode>): Likewise.
1467         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
1468         (neon_vec_unpack<US>_lo_<mode>): Likewise.
1469         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
1470         (vec_widen_<US>mult_hi_<mode>): Likewise.
1471         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
1472         (neon_vec_<US>mult_hi_<mode>"): Likewise.
1473         (neon_unpack<US>_<mode>): Widening move intermediate step for
1474         vectorizing without -mvectorize-with-neon-quad.
1475         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
1476         for vectorizing without -mvectorize-with-neon-quad.
1477         * config/arm/predicates.md (vect_par_constant_high): Check for
1478         high-half lanes of a vector.
1479         (vect_par_constant_low): Check for low-half lanes of a vector.
1480
1481 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
1482
1483         * tree-if-conv.c (struct ifc_dr): New.
1484         (IFC_DR): New.
1485         (DR_WRITTEN_AT_LEAST_ONCE): New.
1486         (DR_RW_UNCONDITIONALLY): New.
1487         (memref_read_or_written_unconditionally): Use the cached values
1488         when possible.
1489         (write_memref_written_at_least_once): Same.
1490         (if_convertible_loop_p): Initialize and free DR->aux fields.
1491
1492 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
1493
1494         * gimple.c (gimple_could_trap_p_1): Not static anymore.
1495         Pass an extra bool parameter include_mem.
1496         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
1497         (gimple_assign_rhs_could_trap_p): Same.
1498         * gimple.h (gimple_could_trap_p_1): Declared.
1499         * tree-data-ref.h (same_data_refs_base_objects): New.
1500         (same_data_refs): New.
1501         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
1502         (write_memrefs_written_at_least_once): New.
1503         (ifcvt_memrefs_wont_trap): New.
1504         (operations_could_trap): New.
1505         (ifcvt_could_trap_p): New.
1506         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
1507         Gets a vector of data refs.
1508         (if_convertible_stmt_p): Same.
1509         (if_convertible_loop_p_1): New.
1510         (if_convertible_loop_p): Call if_convertible_loop_p_1.
1511
1512 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
1513
1514         * common.opt (ftree-loop-if-convert-stores): New flag.
1515         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
1516         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
1517         the created statement before GSI.
1518         (if_convertible_phi_p): Allow virtual phi nodes when
1519         flag_loop_if_convert_stores is set.
1520         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
1521         Do not handle types that do not match is_gimple_reg_type.
1522         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
1523         when flag_loop_if_convert_stores is set, as LHS can contain
1524         memory refs.
1525         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
1526         to if_convertible_gimple_assign_stmt_p.
1527         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
1528         (replace_phi_with_cond_gimple_assign_stmt): Renamed
1529         predicate_scalar_phi.  Do not handle virtual phi nodes.
1530         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
1531         Call predicate_scalar_phi.
1532         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
1533         just after the labels for flag_loop_if_convert_stores, otherwise
1534         insert the predicate in the end of the BB.
1535         (predicate_mem_writes): New.
1536         (combine_blocks): Call predicate_all_scalar_phis.  When
1537         flag_loop_if_convert_stores is set, call predicate_mem_writes.
1538         (tree_if_conversion): Call mark_sym_for_renaming when
1539         flag_loop_if_convert_stores is set.
1540         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
1541         flag_loop_if_convert_stores is set.
1542
1543 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
1544
1545         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
1546         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
1547         (pa_function_value): Make static.
1548         (override_options): Rename to...
1549         (pa_option_override): ...this. Make static.
1550         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
1551         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
1552         TARGET_OPTION_OVERRIDE): Define.
1553         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
1554         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
1555         Remove.
1556         * config/pa/pa-protos.h (override_options): Remove.
1557
1558 2010-08-24  Richard Guenther  <rguenther@suse.de>
1559
1560         PR middle-end/45379
1561         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
1562         if addr->index is NULL or zero.
1563         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
1564         TARGET_MEM_REF more properly.
1565         (indirect_ref_may_alias_decl_p): Likewise.
1566         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
1567         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
1568
1569 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
1570
1571         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
1572         (m32c_override_options): Rename to...
1573         (m32c_option_override): ...this. Make static.
1574         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
1575         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
1576         Remove.
1577         * config/m32c/m32c-protos.h (m32c_override_options,
1578         m32c_function_value_regno_p): Remove.
1579
1580 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
1581
1582         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
1583         Fix a typo in a previous commit.
1584
1585 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
1586
1587         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
1588         Pre-initialize innerloop_iters to one.
1589
1590 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
1591
1592         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
1593         existing static function global.
1594
1595         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
1596         is changed to global.
1597
1598         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
1599         may_be_nonaddressable_p on base, and don't collect this reference
1600         if the address of the base could not be taken.
1601
1602 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1603
1604         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
1605         enable the compiler to autovectorize mathmetical functions for
1606         power7 using the Mathematical Acceleration Subsystem library.
1607
1608         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
1609         handle which vector math library we have.
1610         (rs6000_override_options): Add -mveclibabi=mass support.
1611         (rs6000_builtin_vectorized_libmass): New function to handle auto
1612         vectorizing math functions that are in the MASS library.
1613         (rs6000_builtin_vectorized_function): Call it.
1614
1615         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1616         -mveclibabi=mass.
1617
1618 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1619
1620         PR boehm-gc/34544
1621         * gthr-posix.h (__gthread_active_init): Delete.
1622         (__gthread_active_p): Do activity check here.
1623         Don't include errno.h on hppa-hpux.  Update comment.
1624         * gthr-posix95.h (__gthread_active_init): Delete.
1625         (__gthread_active_p): Do activity check here.
1626         Don't include errno.h on hppa-hpux.  Update comment.
1627         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
1628         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
1629         add -lpthread when -mt or -pthread is specified.
1630         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
1631         (LINK_GCC_C_SEQUENCE_SPEC): Define.
1632         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
1633         (stublib.c, pthread_default_stacksize_np-stub.o,
1634         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
1635         $(T)libgcc_stub.a): Add methods.
1636         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
1637         (stublib.c, pthread_default_stacksize_np-stub.o,
1638         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
1639         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
1640         pthread_mutex_unlock): New stubs.
1641
1642 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
1643
1644         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
1645         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
1646         options.
1647         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
1648         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
1649         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
1650         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
1651         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
1652         "-l".
1653         * cppspec.c: Include opts.h.
1654         (lang_specific_driver): Use cl_decoded_option structures.
1655         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
1656         * doc/tm.texi: Regenerate.
1657         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
1658         (driver_handle_option): Allow driver options needing no special
1659         processing.
1660         (process_command): Decode options before call to
1661         lang_specific_driver.  Pass decoded options to
1662         lang_specific_driver.
1663         * gcc.h (lang_specific_driver): Update prototype.
1664         * gccspec.c: Include opts.h.
1665         (lang_specific_driver): Use cl_decoded_option structures.
1666         * opts-common.c (option_ok_for_language, generate_option,
1667         generate_option_input_file): New.
1668         (decode_cmdline_option): Use option_ok_for_language.
1669         (decode_cmdline_options_to_array): Use generate_option_input_file.
1670         (handle_generated_option): Use generate_option.
1671         * opts.h (generate_option, generate_option_input_file): Declare.
1672
1673 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
1674
1675         * config/mips/mips.c (mips_override_options): Rename to...
1676         (mips_option_override): ...this. Make static.
1677         (TARGET_OPTION_OVERRIDE): Define.
1678         (mips_in_small_data_p): Update comment.
1679         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
1680         (FIXED_REGISTERS): Update comment.
1681         * config/mips/mips-protos.h (mips_override_options): Remove.
1682
1683 2010-08-21  Olivier Hainque  <hainque@adacore.com>
1684
1685         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
1686
1687 2010-08-21  Olivier Hainque  <hainque@adacore.com>
1688
1689         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
1690         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
1691
1692 2010-08-20  Jan Hubicka  <jh@suse.cz>
1693
1694         * tree-pass.h (pass_ipa_cdtor_merge): New function.
1695         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
1696         heap allocated.
1697         (record_cdtor_fn): Move to ipa.c; do not test for
1698         have_ctors_dtors.
1699         (build_cdtor): Move to ipa.c; add code avoiding construction
1700         when target have ctors/dtors and there is only one ctor/dtor at given
1701         priority.
1702         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
1703         sort; reverse order of constructors.
1704         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
1705         (cgraph_finalize_function): Do not call record_cdtor_fn.
1706         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
1707         (cgraph_build_static_cdtor): Move to ipa.c.
1708         * ipa.c: Include target.h and tree-iterator.h.
1709         (cgraph_build_static_cdtor, static_ctors, static_dtors,
1710         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
1711         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
1712         pass_ipa_cdtor_merge): New.
1713         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
1714         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
1715         bounds access.
1716
1717 2010-08-20  Jan Hubicka  <jh@suse.cz>
1718
1719         PR c++/45307
1720         PR c++/17736
1721         * cgraph.h (cgraph_only_called_directly_p,
1722         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
1723         static cdtors.
1724         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
1725         are not needed.
1726         (cgraph_finalize_function): Static cdtors are reachable.
1727         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
1728
1729 2010-08-20  Jan Hubicka  <jh@suse.cz>
1730
1731         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
1732         flag_wpa.
1733         * lto-streamer-out.c (lto_output): Likewise.
1734         * passes.c (ipa_write_optimization_summaries): Initialize statement
1735         uids.
1736
1737 2010-08-20  Olivier Hainque  <hainque@adacore.com>
1738
1739         * tree.h (alias_diag_flags): New enum.
1740         (alias_pair): Add an 'emitted_diags' field.
1741         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
1742         (assemble_alias): Initialize emitted_diags of new pairs.
1743
1744 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
1745
1746         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
1747         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1748         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1749         (STACK_CHECK_PROTECT): Define.
1750         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
1751         (output_probe_stack_range): Likewise.
1752         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
1753         builtin stack checking is enabled.
1754         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
1755         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
1756         (probe_stack_range): New insn.
1757
1758 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1759
1760         PR target/45336
1761         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
1762         short first.
1763
1764         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
1765         char first.
1766
1767 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1768
1769         PR target/45336
1770         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
1771         to cover zero extension into 64-bit register.
1772         (*sse2_pextrw): Likewise.
1773         (*sse4_1_pextrd_zext): New insn.
1774
1775 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
1776
1777         revert r163410, partially revert r163267.
1778         * config/rs6000/darwin.h (LIB_SPEC): Remove.
1779         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
1780         Darwin versions.
1781
1782 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1783
1784         PR middle-end/44974
1785         * builtins.c (expand_builtin): Don't optimize away
1786         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
1787
1788 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
1789
1790         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
1791         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
1792         alternative 1 of operand 2.
1793
1794 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1795             Paolo Bonzini  <bonzini@gnu.org>
1796
1797         * simplify-rtx.c (simplify_unary_operation_1): Optimize
1798         (sign_extend (zero_extend (...)) and
1799         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
1800
1801 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1802
1803         PR rtl-optimization/45353
1804         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
1805         after bb_note is a BARRIER.
1806
1807 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
1808
1809         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
1810         linking libgcc.a.
1811
1812 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1813             Michael Matz  <matz@suse.de>
1814
1815         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
1816
1817 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
1818
1819         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
1820         (ggc_mark_roots): ...here.
1821
1822 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
1823
1824         * vec.h (FOR_EACH_VEC_ELT): Define.
1825         * c-decl.c: Use it.
1826         * cfgloop.c: Likewise.
1827         * cfgloopmanip.c: Likewise.
1828         * cgraph.c: Likewise.
1829         * cgraphunit.c: Likewise.
1830         * combine.c: Likewise.
1831         * config/bfin/bfin.c: Likewise.
1832         * config/mips/mips.c: Likewise.
1833         * config/rs6000/rs6000.c: Likewise.
1834         * dbxout.c: Likewise.
1835         * df-scan.c: Likewise.
1836         * dominance.c: Likewise.
1837         * dse.c: Likewise.
1838         * dwarf2out.c: Likewise.
1839         * except.c: Likewise.
1840         * expr.c: Likewise.
1841         * function.c: Likewise.
1842         * gcse.c: Likewise.
1843         * genattr.c: Likewise.
1844         * ggc-common.c: Likewise.
1845         * gimplify.c: Likewise.
1846         * graphite-blocking.c: Likewise.
1847         * graphite-clast-to-gimple.c: Likewise.
1848         * graphite-dependences.c: Likewise.
1849         * graphite-interchange.c: Likewise.
1850         * graphite-poly.c: Likewise.
1851         * graphite-scop-detection.c: Likewise.
1852         * graphite-sese-to-poly.c: Likewise.
1853         * graphite.c: Likewise.
1854         * haifa-sched.c: Likewise.
1855         * ifcvt.c: Likewise.
1856         * implicit-zee.c: Likewise.
1857         * ipa-prop.c: Likewise.
1858         * ipa-struct-reorg.c: Likewise.
1859         * ipa.c: Likewise.
1860         * ira-build.c: Likewise.
1861         * ira-color.c: Likewise.
1862         * ira-emit.c: Likewise.
1863         * lambda-code.c: Likewise.
1864         * loop-invariant.c: Likewise.
1865         * loop-unroll.c: Likewise.
1866         * lower-subreg.c: Likewise.
1867         * lto-cgraph.c: Likewise.
1868         * lto-opts.c: Likewise.
1869         * lto-streamer-in.c: Likewise.
1870         * lto-streamer-out.c: Likewise.
1871         * lto-streamer.c: Likewise.
1872         * lto-symtab.c: Likewise.
1873         * matrix-reorg.c: Likewise.
1874         * opts.c: Likewise.
1875         * predict.c: Likewise.
1876         * print-tree.c: Likewise.
1877         * sdbout.c: Likewise.
1878         * sel-sched-dump.c: Likewise.
1879         * sel-sched-ir.c: Likewise.
1880         * sel-sched.c: Likewise.
1881         * sese.c: Likewise.
1882         * stor-layout.c: Likewise.
1883         * tree-cfg.c: Likewise.
1884         * tree-cfgcleanup.c: Likewise.
1885         * tree-chrec.c: Likewise.
1886         * tree-data-ref.c: Likewise.
1887         * tree-emutls.c: Likewise.
1888         * tree-inline.c: Likewise.
1889         * tree-into-ssa.c: Likewise.
1890         * tree-loop-distribution.c: Likewise.
1891         * tree-loop-linear.c: Likewise.
1892         * tree-mudflap.c: Likewise.
1893         * tree-outof-ssa.c: Likewise.
1894         * tree-parloops.c: Likewise.
1895         * tree-predcom.c: Likewise.
1896         * tree-pretty-print.c: Likewise.
1897         * tree-scalar-evolution.c: Likewise.
1898         * tree-ssa-live.c: Likewise.
1899         * tree-ssa-loop-im.c: Likewise.
1900         * tree-ssa-loop-ivcanon.c: Likewise.
1901         * tree-ssa-loop-ivopts.c: Likewise.
1902         * tree-ssa-loop-manip.c: Likewise.
1903         * tree-ssa-loop-niter.c: Likewise.
1904         * tree-ssa-loop-prefetch.c: Likewise.
1905         * tree-ssa-phiprop.c: Likewise.
1906         * tree-ssa-pre.c: Likewise.
1907         * tree-ssa-reassoc.c: Likewise.
1908         * tree-ssa-sccvn.c: Likewise.
1909         * tree-ssa-structalias.c: Likewise.
1910         * tree-ssa.c: Likewise.
1911         * tree-vect-data-refs.c: Likewise.
1912         * tree-vect-loop-manip.c: Likewise.
1913         * tree-vect-loop.c: Likewise.
1914         * tree-vect-patterns.c: Likewise.
1915         * tree-vect-slp.c: Likewise.
1916         * tree-vect-stmts.c: Likewise.
1917         * tree-vrp.c: Likewise.
1918         * tree.c: Likewise.
1919         * value-prof.c: Likewise.
1920         * var-tracking.c: Likewise.
1921         * varasm.c: Likewise.
1922         * vmsdbgout.c: Likewise.
1923
1924 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
1925             Richard Guenther  <richard.guenther@gmail.com>
1926
1927         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
1928         copy the src value and return a copy.
1929         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
1930         (C++ Volatiles): Adjust to describe C++ semantics only.
1931
1932 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
1933
1934         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
1935         be zero or nonzero.
1936         * doc/tm.texi: Regenerate.
1937         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
1938         * df-scan.c (df_get_exit_block_use_set), reginfo.c
1939         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
1940         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
1941         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
1942         to 1.
1943
1944 2010-08-20  Olivier Hainque  <hainque@adacore.com>
1945
1946         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
1947         an extra nop past a sibling call at the very end.
1948
1949 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
1950
1951         PR bootstrap/45350
1952         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
1953         a comment.
1954
1955 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
1956
1957         * target.def (function_arg, function_incoming_arg): Remove const
1958         qualifier on CUMULATIVE_ARGS parameter.
1959         * targhooks.h (default_function_arg, default_function_incoming_arg):
1960         Likewise.
1961         * targhooks.c (default_function_arg, default_function_incoming_arg):
1962         Likewise.
1963         * config/i386/i386.c (ix86_function_arg): Likewise.
1964
1965 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
1966
1967         PR target/45336
1968         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
1969         SIGN_EXTENDs or ZERO_EXTENDs.
1970
1971 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
1972
1973         PR target/42172
1974         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
1975         Take its cost into account if nonnull.
1976         (insn_a_feeds_b): New static function.
1977         (combine_instructions): Look for four-insn combinations.
1978         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
1979         them into account when computing all_adjacent and looking for other
1980         uses.
1981         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
1982         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
1983         (try_combine): New arg I0.  Handle four-insn combinations.
1984         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
1985         like ELIM_I1.
1986
1987 2010-08-19  Jason Merrill  <jason@redhat.com>
1988
1989         PR c++/45307
1990         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
1991         if ctor is empty.
1992         (gimplify_modify_expr_rhs): Adjust.
1993
1994 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
1995
1996         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
1997         bitmap_bit_p.
1998         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
1999         * dominance.c (iterate_fix_dominators): Likewise.
2000         * dse.c (set_usage_bits): Likewise.
2001         (set_position_unneeded, record_store): Likewise.
2002         * gimple-fold.c (get_maxval_strlen): Likewise.
2003         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
2004         * ipa-inline.c (update_caller_keys): Likewise.
2005         * ipa-split.c (verify_non_ssa_vars): Likewise.
2006         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
2007         (close_type_exposed_parameter, close_type_full_escape): Likewise.
2008         (close_addressof_down): Likewise.
2009         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
2010         (setup_allocno_left_conflicts_size): Likewise.
2011         (ira_reassign_conflict_allocnos): Likewise.
2012         (ira_reassign_pseudos): Likewise.
2013         * ira-emit.c (change_loop): Likewise.
2014         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
2015         * lto-streamer-out.c (write_symbol): Likewise.
2016         * predict.c (expr_expected_value_1): Likewise.
2017         * regstat.c (regstat_bb_compute_ri): Likewise.
2018         * sel-sched.c (create_block_for_bookkeeping): Likewise.
2019         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
2020         * stmt.c (expand_case): Likewise.
2021         * tree-eh.c (emit_eh_dispatch): Likewise.
2022         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
2023         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
2024         Likewise.
2025         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
2026         (rdg_build_components): Likewise.
2027         * tree-object-size.c (collect_object_sizes_for): Likewise.
2028         * tree-sra.c (convert_callers): Likewise.
2029         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
2030         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
2031         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
2032
2033 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
2034
2035         * config/i386/i386.md (*lea_1): Use P mode iterator.
2036         (lea add splitter): Also handle DImode operands.
2037         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
2038         predicate.  Do not use ix86_lea_for_add_ok.
2039         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
2040         (lea ashift splitter): Also handle DImode operands.
2041         (DImode lea ashift splitter): Remove splitter.
2042
2043 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
2044
2045         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
2046         ix86_binary_operator_ok.
2047
2048 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
2049
2050         PR rtl-optimization/44691
2051         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
2052         is not a register.
2053
2054 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
2055
2056         PR target/45070
2057         * config/arm/arm.c (arm_output_epilogue): Ensure that return
2058          value of size 1-3 is handled correctly.
2059
2060 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
2061
2062         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
2063         type for the conditional has wide enough range.
2064
2065 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
2066
2067         PR target/45327
2068         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
2069         ix86_binary_operator_ok.
2070
2071 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
2072
2073         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
2074         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
2075         code to output insn mnemonic.  Fix comment.
2076         (*addsi_1_zext): Add r-r-0 alternative 1.
2077         <TYPE_LEA>: Split insn to lea.
2078         <default>: Handle alternative 1.
2079         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
2080         multi-level if_then_else RTX to set "type" attribute.
2081         <default>: Handle alternative 2.
2082         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
2083         Use cond RTX instead of multi-level if_then_else RTX to set
2084         "type" attribute.
2085         <default>: Handle alternatives 2 and 4.
2086         (lea splitters): Update calls to ix86_lea_for_add_ok.
2087
2088         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
2089         argument.
2090         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
2091
2092 2010-08-18  Richard Guenther  <rguenther@suse.de>
2093
2094         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
2095         use operand helpers.
2096
2097 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
2098
2099         PR middle-end/45292
2100         * optabs.c (expand_bool_compare_and_swap): Expand pending
2101         pops before trying the optab.
2102
2103 2010-08-18  Yao Qi  <yao@codesourcery.com>
2104
2105         PR target/45094
2106         * config/arm/arm.c (output_move_double): Fix typo generating
2107         instructions ('ldr'->'str').
2108
2109 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
2110
2111         PR rtl-optimization/42575
2112         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
2113         live ranges.
2114
2115 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2116
2117         * config/arm/arm-protos.h (arm_expand_sync): New.
2118         (arm_output_memory_barrier, arm_output_sync_insn): New.
2119         (arm_sync_loop_insns): New.
2120         * config/arm/arm.c (FL_ARCH7): New.
2121         (FL_FOR_ARCH7): Include FL_ARCH7.
2122         (arm_arch7): New.
2123         (arm_print_operand): Support %C markup.
2124         (arm_legitimize_sync_memory): New.
2125         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
2126         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
2127         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
2128         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
2129         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
2130         (arm_process_output_sync_insn, arm_output_sync_insn): New.
2131         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
2132         * config/arm/arm.h (struct arm_sync_generator): New.
2133         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
2134         (TARGET_HAVE_MEMORY_BARRIER): New.
2135         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
2136         * config/arm/arm.md: Include sync.md.
2137         (UNSPEC_MEMORY_BARRIER): New.
2138         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
2139         (VUNSPEC_SYNC_OP):New.
2140         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
2141         (sync_result, sync_memory, sync_required_value): New attributes.
2142         (sync_new_value, sync_t1, sync_t2): Likewise.
2143         (sync_release_barrier, sync_op): Likewise.
2144         (length): Add logic to length attribute defintion to call
2145         arm_sync_loop_insns when appropriate.
2146         * config/arm/sync.md: New file.
2147
2148 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
2149
2150         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
2151         ENABLE_TREE_CHECKING.
2152         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
2153         and GCC >= 4.3.
2154
2155 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
2156
2157         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
2158         or optimizing for size, always avoid lea if possible.
2159
2160         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
2161
2162 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
2163
2164         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
2165         Dunmmy function with NULL return unless the target is
2166         OSX >= 10.6 (Darwin10).
2167
2168 2010-08-17  Jack Howarth <howarth@bromo.med.uc.edu>
2169
2170         * gcc.c (spec_function): Add remove-outfile.
2171         (remove_outfile_spec_function): New function.
2172         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
2173         * invoke.texi (replace-outfile): Document.
2174
2175 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
2176
2177         PR target/45296
2178         * reginfo.c (globalize_reg): Reject stack registers.
2179
2180 2010-08-17  Richard Guenther  <rguenther@suse.de>
2181
2182         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
2183         list of conditional equivalences.
2184         (free_all_edge_infos): Adjust.
2185         (record_equivalences_from_incoming_edge): Likewise.
2186         (record_cond): Likewise.
2187         (build_and_record_new_cond): Likewise.
2188         (record_conditions): Likewise.
2189         (dom_opt_leave_block): Likewise.
2190
2191 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
2192
2193         * doc/invoke.texi (ms-extension): Add documentation.
2194
2195 2010-08-17  Richard Guenther  <rguenther@suse.de>
2196
2197         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
2198
2199 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
2200
2201         PR c/40563
2202         * c-decl.c (diagnose_uninitialized_cst_member): New function.
2203         (finish_decl): Use it to issue a -Wc++-compat warning about
2204         uninitialized const field in struct or union.
2205
2206         (finish_struct): Use strip_array_types.
2207
2208 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
2209
2210         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
2211         functions.
2212         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
2213         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
2214         call block_nreverse here.
2215         (blocks_nreverse): Rename decl temporary to block.
2216
2217 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
2218
2219         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
2220         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
2221         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
2222         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
2223         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
2224         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
2225         thumb2_iorsi3): Delete.
2226         (orsi_notsi_si): No longer a named pattern.
2227         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
2228         * config/arm/predicates.md (shift_amount_operand): New.
2229         (mult_operator): New.
2230         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
2231         attr enabled): New.
2232         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
2233         arch matches t2.
2234         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
2235         (not_shiftsi_compare0): Likewise, renamed from
2236         arm_notsi_shiftsi_compare0.
2237         (not_shiftsi_compare0_scratch): Likweise, renamed from
2238         arm_notsi_shiftsi_compare0_scratch.
2239         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
2240         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
2241         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
2242         so that the register alternative is disabled when the shift_operator
2243         is MULT.  Use "M" as the constraint for constants.
2244         (arith_shiftsi splitter): Enable for TARGET_32BIT.
2245         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
2246         constraint for constants.
2247         (arith_shiftsi_compare0_scratch): Likewise.
2248         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
2249         Handle Thumb2 alternative.
2250
2251 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
2252
2253         * doc/options.texi (NoDriverArg): Document.
2254         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
2255         -MDX and -MMDX.
2256         * opt-functions.awk (switch_flags): Handle NoDriverArg.
2257         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
2258         marking for CL_NO_DRIVER_ARG options when in the driver.
2259         * opts.h (CL_NO_DRIVER_ARG): Define.
2260         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2261         CL_COMMON): Update values.
2262
2263 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
2264
2265         * common.opt: Add driver options.
2266         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
2267         * doc/options.texi (Driver, RejectDriver): Document.
2268         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
2269         print_prog_name, print_multi_directory, print_sysroot,
2270         print_multi_os_directory, print_multi_lib,
2271         print_sysroot_headers_suffix, report_times, combine_flag,
2272         use_pipes, wrapper_string): Remove.
2273         (save_switch, driver_unknown_option_callback,
2274         driver_wrong_lang_callback, driver_post_handling_callback,
2275         driver_handle_option): New.
2276         (spec_lang, last_language_n_infiles): Make file-scope static
2277         instead of local to process_command.
2278         (process_command): Use decode_cmdline_options_to_array and
2279         read_cmdline_option for option processing.  Compute have_c in
2280         prescan of decoded options.
2281         * opt-functions.awk (switch_flags): Handle Driver and
2282         RejectDriver.
2283         (var_type, var_type_struct): Handle Separate options as generating
2284         const char * variables.
2285         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
2286         CL_TARGET to be passed by caller if required.
2287         (decode_cmdline_options_to_array): Update comment.
2288         * opts.c (complain_wrong_lang): Handle options only valid for the
2289         driver.
2290         (decode_options): Update call to decode_cmdline_options_to_array.
2291         (print_filtered_help): Ignore driver-only options.
2292         (print_specific_help): Ignore CL_DRIVER.
2293         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
2294         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
2295         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
2296         Update values.
2297
2298 2010-08-16  Richard Guenther  <rguenther@suse.de>
2299
2300         * tree-cfg.c (verify_types_in_gimple_reference): Verify
2301         TARGET_MEM_REF a bit.
2302         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
2303         (create_mem_ref_raw): Always create TMR_OFFSET, store the
2304         alias pointer type via it.
2305         (copy_mem_ref_info): Adjust.
2306         (maybe_fold_tmr): Likewise.
2307         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
2308         (reference_alias_ptr_type): Likewise.
2309         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
2310         adjust documentation of TMR_OFFSET operand.
2311         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
2312         use the alias pointer type.
2313         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
2314         initialize mem attrs but the TMR itself.
2315         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
2316         similar to MEM_REF.
2317         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
2318         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
2319         (unshare_and_remove_ssa_names): Likewise.
2320         (copy_ref_info): Adjust.
2321         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
2322         TARGET_MEM_REF case.
2323         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
2324         at TMR_ORIGINAL.
2325         * tree.h (TMR_ORIGINAL): Remove.
2326         * gimple.c (get_base_address): For TARGET_MEM_REF with a
2327         symbol return that.
2328         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
2329         with a symbol.
2330         (get_addr_base_and_unit_offset): Likewise.
2331         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
2332         TARGET_MEM_REFs.
2333         (indirect_ref_may_alias_decl_p): Likewise.
2334         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
2335
2336 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
2337
2338         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
2339         with GCC version 4.6, the default setting (when not optimizing
2340         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
2341         been changed to -fomit-frame-pointer.
2342
2343 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
2344
2345         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
2346         Darwin10.  Do not link libgcc.a for Darwin >= 9.
2347
2348 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
2349
2350         * doc/invoke.texi (Warning Options): Fix terminology and markup
2351         in the description of how unknown warning options are handled.
2352
2353 2010-08-15  Ira Rosen  <irar@il.ibm.com>
2354
2355         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
2356         in basic blocks.
2357         (vect_supportable_dr_alignment): Check alignment for basic blocks.
2358         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
2359         data references.
2360         (vect_bb_vectorization_profitable_p): New function.
2361         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
2362         check if it's worthwhile to vectorize the basic block.
2363
2364 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
2365
2366         * reload.h (register_move_cost, memory_move_secondary_cost,
2367         secondary_reload_class): Adjust prototype.
2368         * rtl.h (reg_class_subset_p): Adjust prototype.
2369         * reload.c (secondary_reload_class): Change arguments type from
2370         enum reg_class to reg_class_t. Change result type to reg_class_t.
2371         * reginfo.c (register_move_cost, reg_class_subset_p): Change
2372         arguments type from enum reg_class to reg_class_t.
2373         (memory_move_secondary_cost): Change arguments type from
2374         enum reg_class to reg_class_t. Change type of saved_flags to
2375         reg_class_t.
2376
2377         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
2378         Remove macros.
2379         (mips_cost): Remove.
2380         (struct mips_rtx_cost_data): Moved to mips.c.
2381         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
2382         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
2383         (mips_cost): Make static.
2384         (mips_canonicalize_move_class): Change argument type to reg_class_t.
2385         Change result type to reg_class_t.
2386         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
2387         type from enum reg_class to reg_class_t.
2388         (mips_register_move_cost): Make static. Change arguments
2389         type from enum reg_class to reg_class_t.
2390         (mips_memory_move_cost): New function.
2391         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2392
2393 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
2394
2395         PR rtl-optimization/43358
2396         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
2397         of a single hard register, using simplify_subreg_regno to decide
2398         what that register should be.
2399
2400 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
2401
2402         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
2403         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
2404         (loongson_pmull<V_suffix>): Rename to...
2405         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
2406
2407 2010-08-13  Jack Howarth <howarth@bromo.med.uc.edu>
2408
2409         * gcc/configure.ac: Enable -fomit-frame-pointer on darwin
2410         which support dwarf2.
2411         * config/i386/i386.c (override_options): Same.
2412
2413 2010-08-13  Jie Zhang  <jie@codesourcery.com>
2414
2415         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
2416
2417 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
2418
2419         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
2420         -MMD.
2421
2422 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
2423
2424         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
2425         up dot_prod pattern searching if a stmt is outside the loop.
2426
2427 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
2428             Uros Bizjak  <ubizjak@gmail.com>
2429
2430         * config.gcc: Handle --enable-frame-pointer.
2431
2432         * configure.ac: Add --enable-frame-pointer.
2433         * configure: Regenerated.
2434
2435         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
2436         (override_options): If not configured with --enable-frame-pointer,
2437         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
2438         optimizing for size), -fasynchronous-unwind-tables and
2439         -maccumulate-outgoing-args by default.
2440
2441 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
2442
2443         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
2444
2445         PR middle-end/45262
2446         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
2447         -a overflows.  Normalize the range.
2448
2449 2010-08-12  Richard Guenther  <rguenther@suse.de>
2450
2451         PR tree-optimization/45232
2452         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
2453         for types with undefined overflow.
2454         (reassociate_bb): Allow re-associating of bit and min/max
2455         operations for types with undefined overflow.
2456         * tree-ssa-forwprop.c (associate_plusminus): New function.
2457         (tree_ssa_forward_propagate_single_use_vars): Call it.
2458
2459 2010-08-12  Richard Guenther  <rguenther@suse.de>
2460
2461         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
2462         * tree-ssa-alias.c (get_ptr_info): Move ...
2463         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
2464         align and misalign fields conservatively.
2465         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
2466         derive alignment information.
2467         (evaluate_stmt): Derive alignment information from memory
2468         allocation functions.
2469         * tree.h (get_pointer_alignment): Make unsigned.
2470         * builtins.c (get_object_alignment): Use alignment information we
2471         have computed for pointers.
2472         (get_pointer_alignment): Likewise.  Make conservative, return
2473         and unsigned value.
2474         (expand_builtin_strlen): Adjust.
2475         (expand_builtin_memcmp): Likewise.
2476         (expand_builtin_strcmp): Likewise.
2477         (expand_builtin_strncmp): Likewise.
2478         (get_builtin_sync_mem): Use at least mode alignment.
2479         (fold_builtin_memset): Adjust.
2480         (fold_builtin_memory_op): Likewise.
2481         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
2482         information also dump pointer alignment knowledge.
2483         (dump_gimple_stmt): Likewise.
2484
2485 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
2486
2487         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
2488         (EMPTY_FIELD_BOUNDARY): Remove.
2489         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
2490
2491 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
2492
2493         PR debug/45259
2494         * caller-save.c (save_call_clobbered_regs): Only swap notes with
2495         DEBUG_INSNs if n_regs_saved.
2496
2497 2010-08-12  Wei Guozhi  <carrot@google.com>
2498
2499         PR target/44999
2500         * config/arm/arm.md (andsi3): Change to zero extension if possible.
2501         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
2502
2503 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
2504
2505         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
2506
2507         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
2508
2509 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2510
2511         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
2512         the case removed in the previous patch, when the only phi argument
2513         is defined in the same loop as the phi node itself.  Handle it
2514         separately from the invariant case by both propagating it outside
2515         the region and replacing the phi node with an assign.
2516
2517 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2518
2519         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
2520         constant phi nodes with one argument are is_gimple_min_invariant
2521         and SSA_NAME_IS_DEFAULT_DEF.
2522
2523 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2524
2525         * graphite-cloog-util.c (oppose_constraint):
2526         Extend loop counter's value range (CLOOG_ORG).
2527         (cloog_matrix_to_ppl_constraint): Same.
2528         (new_Constraint_System_from_Cloog_matrix): Same.
2529         * graphite-cloog-compat.h (matrix_num_type): New.
2530
2531 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2532
2533         * graphite.c (graphite_initialize): Do not initialize
2534         CLooG and initialize the Parma Polyhedra Library
2535         manually when using CLOOG_ORG.
2536         (graphite_finalize): Do not finalize CLooG and finalize
2537         the Parma Polyhedra Library manually when using CLOOG_ORG.
2538         * graphite-cloog-compat.h (cloog_initialize): Hide function
2539         when using CLOOG_ORG.
2540         (cloog_finalize): Same.
2541
2542 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2543
2544         * graphite-clast-to-gimple.c (free_scattering): Change
2545         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
2546         (CLOOG_ORG).
2547         (build_cloog_prog): Same.
2548         * graphite-cloog-compat.h (cloog_domain): Removed.
2549         (cloog_scattering): New.
2550         (cloog_set_domain): Removed.
2551         (cloog_set_scattering): New.
2552         (cloog_next_domain): Removed.
2553         (cloog_next_scattering): New.
2554         (cloog_set_next_domain): Removed.
2555         (cloog_set_next_scattering): New.
2556         (CloogScatteringList): New.
2557         (CloogScattering): New.
2558         (cloog_scattering_free): New.
2559         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
2560         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
2561         New.
2562
2563 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2564
2565         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
2566         CloogState.
2567         (set_cloog_options): Same.
2568         (print_clast_stmt): Same.
2569         (scop_to_clast): Same.
2570         (print_generated_program): Same.
2571         (gloog): Same.
2572         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
2573         (scop_to_clast): Extend with CloogState.
2574         * graphite-cloog-util.c: Include graphite-cloog-compat.h
2575         (new_Cloog_Domain_from_ppl_Polyhedron):
2576         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
2577         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
2578         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2579         * graphite-cloog-util.h (build_cloog_prog): Same.
2580         * graphite-cloog-copat.h (build_cloog_prog): New.
2581         (CloogState): New.
2582         (cloog_state_malloc): New.
2583         (cloog_state_free): New.
2584         (cloog_loop_malloc): New.
2585         (cloog_options_malloc): New.
2586         (cloog_statement_alloc): New.
2587         (cloog_domain_from_cloog_matrix): New.
2588         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
2589         (new_Cloog_Domain_from_ppl_Polyhedron): New.
2590
2591 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2592
2593         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
2594         type of NAME now depends on used CLooG version.
2595         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
2596         (gcc_type_for_clast_expr): Same.
2597         (print_clast_stmt): Replace pprint with clast_pprint.
2598         * graphite-cloog-compat.h: Provide compatibility macros for
2599         CLooG Legacy.
2600         (clast_name_p): New.
2601         (clast_expr_term): New.
2602         (clast_expr_red): New.
2603         (clast_expr_bin): New.
2604         (clast_pprint): New.
2605
2606 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2607
2608         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
2609         compatible to newer CLooG releases (CLOOG_ORG).
2610         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
2611         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
2612         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
2613         (build_cloog_prog) : New.
2614         (cloog_program_extract_scalars): New.
2615         (cloog_program_scatter): New.
2616
2617 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2618
2619         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
2620         conditionally (CLOOG_ORG).
2621         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
2622         (cloog_statement_usr): New.
2623         (cloog_domain): Same.
2624         (cloog_set_domain): Same.
2625         (cloog_next_domain): Same.
2626         (cloog_set_next_domain): Same.
2627         (cloog_program_nb_scattdims): Same.
2628         (cloog_program_set_nb_scattdims): Same.
2629         (cloog_program_names): Same.
2630         (cloog_program_set_names): Same.
2631         (cloog_program_set_context): Same.
2632         (cloog_program_set_loop): Same.
2633         (cloog_program_blocklist): Same.
2634         (cloog_program_set_blocklist): Same.
2635         (cloog_program_scaldims): Same.
2636         (cloog_program_set_scaldims): Same.
2637         (cloog_names_nb_parameters): Same.
2638         (cloog_names_set_nb_parameters): Same.
2639         (cloog_names_parameters): Same.
2640         (cloog_names_set_parameters): Same.
2641         (cloog_names_set_nb_iterators): Same.
2642         (cloog_names_set_iterators): Same.
2643         (cloog_names_set_nb_scattering): Same.
2644         (cloog_names_set_scattering): Same.
2645         (cloog_statement_set_usr): Same.
2646         (cloog_loop_set_next): Same.
2647         (cloog_loop_set_domain): Same.
2648         (cloog_loop_set_block): Same.
2649         (cloog_block_list_next): Same.
2650         (cloog_block_list_set_next):
2651         (cloog_block_list_set_block): Same.
2652
2653 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2654
2655         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
2656         a bool.
2657         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
2658         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
2659         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
2660         when something has been changed.
2661         (rewrite_commutative_reductions_out_of_ssa): Same.
2662
2663 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2664
2665         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
2666         handle the case when def is in the sese region.
2667         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
2668         for invariant expressions.
2669         (rewrite_cross_bb_phi_deps): Removed.
2670         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
2671         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
2672         rewrite_cross_bb_phi_deps.
2673
2674 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2675
2676         * graphite-sese-to-poly.c
2677         (rewrite_commutative_reductions_out_of_ssa_loop): Call
2678         scev_analyzable_p only on is_gimple_reg
2679
2680 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2681
2682         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
2683         (rewrite_close_phi_out_of_ssa): Propagate constant values or
2684         parametric expressions outside the scop region.
2685         (rewrite_cross_bb_scalar_deps): Same.
2686         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
2687
2688 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2689
2690         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
2691         SSA_NAME_DEF_STMT only on SSA_NAMEs.
2692
2693 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2694
2695         * tree-scalar-evolution.c (instantiate_scev_name): Do not
2696         instantiate default definitions.
2697
2698 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
2699             Sebastian Pop  <sebastian.pop@amd.com>
2700
2701         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
2702         (loop_exits_from_bb_p): New.
2703         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
2704         (loop_exits_from_bb_p): Declared.
2705         * graphite-scop-detection.c (scopdet_basic_block_info): Call
2706         loop_exits_to_bb_p.
2707
2708 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2709
2710         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
2711         extra parameter for the region.  Call scev_analyzable_p.
2712         (rewrite_reductions_out_of_ssa): Update call to
2713         rewrite_close_phi_out_of_ssa.
2714         (rewrite_cross_bb_phi_deps): Same.
2715         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
2716         parameter for the region.  Call scev_analyzable_p.
2717         (rewrite_commutative_reductions_out_of_ssa): Update call to
2718         rewrite_commutative_reductions_out_of_ssa_loop.
2719
2720 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2721
2722         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
2723
2724 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2725
2726         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
2727         SSA scalar phi nodes that can be scev_analyzable_p.
2728
2729 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2730
2731         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
2732         handle SSA_NAME_IS_DEFAULT_DEF.
2733
2734 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2735
2736         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
2737
2738 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2739
2740         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
2741         case non close-phi nodes with one argument.
2742
2743 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2744
2745         * sese.h (scev_analyzable_p): Scevs could be expressions without
2746         chrecs and still be scev_analyzable_p.
2747
2748 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2749
2750         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
2751
2752 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2753
2754         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
2755         * cfgloop.h (struct loop): Remove single_iv field.
2756         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
2757         (scop_canonicalize_loops): Removed.
2758         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
2759         over all the loop phi nodes in loop->header.
2760         (build_poly_scop): Remove use of scop_canonicalize_loops.
2761
2762 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2763
2764         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
2765         handle GIMPLE_CALL.
2766
2767 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2768
2769         * tree-chrec.c (chrec_apply): Should only apply to the specified
2770         variable.  Also handle multivariate chains of recurrences that
2771         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
2772
2773 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2774
2775         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
2776         (debug_clast_name_indexes_1): Removed.
2777         (debug_clast_name_indexes): Removed.
2778         (pbb_to_depth_to_oldiv): Removed.
2779         (build_iv_mapping): Replace the use of rename_map with iv_map.
2780         (translate_clast_user): Remove uses of rename_map.  Allocate and
2781         free iv_map.
2782         (translate_clast_for_loop): Remove uses of rename_map.
2783         (translate_clast_for): Same.
2784         (translate_clast_guard): Same.
2785         (translate_clast): Same.
2786         (gloog): Same.
2787         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
2788         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
2789         * sese.c (set_rename): Now static.
2790         (rename_variables_in_stmt): Removed.
2791         (rename_uses): New.
2792         (is_parameter): Removed.
2793         (is_iv): Removed.
2794         (expand_scalar_variables_call): Removed.
2795         (expand_scalar_variables_ssa_name): Removed.
2796         (expand_scalar_variables_expr): Removed.
2797         (expand_scalar_variables_stmt): Removed.
2798         (expand_scalar_variables): Removed.
2799         (rename_variables): Removed.
2800         (remove_condition): Removed.
2801         (get_true_edge_from_guard_bb): Removed.
2802         (get_false_edge_from_guard_bb): Removed.
2803         (struct igp): Removed.
2804         (default_before_guard): Removed.
2805         (convert_for_phi_arg): Removed.
2806         (add_guard_exit_phis): Removed.
2807         (insert_guard_phis): Removed.
2808         (graphite_copy_stmts_from_block): Now also uses iv_map and a
2809         region.  Do not copy conditions.  Do not copy induction variables.
2810         Call rename_uses.
2811         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
2812         the translated statement.  Use the iv_map for the induction
2813         variable renaming.
2814         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2815         (set_rename): Removed declaration.
2816         (scev_analyzable_p): ...here.
2817         * tree-chrec.c (chrec_apply_map): New.
2818         * tree-chrec.h (chrec_apply_map): Declared.
2819
2820 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2821
2822         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
2823         insert_loop_close_phis.
2824         * sese.c (name_defined_in_loop_p): Removed.
2825         (expr_defined_in_loop_p): Removed.
2826         (alive_after_loop): Removed.
2827         (close_phi_not_yet_inserted_p): Removed.
2828         (struct alep): Removed.
2829         (add_loop_exit_phis): Removed.
2830         (insert_loop_close_phis): Removed.
2831
2832 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2833
2834         * graphite-cloog-util.c
2835         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
2836         * graphite-poly.c
2837         (psct_scattering_dim_for_loop_depth): Same.
2838
2839 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2840
2841         * graphite-cloog-util.h: Added cloog.h.
2842         * graphite-blocking.c: Removed cloog.h.
2843         * graphite-dependences.c: Same.
2844         * graphite-interchange.c: Same.
2845         * graphite-poly.c: Same.
2846         * graphite-ppl.c: Same.
2847         * graphite-scop-detection.c: Same.
2848         * graphite-sese-to-poly.c:
2849         Removed cloog.h.
2850         Removed graphite-clast-to-gimple.h.
2851         (check_poly_representation): Removed (unused).
2852         * graphite-sese-to-poly.h
2853         (check_poly_representation): Removed (unused).
2854
2855 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2856
2857         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
2858         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
2859         (graphite-cloog-util.o): New.
2860         (graphite-ppl.o): Added graphite-cloog-util.h.
2861         * graphite-clast-to-gimple.c:
2862         Added graphite-cloog-util.h to include statements.
2863         * graphite-cloog-util.c: New.
2864         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
2865         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2866         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2867         (new_C_Polyhedron_from_Cloog_Matrix): Same.
2868         (insert_constraint_into_matrix): Same.
2869         (ppl_Constrain_System_number_of_constraints): Same.
2870         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
2871         (oppose_constraint): Same.
2872         (cloog_matrix_to_ppl_constraint): Same.
2873         (new_Constraint_System_from_Cloog_Matrix): Same.
2874         * graphite-cloog-util.h: New.
2875         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
2876         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2877         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2878         (new_C_Polyhedron_from_Cloog_Matrix): Same.
2879         (insert_constraint_into_matrix): Same.
2880         * graphite-ppl.c:
2881         Added graphite-cloog-util.h to include statements.
2882         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
2883         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2884         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2885         (new_C_Polyhedron_from_Cloog_Matrix): Same.
2886         (insert_constraint_into_matrix): Same.
2887         (ppl_Constrain_System_number_of_constraints): Same.
2888         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
2889         (oppose_constraint): Same.
2890         (cloog_matrix_to_ppl_constraint): Same.
2891         (new_Constraint_System_from_Cloog_Matrix): Same.
2892         * graphite-ppl.h:
2893         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
2894         graphite-cloog-util.h.
2895         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2896         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2897         (new_C_Polyhedron_from_Cloog_Matrix): Same.
2898         (insert_constraint_into_matrix): Same.
2899
2900 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2901
2902         * graphite-clast-to-gimple.c
2903         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
2904         (precision_for_interval): Same.
2905         (gcc_type_for_interval): Same.
2906         (compute_type_for_level): Same.
2907         * graphite-interchange.c
2908         (lst_interchange_profitable_p): Same.
2909         * graphite-poly.c
2910         (psct_scattering_dim_for_loop_depth): Same.
2911         * graphite-ppl.c
2912         (ppl_max_for_le_pointset): Same.
2913         (ppl_min_for_le_pointset): Same.
2914
2915 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2916
2917         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
2918         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
2919
2920 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2921
2922         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
2923         rewrite_close_phi_out_of_ssa.
2924
2925 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2926
2927         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
2928
2929 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2930
2931         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
2932         rename_map.
2933         * sese.c (debug_rename_map): Same.
2934         (get_rename): Same.
2935         (set_rename): Same.
2936         (rename_variables_in_stmt): Same.
2937         (expand_scalar_variables_call): Same.
2938         (expand_scalar_variables_ssa_name): Same.
2939         (expand_scalar_variables_expr): Same.
2940         (expand_scalar_variables_stmt): Same.
2941         (expand_scalar_variables): Same.
2942         (rename_variables): Same.
2943         (graphite_copy_stmts_from_block): Same.
2944         (copy_bb_and_scalar_dependences): Same.
2945
2946 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2947
2948         * graphite-clast-to-gimple.c (copy_renames): Removed.
2949         (translate_clast_for): Do not call copy_renames.
2950         (translate_clast_guard): Same.
2951
2952 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2953
2954         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
2955         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
2956         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
2957         before rewrite_cross_bb_scalar_deps.
2958
2959 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2960
2961         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
2962         Early return in when flag_associative_math is not set.
2963
2964 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2965
2966         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
2967         of SSA copies on edges except for loop->latch.
2968
2969 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2970
2971         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
2972         Split out of rewrite_reductions_out_of_ssa.
2973         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
2974         Declared.
2975         * graphite.c (graphite_transform_loops): Call it.
2976
2977 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2978
2979         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
2980
2981 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
2982
2983         * dbgcnt.def (graphite_scop): New counter.
2984         * graphite.c: Include dbgcnt.h.
2985         (graphite_transform_loops): Use new counter to limit transformations.
2986         * Makefile.in (graphite.o): Depend on DBGCNT_H.
2987
2988 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2989
2990         * passes.c (init_optimization_passes): Add pass_graphite.
2991         Schedule a pass_copy_prop before pass_graphite_transforms.
2992         * timevar.def (TV_GRAPHITE): Declared.
2993         * tree-pass.h (pass_graphite): Declared.
2994         * tree-ssa-loop.c (pass_graphite): New.
2995
2996 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2997
2998         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
2999         Remove calls to rename_nb_iterations and rename_sese_parameters.
3000         * graphite-clast-to-gimple.h (gloog): Update declaration.
3001         * graphite.c (graphite_transform_loops): Update call to gloog.
3002         * sese.c (rename_variables_in_expr): Removed.
3003         (rename_nb_iterations): Removed.
3004         (rename_sese_parameters): Removed.
3005         * sese.h (rename_nb_iterations): Removed.
3006         (rename_sese_parameters): Removed.
3007
3008 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3009
3010         * graphite-clast-to-gimple.c (gloog): Remove call to
3011         sese_adjust_liveout_phis.
3012         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
3013         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
3014         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
3015         rewrite_phi_out_of_ssa.
3016         * sese.c (get_vdef_before_sese): Removed.
3017         (sese_adjust_vphi): Removed.
3018         (sese_adjust_liveout_phis): Removed.
3019         * sese.h (sese_adjust_liveout_phis): Removed.
3020
3021 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3022
3023         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
3024         argument for the place after which to insert the out of SSA copy.
3025         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
3026         (rewrite_phi_out_of_ssa): Same.
3027         (rewrite_cross_bb_scalar_deps): Same.
3028         (insert_copyout): Removed.
3029         (insert_copyin): Removed.
3030         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
3031         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
3032         insert_copyin.
3033
3034 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3035
3036         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
3037         (rewrite_reductions_out_of_ssa): Same.
3038         (rewrite_commutative_reductions_out_of_ssa): Same.
3039         (build_poly_scop): Do not call these functions.
3040         * graphite-sese-to-poly.h (build_poly_scop): Declared.
3041         (rewrite_reductions_out_of_ssa): Declared.
3042         (rewrite_commutative_reductions_out_of_ssa): Declared.
3043         * graphite.c (graphite_transform_loops): Call on every scop
3044         rewrite_commutative_reductions_out_of_ssa before calling
3045         rewrite_reductions_out_of_ssa and build_scop_bbs.
3046
3047 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3048
3049         * graphite-dependences.c (dot_deps): Make system call to dotty run
3050         in background.
3051         (dot_deps_stmt): Same.
3052         * graphite-poly.c (dot_lst): Same.
3053
3054 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3055
3056         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
3057         phi_arg_in_outermost_loop.
3058         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
3059         (remove_invariant_phi): Same.
3060
3061 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
3062
3063         * target.def (output_addr_const_extra): New hook.
3064         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
3065         * doc/tm.texi: Regenerate.
3066         * targhooks.c (default_asm_output_addr_const_extra): New function.
3067         * targhooks.h (default_asm_output_addr_const_extra): Declare.
3068         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
3069         target hook.
3070
3071         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3072         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
3073         * config/i386/i386.h (output_addr_const_extra): Rename to...
3074         (i386_asm_output_addr_const_extra): ...this. Make static.
3075         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3076
3077 2010-08-11  Richard Henderson  <rth@redhat.com>
3078
3079         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
3080
3081 2010-08-11  Nick Clifton  <nickc@redhat.com>
3082
3083         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
3084         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
3085         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
3086         stormy16-lib2-cmpsi.c.
3087
3088         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
3089         -O2.
3090
3091 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
3092
3093         * opts.h (struct cl_option_handler_func): Make handler take
3094         cl_decoded_option structure as parameter, not individual elements.
3095         (struct cl_option_handlers): Make callbacks take cl_decoded_option
3096         structure as parameter, not individual elements.
3097         (handle_option): Take cl_decoded_option structure as parameter,
3098         not individual elements.
3099         (handle_generated_option): Declare.
3100         * opts-common.c (handle_option): Take cl_decoded_option structure
3101         as parameter, not individual elements.  Update calls to callback
3102         and handler functions.
3103         (handle_generated_option): New.
3104         (read_cmdline_option): Update calls to callback functions and
3105         handle_option.
3106         * opts.c (common_handle_option, complain_wrong_lang,
3107         unknown_option_callback, post_handling_callback,
3108         lang_handle_option, target_handle_option): Take cl_decoded_option
3109         structure as parameter, not individual elements.
3110         (lang_handle_option, target_handle_option, common_handle_option):
3111         Assert option has at most one argument.
3112         (enable_warning_as_error): Call handle_generated_option instead of
3113         handle_option.  Do not pass -Werror argument as argument of
3114         generated option.
3115
3116 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3117
3118         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
3119         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
3120         (SUBWORD_BOOL_CAS): Likewise.
3121         (SUBWORD_SYNC_OP): Likewise.
3122         (SUBWORD_TEST_AND_SET): Likewise.
3123         (FETCH_AND_OP_WORD): Parenthesise INF_OP
3124         (SUBWORD_SYNC_OP): Likewise.
3125         (OP_AND_FETCH_WORD): Likewise.
3126
3127 2010-08-10  Xinliang David Li  <davidxl@google.com>
3128
3129         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
3130         compute max/min offset in address.
3131
3132 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
3133
3134         * ira-live.c: Include sbitmap.h.
3135         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
3136         Compress live ranges even more.
3137
3138 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3139
3140         * coverage.c (ctr_labels): Delete.
3141
3142 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
3143
3144         PR bootstrap/45177
3145         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
3146         test here from arm_gen_load_multiple_1.
3147         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
3148         multiple_operation_profitable_p.
3149
3150 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3151
3152         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
3153         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
3154
3155 2010-08-10  Richard Henderson  <rth@redhat.com>
3156
3157         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
3158         after saving registers.  Assert that SSE registers are only saved
3159         with a sufficiently aligned frame.
3160         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
3161         remove stack_realign_fp handling.
3162         (ix86_expand_prologue): Save int registers before stack_realign_fp,
3163         and do not mark the stack alignment as frame related.
3164         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
3165
3166         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
3167         saves when re-aligning the stack.
3168
3169 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3170
3171         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
3172         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
3173         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
3174
3175 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3176
3177         * dwarf2out.c (struct die_struct): Move die_tag to the end.
3178
3179 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
3180
3181         * config/arm/iterators.md: New file.
3182         * config/arm/arm.md: Include iterators.md.
3183         (QHSI): Move to new file.
3184         (LTUGEU, cnb, optab, ior_xor): Likewise.
3185         * config/arm/iwmmxt.md (VMMX): Move to new file.
3186         (VSHFT, MMX_char): Likewise.
3187         * config/arm/neon.md (VD): Move to new file.
3188         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
3189         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
3190         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
3191         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
3192         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
3193         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
3194         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
3195         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
3196         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
3197         (Is_d_reg, V_mode_nunits): Likewise.
3198         * config/arm/vec-common.md (VALL): Move to new file.
3199         (VALLW, VINT, VINTW): Likewise.
3200
3201 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
3202
3203         PR middle-end/45182
3204         * combine.c (make_compound_operation): Don't try to convert
3205         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
3206
3207 2010-08-10  Richard Guenther  <rguenther@suse.de>
3208
3209         * tree.h (get_object_alignment): Adjust prototype.
3210         * builtins.c (get_object_alignment): Return unsigned int,
3211         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
3212         and TARGET_MEM_REF properly.
3213         (get_pointer_alignment): Adjust.
3214         * emit-rtl.c (get_mem_align_offset): Adjust comment.
3215         (set_mem_attributes_minus_bitpos): Adjust.
3216         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
3217
3218 2010-08-10  Richard Guenther  <rguenther@suse.de>
3219
3220         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
3221         (copy_prop_visit_assignment): Simplify.
3222         (copy_prop_visit_stmt): Also visit assignments from
3223         constants.
3224         (copy_prop_visit_phi_node): Use operand_equal_p.
3225
3226 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3227
3228         * ipa-split.c (find_split_points): Free stack.
3229
3230 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3231
3232         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
3233         * tree.c (tree_node_kind): Delete corresponding entries.
3234
3235 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
3236
3237         * alias.c (may_alias_p): Remove unused ret.
3238
3239 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
3240
3241         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
3242         alias_sets_conflict_p.
3243         (walk_mems_1): Moved from alias.c.
3244         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
3245         in alias.c.
3246         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
3247         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
3248         * alias.c (walk_mems_2): Moved to ddg.c.
3249         (walk_mems_1): Ditto.
3250         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
3251         to ddg.c.
3252         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
3253         disambiguation.
3254         *(may_alias_p): New function to check whether two memory expression
3255         may alias or not. Currently used in buidling inter-iteration memory
3256         dependence.
3257         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
3258         (insn_alias_sets_conflict_p): Removed
3259         *rtl.h (may_alias_p): New function prototype.
3260
3261 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3262
3263         * tree.c (nreverse): Assert that we don't have a BLOCK.
3264
3265 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3266
3267         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
3268         * config/arm/arm.c (arm_get_pcs_model): Likewise.
3269         * config/avr/avr.c (init_cumulative_args): Likewise.
3270         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
3271         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
3272         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
3273         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
3274         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
3275         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
3276         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
3277         * dwarf2out.c (gen_subprogram_die): Likewise.
3278         * function.c (allocate_struct_function): Likewise.
3279         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
3280         (deserves_ellipsis): Delete.
3281
3282 2010-08-09  Richard Guenther  <rguenther@suse.de>
3283
3284         * tree-ssa-copy.c (cached_last_copy_of): Remove.
3285         (valueize_val): New function.
3286         (get_last_copy_of): Remove.
3287         (set_copy_of_val): Simplify.
3288         (dump_copy_of): Likewise.
3289         (copy_prop_visit_cond_stmt): Use valueize_val.
3290         (copy_prop_visit_phi_node): Properly handle unvisited names.
3291         Drop code managing copy-of chains.
3292         (init_copy_prop): Adjust.
3293         (fini_copy_prop): Likewise.
3294         (execute_copy_prop): Remove obsolete comment.
3295
3296 2010-08-09  Richard Guenther  <rguenther@suse.de>
3297
3298         PR middle-end/44632
3299         * function.c (gimplify_parameters): Do not clear addressable
3300         bit of the original parameter.
3301
3302 2010-08-09  Richard Guenther  <rguenther@suse.de>
3303
3304         PR middle-end/45212
3305         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
3306         alignment from MEM_REF offset only if we took it from the
3307         base object.
3308
3309 2010-08-09  Eric Fisher <joefoxreal@gmail.com>
3310
3311         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
3312
3313 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
3314
3315         * c-tree.h (build_arg_info): Declare.
3316         * c-decl.c (build_arg_info): Define.
3317         (get_parm_info): Call it.  Delete initialization code.
3318         * c-parser.c (c_parser_parms_declarator): Likewise.
3319         (c_parser_parms_list_declaractor): Likewise.
3320
3321 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
3322
3323         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
3324         (struct c_arg_info): Change type of tags field.
3325         * c-decl.c (grokdeclarator): Update for changed type of tags field.
3326         (get_parm_info): Likewise.
3327         (store_parm_decls_newstyle): Likewise.
3328
3329 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
3330
3331         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
3332         (branch_island_list): Delete.
3333         (branch_islands): Declare.
3334         (add_compiler_branch_island): Adjust for branch_islands instead of
3335         branch_island_list.
3336         (macho_branch_islands): Likewise.
3337         (no_previous_def): Likewise.
3338         (get_prev_label): Likewise.
3339
3340 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3341
3342         PR boehm-gc/34544
3343         * gthr-posix.h (__gthread_start): Delete.
3344         (__gthread_active_init): Use pthread_default_stacksize_np instead of
3345         pthread_create to determine if hpux pthreads are active.
3346         * gthr-posix95.h (__gthread_start): Delete.
3347         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
3348
3349 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
3350
3351         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
3352         _WIN64 not expanded.
3353
3354 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
3355             H.J. Lu  <hongjiu.lu@intel.com>
3356
3357         PR target/45213
3358         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
3359         to output 32bit SFmode immediate as 8 byte sign extended value.
3360
3361 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3362
3363         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
3364         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
3365         (SUBWORD_BOOL_CAS): Likewise.
3366         (SUBWORD_SYNC_OP): Likewise.
3367         (SUBWORD_TEST_AND_SET): Likewise.
3368         (FETCH_AND_OP_WORD): Parenthesise INF_OP
3369         (SUBWORD_SYNC_OP): Likewise.
3370         (OP_AND_FETCH_WORD): Likewise.
3371
3372 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3373
3374         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
3375         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
3376         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
3377         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
3378         generic part.
3379         (cortex_a9_sched_adjust_cost): New function.
3380         (xscale_sched_adjust_cost): New function.
3381         * config/arm/arm-protos.h (struct tune_params): New field
3382         sched_adjust_cost.
3383         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
3384
3385 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
3386
3387         PR target/44942
3388         * config/sparc/sparc.c (function_arg_advance): Always take into account
3389         the padding, if any.
3390
3391 2010-08-06  Richard Guenther  <rguenther@suse.de>
3392
3393         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
3394         (dump_lattice_value): Dump it.
3395         (get_default_value): Adjust.
3396         (get_constant_value): Likewise.
3397         (set_value_varying): Likewise.
3398         (set_lattice_value): Make sure to not go up the lattice
3399         with bitwise constant values.
3400         (get_value_for_expr): Handle ADDR_EXPRs.
3401         (value_to_double_int): New function.
3402         (get_value_from_alignment): Likewise.
3403         (do_dbg_cnt): Adjust.
3404         (ccp_lattice_meet): Handle partially constant values.
3405         (bit_value_unop_1): New function.
3406         (bit_value_binop_1): Likewise.
3407         (bit_value_unop): Likewise.
3408         (bit_value_binop): Likewise.
3409         (evaluate_stmt): Track partially constant values if
3410         flag_tree_bit_ccp is set.
3411         (ccp_fold_stmt): Dump if we folded a predicate.
3412         (ccp_visit_stmt): Adjust.
3413         * common.opt (ftree-bit-ccp): New flag.
3414         * doc/invoke.texi (ftree-bit-ccp): Document.
3415         * opts.c (decode_options): Enable bit-CCP at -O1.
3416
3417 2010-08-06  Alan Modra  <amodra@gmail.com>
3418
3419         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
3420         and -mrelocatable-lib description.
3421
3422 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
3423
3424         From Martin Thuresson  <martint@google.com>
3425         * postreload.c (reload_cse_simplify_operands): Use
3426         SET_REGNO_RAW instead of SET_REGNO.
3427         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
3428         SET_REGNO.
3429         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
3430         instead of SET_REGNO.
3431         * rtl.h (SET_REGNO_RAW): New macro.
3432
3433 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
3434
3435         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
3436         computations.  Fix formatting issues.
3437         (num_sign_bit_copies1): Likewise.
3438         (canonicalize_condition): Likewise.
3439
3440 2010-08-05  Richard Henderson  <rth@redhat.com>
3441
3442         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
3443         (floor_log2): Use clz_hwi.
3444         (exact_log2): Use ctz_hwi.
3445         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
3446         * builtins.c (fold_builtin_bitop): Use them.
3447         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3448         * combine.c (get_pos_from_mask): Use ctz_hwi.
3449         * double-int.c (double_int_ctz): Likewise.
3450         * explow.c (force_reg): Likewise.
3451         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
3452
3453 2010-08-05  Richard Henderson  <rth@redhat.com>
3454
3455         PR target/45189
3456         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
3457         the alignment constant is properly sign-extended.
3458
3459 2010-08-05  Richard Guenther  <rguenther@suse.de>
3460
3461         * expr.c (store_expr): Use emit_block_move only if both
3462         source and target are MEMs.  Use store_bit_field if only
3463         the target is a MEM.
3464
3465 2010-08-05  Richard Henderson  <rth@redhat.com>
3466
3467         PR debug/45188
3468         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
3469         (INCOMING_RETURN_ADDR_RTX): Likewise.
3470         (dwarf2out_do_frame): Remove conditional compilation.
3471         (dwarf2out_frame_init): Likewise.
3472
3473 2010-08-05  Nicolas Setton  <setton@adacore.com>
3474
3475         * gcov.c (flag_display_progress): New static variable.
3476         (main): Display progress info on standard output if requested.
3477         (options): Add -d/--display-progress.
3478         (print_usage): Print them.
3479         (process_args): Handle them.
3480         * doc/gcov.texi: Document them.
3481
3482 2010-08-05  Martin Jambor  <mjambor@suse.cz>
3483
3484         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
3485         (ipcp_insert_stage): Redirect only edges not flagged with
3486         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
3487         discovered constants.
3488
3489 2010-08-05  Martin Jambor  <mjambor@suse.cz>
3490
3491         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
3492         (struct ipa_param_descriptor): New fields types and
3493         cannot_devirtualize.
3494         (ipa_param_cannot_devirtualize_p): New function.
3495         (ipa_param_types_vec_empty): Likewise.
3496         (ipa_make_edge_direct_to_target): Declare.
3497         * ipa-cp.c: Fixed first stage driver name in initial comment,
3498         described devirtualization there too.
3499         (ipcp_analyze_node): Call ipa_analyze_params_uses.
3500         (ipcp_print_all_lattices): Print devirtualization info.
3501         (ipa_set_param_cannot_devirtualize): New function.
3502         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
3503         lattice to BOTTOM.
3504         (ipcp_init_stage): Merged into...
3505         (ipcp_generate_summary): ...its caller.
3506         (ipcp_change_tops_to_bottom): Also process type lists.
3507         (ipcp_add_param_type): New function.
3508         (ipcp_copy_types): Likewise.
3509         (ipcp_propagate_types): Likewise.
3510         (ipcp_propagate_stage): Also propagate types.
3511         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
3512         Also return true if propagated types require it.
3513         (ipcp_update_callgraph): Dump redirection info.
3514         (ipcp_process_devirtualization_opportunities): New function.
3515         (ipcp_const_param_count): Include known type information.
3516         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
3517         on new node.  Fixed formatting.
3518         * ipa-prop.c (make_edge_direct_to_target): Renamed to
3519         ipa_make_edge_direct_to_target and changed all callers.  Made
3520         externally visible.
3521         (ipa_node_duplication_hook): Duplicate types vector.
3522         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
3523         redirect outgoing calls for which we can't get a decl from the
3524         statement.  Check that we can get a decl from the call statement.
3525         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3526         ipa_analyze_params_uses only when ipa-cp is disabled.
3527         * tree-inline.c (get_indirect_callee_fndecl): Removed.
3528         (expand_call_inline): Do not call get_indirect_callee_fndecl.
3529         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
3530         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
3531
3532 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
3533
3534         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
3535         temporary. Emit move from temporary to accum, so REG_EQUAL note will
3536         be attached to this insn in correct mode.
3537
3538 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
3539
3540         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
3541         using REGNO of base_reg directly.
3542
3543 2010-08-05  Jie Zhang  <jie@codesourcery.com>
3544
3545         PR tree-optimization/45144
3546         * tree-sra.c (type_consists_of_records_p): Return false
3547         if the record contains bit-field.
3548
3549 2010-08-04  Richard Henderson  <rth@redhat.com>
3550
3551         * config/i386/i386.c (struct ix86_frame): Remove padding and
3552         to_allocate members.
3553         (ix86_compute_frame_layout): Don't store them.
3554         (ix86_can_use_return_insn_p): Use a more direct and more obviously
3555         correct condition for the position of the stack pointer.
3556         (ix86_expand_prologue): Compute remaining stack allocation based
3557         on the ultimate stack pointer offset.
3558         (ix86_expand_epilogue): Use more obvious expressions testing for
3559         the stack pointer already pointing to the saved registers.
3560
3561         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
3562         duplication deconstructing the frame pointer.  Simplify
3563         deallocation of the local stack frame.
3564
3565         * reg-notes.def (CFA_EXPRESSION): New.
3566         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3567         (dwarf2out_frame_debug_cfa_expression): New.
3568         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
3569
3570         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
3571         * config/i386/i386.c (ix86_expand_prologue): Set it.
3572         (ix86_expand_epilogue): Clear it.
3573         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
3574         context, add REG_CFA_EXPRESSION notes.
3575
3576         * config/i386/i386.h (struct machine_frame_state): Rename from
3577         machine_cfa_state.  Add members tracking SP and FP regardless
3578         of the current CFA register.
3579         (ix86_cfa_state): Remove.
3580         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
3581         and sse_reg_save_offset members.
3582         (ix86_compute_frame_layout): Set them.
3583         (gen_push): Increment sp_offset too.
3584         (choose_baseaddr_len, choose_baseaddr): New.
3585         (ix86_emit_save_reg_using_mov): New.
3586         (ix86_emit_save_regs_using_mov): Use it.
3587         (ix86_emit_save_sse_regs_using_mov): Likewise.
3588         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
3589         compare vs the saved red_zone_offset.
3590         (pro_epilogue_adjust_stack): Adjust sp_offset.
3591         (ix86_adjust_stack_and_probe): Likewise.
3592         (ix86_expand_prologue): Set up, use, and validate the new
3593         frame_state_info members.  Use gen_frame_mem.
3594         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
3595         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
3596         new frame_state_info members.
3597         (ix86_emit_leave): Likewise.
3598         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
3599         out-of-range stack pointer offsets here.
3600         (ix86_emit_restore_sse_regs_using_mov): Likewise.
3601         (ix86_expand_epilogue): Use and validate the new frame_state_info
3602         members.  Break up and simplify the logic selecting the
3603         restore_regs_via_mov code path.  Ensure that there will be no
3604         out-of-range stack pointer offsets.
3605
3606         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
3607
3608         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
3609         argument name to reflect the expected tree; fix indentation.
3610         (ix86_asm_output_function_label): Output the entire 32-bit
3611         ms_hook here as bytes ...
3612         (ix86_expand_prologue): ... not here as insns.  Attach the
3613         unwind info for the ms_hook to a blockage insn.
3614         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
3615         (ix86_ms_bitfield_layout_p): Fix indentation.
3616         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
3617
3618         * config/i386/i386.c (ix86_using_red_zone): New.
3619         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
3620         ix86_expand_prologue, ix86_force_to_memory): Use it.
3621
3622         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
3623         saving the int registers.
3624
3625         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
3626         and DWARF2_UNWIND_INFO conditional compilation.
3627
3628 2010-08-04  Richard Henderson  <rth@redhat.com>
3629
3630         PR debug/45171
3631         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
3632         an is_naming_typedef_decl.
3633
3634 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
3635
3636         PR rtl-optimization/45162
3637         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
3638         * dce.c (word_dce_process_block): Likewise.
3639
3640 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
3641
3642         PR target/44583
3643         * config/ia64/constraints.md (Z): New.
3644         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
3645         (xfreg_or_signed_fp01_operand): New.
3646         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
3647         with fr_reg_or_signed_fp01_operand and constraint G with Z.
3648         (subsf3): Ditto.
3649         (*maddsf4): Ditto.
3650         (*msubsf4): Ditto.
3651         (adddf3): Ditto.
3652         (adddf3_trunc): Ditto.
3653         (subdf3): Ditto.
3654         (*subdf3_trunc): Ditto.
3655         (*madddf4): Ditto.
3656         (*madddf4_trunc): Ditto.
3657         (*msubdf4): Ditto.
3658         (*msubdf4_trunc): Ditto.
3659         (addxf3): Replace xfreg_or_fp01_operand with
3660         xfreg_or_signed_fp01_operand and constraint G with Z.
3661         (*addxf3_truncsf): Ditto.
3662         (*addxf3_truncdf): Ditto.
3663         (subxf3): Ditto.
3664         (*subxf3_truncsf): Ditto.
3665         (*subxf3_truncdf): Ditto.
3666         (*maddxf4): Ditto.
3667         (*maddxf4_truncsf): Ditto.
3668         (*maddxf4_truncdf): Ditto.
3669         (*msubxf4): Ditto.
3670         (*msubxf4_truncsf): Ditto.
3671         (*msubxf4_truncdf): Ditto.
3672
3673 2010-08-04  Richard Guenther  <rguenther@suse.de>
3674
3675         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
3676         if either alias-set is zero.
3677
3678 2010-08-04  Richard Guenther  <rguenther@suse.de>
3679
3680         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
3681         * tree-ssa-ccp.c: ... here.
3682         * tree-ssa-copy.c: ... and here.
3683         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
3684         value_range_t): Move ...
3685         * tree-vrp.c: ... here.
3686         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
3687         (substitute_and_fold): Adjust prototype.
3688         * tree-ssa-propagate.c (replace_uses_in): Adjust.
3689         (replace_phi_args_in): Likewise.
3690         (substitute_and_fold): Take callback to query lattice instead
3691         of pointer to lattice.  Replace SSA name defs with lattice
3692         values first.
3693         * tree-ssa-ccp.c (ccp_finalize): Adjust.
3694         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
3695         (get_value): New function.
3696         (fini_copy_prop): Adjust.
3697         * tree-vrp.c (vrp_finalize): Adjust.
3698
3699 2010-08-04  Richard Guenther  <rguenther@suse.de>
3700
3701         PR middle-end/45176
3702         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
3703         points-to set for original MEM_REF.
3704
3705 2010-08-04  Richard Guenther  <rguenther@suse.de>
3706
3707         * tree-ssa-ccp.c (get_constant_value): New function.
3708         (get_rhs_assign_op_for_ccp): Remove.
3709         (valueize_op): New function.
3710         (ccp_fold): Use get_constant_value and valueize_op.
3711         (fold_const_aggregate_ref): Likewise.
3712         (ccp_fold_stmt): Likewise.
3713         (visit_assignment): Simplify.
3714
3715 2010-08-04  Richard Guenther  <rguenther@suse.de>
3716
3717         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
3718         * double-int.h (double_int_ctz): Declare.
3719         * double-int.c (double_int_ctz): New function.
3720
3721 2010-08-04  Hariharan Sandanagobalane <hariharan@picochip.com>
3722
3723         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
3724         Define.
3725         picochip_expand_movmemhi : Expand movmem pattern.
3726         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
3727         Declare.
3728         * config/picochip/picochip.md (movmemhi) : New pattern.
3729
3730 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
3731
3732         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
3733
3734 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
3735
3736         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
3737         NEG as operand of a MULT by merging it with the other operand.
3738         * combine.c (make_compound_operation): Use trunc_int_for_mode when
3739         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
3740         MULT.
3741         * config/arm/constraints.md (M): Examine only 32 bits of a
3742         HOST_WIDE_INT.
3743         * config/arm/predicates.md (power_of_two_operand): Likewise.
3744
3745 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3746
3747         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
3748         non-NOTE insns.
3749
3750 2010-08-03  Jan Hubicka  <jh@suse.cz>
3751
3752         * ipa-split.c (struct split_point): Add split_part_set_retval.
3753         (find_retval): Forward declare.
3754         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
3755         (consider_split): Compute current->split_part_set_retval.
3756         (visit_bb): Do not look into return value.
3757         (split_function): Handle !split_part_set_retval
3758
3759 2010-08-03  Martin Jambor  <mjambor@suse.cz>
3760
3761         * tree-sra.c (completely_scalarize_record): New parameter REF, create
3762         its own access->expr intead of using build_ref_for_offset.
3763
3764 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
3765
3766         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
3767         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
3768         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
3769         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
3770         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
3771         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
3772         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
3773         DEFAULT_SWITCH_TAKES_ARG.
3774         * config/rx/rx.opt (-patch=): Remove option.
3775         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
3776         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
3777         * doc/invoke.texi (RX Options): Remove -patch=.
3778         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
3779         (option_map): Remove --profile-blocks, --quiet and --silent.
3780
3781 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
3782
3783         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
3784         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
3785         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
3786         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
3787         Update calls to ix86_expand_compare and ix86_expand_branch.
3788         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
3789         ix86_expand_compare.
3790         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
3791         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
3792         Make static.
3793         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
3794         and ix86_compare_op1.  Update calls to ix86_expand_compare.
3795         (ix86_expand_int_movcc): Ditto.
3796         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
3797         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
3798         (ix86_expand_setcc): Ditto.
3799         (ix86_expand_compare): Remove prototype.
3800         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
3801         ix86_compare_op0 and ix86_compare_op1.  Update calls
3802         to ix86_expand_branch to directly pass operands[1] and operands[2].
3803         (cbranchxf4): Ditto.
3804         (cbranch<MODEF:mode>4): Ditto.
3805         (cbranchcc4): Ditto.
3806         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
3807         Update calls to ix86_expand_setcc to directly pass operands[2] and
3808         operands[3].
3809         (cstorexf4): Ditto.
3810         (cstore<MODEF:mode>4): Ditto.
3811         (cstorecc4): Ditto.
3812
3813 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
3814
3815         PR target/45063
3816         * caller-save.c (save_call_clobbered_regs): Remove regs from
3817         hard_regs_saved when they are set.
3818
3819 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
3820
3821         PR target/41089
3822         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
3823         as volatile.
3824
3825 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
3826
3827         * common.opt (ftree-loop-distribute-patterns): New.
3828         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
3829         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
3830         at -O3.
3831         * tree-data-ref.c (stores_zero_from_loop): New.
3832         * tree-data-ref.h (stores_zero_from_loop): Declared.
3833         * tree-loop-distribution.c (tree_loop_distribution): Call
3834         stores_zero_from_loop.
3835         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
3836
3837 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
3838
3839         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
3840         into account.
3841
3842         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
3843         * config/arm/arm.c (thumb1_code): New variable.
3844         (arm_override_options): Set it.
3845         (thumb1_final_prescan_insn): Keep track of condition code status.
3846         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
3847         jumps that depend on them.
3848         * config/arm/arm.h (thumb1_code): Declare variable.
3849         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
3850         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
3851         thumb1_cc_mode.
3852         (CC_STATUS_INIT): New macro.
3853         * config/arm/constraints.md (Pd): New constraint.
3854         * config/arm/predicates.md (noov_comparison_operator): New predicate.
3855         * config/arm/arm.md (is_thumb1): New define_attr.
3856         (conds): Set default to "clob" when generating Thumb1 code.
3857         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
3858         code are set.  Use two-operand assembly syntax.
3859         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
3860         pattern.
3861         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
3862         codes are set.  Use two-operand assembly syntax.
3863         (zero_extendhisi splitter): Remove constraints.
3864         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
3865         thumb1_movsf_insn): Set conds attribute as appropriate.
3866         (cbranchsi4_insn): Use condition code status from struct
3867         machine_function to determine whether the comparison can be eliminated.
3868         Discourage the alternative using high registers.
3869         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
3870         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
3871         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
3872         subsi3_cbranch): Delete.
3873         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
3874         one subtract and one cbranch insn.
3875
3876         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
3877         thumb2_movdf_soft_insn): Delete patterns.
3878         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
3879         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
3880         (pool_range, neg_pool_range): Use them to define defaults.
3881         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
3882         and allow for TARGET_32BIT.
3883
3884         PR target/40457
3885         * config/arm/arm.h (arm_regs_in_sequence): Declare.
3886         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
3887         load_multiple_sequence, store_multiple_sequence): Delete
3888         declarations.
3889         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
3890         declarations.
3891         * config/arm/ldmstm.md: New file.
3892         * config/arm/arm.c (arm_regs_in_sequence): New array.
3893         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
3894         CHECK_REGS.  All callers changed.
3895         If SAVED_ORDER is nonnull, copy the computed order into it.
3896         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
3897         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
3898         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
3899         If SAVED_ORDER is nonnull, copy the computed order into it.
3900         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
3901         like REGS.  Handle Thumb mode.
3902         (arm_gen_load_multiple_1): New function, broken out of
3903         arm_gen_load_multiple.
3904         (arm_gen_store_multiple_1): New function, broken out of
3905         arm_gen_store_multiple.
3906         (arm_gen_multiple_op): New function, with code from
3907         arm_gen_load_multiple and arm_gen_store_multiple moved here.
3908         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
3909         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
3910         changed.
3911         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
3912         * config/arm/predicates.md (commutative_binary_operator): New.
3913         (load_multiple_operation, store_multiple_operation): Handle more
3914         variants of these patterns with different starting offsets.  Handle
3915         Thumb-1.
3916         * config/arm/arm.md: Include "ldmstm.md".
3917         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
3918         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
3919         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
3920         peepholes): Delete.
3921         * config/arm/ldmstm.md: New file.
3922         * config/arm/arm-ldmstm.ml: New file.
3923
3924         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
3925         if statement which adds extra costs to frame-related expressions.
3926
3927 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3928
3929         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
3930
3931 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
3932
3933         PR target/45142
3934         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
3935         alternative 2.
3936         (vec_set<moode>_0 splitter): Use SSEMODE4S mode iterator to also
3937         split V4SI operands.
3938
3939 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
3940
3941         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
3942         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
3943         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
3944         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
3945
3946 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
3947
3948         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
3949         LOCAL_INCLUDE_DIR.
3950
3951 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
3952
3953         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
3954         used in the call to optab_for_tree_code.  Fix the second
3955         is_widening_mult_p call.  Check that both unwidened operands
3956         have the same sign.
3957
3958 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
3959
3960         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
3961
3962 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
3963
3964         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
3965
3966 2010-07-30  DJ Delorie  <dj@redhat.com>
3967
3968         * config/rx/predicates.md (rx_constshift_operand): New.
3969         * config/rx/rx.md (zs_cond): New.
3970         (cbranchsi4): Remove mode.
3971         (*cbranchsi4_<code>): Likewise.
3972         (*tstbranchsi4_<code>): New.
3973         (*tstbranchsi4r_<code>): New.
3974         (*tstbranchsi4m_eq): New.
3975         (*tstbranchsi4m_ne): New.
3976         (cbranchsf4): Remove mode.
3977         (*cbranchsf4_<code>): Likewise.
3978
3979 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
3980
3981         * rtlanal.c (simplify_subreg_regno): Don't treat
3982         HARD_FRAME_POINTER_REGNUM specially.
3983
3984 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
3985
3986         * common.opt (-G): Don't define option here.
3987         * config/g.opt: New.
3988         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
3989         rs6000/powerpc and score targets.
3990         * opts.c (common_handle_option): Don't handle -G here.
3991         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
3992         * config/frv/frv.c (frv_handle_option): Handle -G.
3993         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
3994         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
3995         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
3996         * config/mips/mips.c (mips_handle_option): Handle -G.
3997         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
3998         * config/score/score.c (score_handle_option): Handle -G.
3999
4000 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
4001
4002         * config/mmix/mmix.c: Include basic-block.h.
4003
4004 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
4005
4006         PR debug/45055
4007         PR rtl-optimization/45137
4008         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
4009         prototypes.
4010         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
4011         New functions.
4012         * combine.c (next_nonnote_nondebug_insn): Removed.
4013         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
4014         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
4015         * sched-deps.c (sched_analyze_insn): Likewise.
4016         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
4017         * rtlanal.c (canonicalize_condition): Likewise.
4018         * postreload.c (reload_combine_recognize_pattern): Likewise.
4019         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
4020
4021 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
4022
4023         * config/i386/i386.md (int_cond): Remove code iterator.
4024         (fp_cond): Ditto.
4025         (cbranch<mode>4): Use ordered_comparison_operator predicate
4026         for operator0.
4027         (cstore<mode>4): Ditto for operator1.
4028         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
4029         (add<mode>cc): ditto.
4030
4031 2010-07-30  Richard Guenther  <rguenther@suse.de>
4032
4033         PR middle-end/45141
4034         * expr.c (expand_expr_real_1): Check for not handled base address.
4035
4036 2010-07-30  Richard Guenther  <rguenther@suse.de>
4037
4038         * ipa-prop.c (ipa_modify_formal_parameters): Use
4039         build_distinct_type_copy.
4040
4041 2010-07-30  Anthony Green  <green@moxielogic.com>
4042
4043         * config/moxie/rtems.h: New file.
4044         * config.gcc: Add moxie-rtems support.
4045
4046 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
4047
4048         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
4049         df flags as in run_fast_df_dce.
4050
4051 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
4052
4053         Revert:
4054         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
4055
4056         * rtl.def (NOTE): Swap operands 4 and 5.
4057         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
4058         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
4059         Adjust accordingly.
4060         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
4061
4062 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
4063
4064         PR debug/45110
4065         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
4066         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
4067         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
4068         formal parameters.
4069         (gen_decl_die): Change return type to dw_die_ref, return what
4070         gen_formal_parameter_die returned.
4071
4072 2010-07-29  Martin Jambor  <mjambor@suse.cz>
4073
4074         * dbgcnt.def (eipa_sra): New counter.
4075         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
4076
4077 2010-07-29  Xinliang David Li  <davidxl@google.com>
4078
4079         PR bootstrap/45119
4080         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
4081         in revision 162652.
4082
4083 2010-07-29  Richard Guenther  <rguenther@suse.de>
4084
4085         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
4086         (TV_TREE_STORE_CCP): Likewise.
4087         (TV_TREE_REDPHI): Likewise.
4088
4089 2010-07-29  Richard Guenther  <rguenther@suse.de>
4090
4091         * double-int.h (double_int_and_not): New function.
4092         * combine.c (try_combine): Use it.
4093         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
4094
4095 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
4096
4097         PR rtl-optimization/42575
4098         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
4099         Argument AU removed.  All callers changed.  Ignore artificial refs.
4100         Use return value of df_word_lr_simulate_defs to decide whether an insn
4101         is necessary.
4102         (fast_dce): Rename arg to WORD_LEVEL.
4103         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
4104         static.
4105         (pass_fast_rtl_byte_dce): Delete.
4106         * dce.h (run_word_dce): Declare.
4107         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
4108         All callers changed.  Simplify code to only deal with two-word regs.
4109         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
4110         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
4111         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
4112         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
4113         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
4114         (df_word_lr_mark_ref): Declare.
4115         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
4116         df_word_lr_simulate_uses): Declare or rename from byte variants.
4117         (df_byte_lr_simulate_artificial_refs_at_top,
4118         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
4119         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
4120         declarations.
4121         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
4122         (enum df_mm): Delete.
4123         * df-byte-scan.c: Delete file.
4124         * df-problems.c (df_word_lr_problem_data): Renamed from
4125         df_byte_lr_problem_data, all members deleted except for
4126         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
4127         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
4128         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
4129         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
4130         df_byte_lr_confluence_0): Delete functions.
4131         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
4132         callers changed.
4133         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
4134         Don't initialize members that were deleted, don't try to discover data
4135         about registers.  Ignore hard regs.
4136         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
4137         (df_word_lr_mark_ref): New function.
4138         (df_word_lr_bb_local_compute): Renamed from
4139         df_byte_bb_lr_local_compute; all callers changed.  Use
4140         df_word_lr_mark_ref.  Assert that artificial refs don't include
4141         pseudos.  Ignore hard registers.
4142         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
4143         Assert that exit block uses don't contain pseudos.
4144         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
4145         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
4146         callers changed.  Ignore hard regs.
4147         (df_word_lr_transfer_function): Renamed from
4148         df_byte_lr_transfer_function; all callers changed.
4149         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
4150         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
4151         changed.
4152         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
4153         callers changed.
4154         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
4155         confluence operator 0 set to NULL.
4156         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
4157         callers changed.
4158         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
4159         Return bool, true if bitmap changed or insn otherwise necessary.
4160         All callers changed.  Simplify using df_word_lr_mark_ref.
4161         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
4162         all callers changed.  Simplify using df_word_lr_mark_ref.
4163         * lower-subreg.c: Include "dce.h"
4164         (decompose_multiword_subregs): Call run_word_dce if df available.
4165         * Makefile.in (lower-subreg.o): Adjust dependencies.
4166         (df-byte-scan.o): Delete.
4167         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
4168
4169 2010-07-29  Richard Guenther  <rguenther@suse.de>
4170
4171         * tree.c (build_vector): Assert that the vector constant
4172         has enough elements.
4173         (build_vector_from_ctor): Pad with trailing zeros.
4174
4175 2010-07-29  Richard Guenther  <rguenther@suse.de>
4176
4177         PR tree-optimization/45120
4178         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4179         Handle offset in DEREFs properly.
4180         (get_constraint_for_1): Handle MEM_REF offset properly.
4181
4182 2010-07-29  Richard Guenther  <rguenther@suse.de>
4183
4184         PR middle-end/45034
4185         * convert.c (convert_to_integer): Always use an unsigned
4186         type for narrowed negate and bitwise not.
4187
4188 2010-07-29  Ira Rosen  <irar@il.ibm.com>
4189
4190         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
4191         to outer loop when creating reduction epilogue for double reduction,
4192         and switch back to the inner loop when updating the phi nodes.
4193         Update uses of outer loop exit phi nodes in double reduction (instead
4194         of uses of reduction).
4195
4196 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
4197
4198         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
4199         popcount on power7 and parity on power6 systems.
4200         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
4201         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
4202         instructions.
4203
4204         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
4205         (UNSPEC_PARITY): Ditto.
4206         (SFDF): New iterator for SF/DF.
4207         (rreg2): New mode attribute for floating register constraint.
4208         (TARGET_FLOAT): New mode attribute for whether single/double float
4209         is supported.
4210         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
4211         pattern.
4212         (parity<mode>2_cmpb): New insn for parity on power6 and newer
4213         machines.
4214         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
4215         pattern.  Add support for fcpsgn instruction added in power6.
4216         (copysignsf3): Delete.
4217         (copysigndf3): Delete.
4218         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
4219         instead of if_then_else in RTL to avoid problems with -0.
4220
4221         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
4222         of if_then_else to mirror scalar code.
4223         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
4224         rs6000.md.
4225
4226         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
4227         instead of if_then_else.
4228
4229 2010-07-28  Xinliang David Li  <davidxl@google.com>
4230
4231         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
4232         (dump_cand): Dump var_before/after.
4233         (htab_inv_expr_eq): New function.
4234         (htab_inv_expr_hash): New function.
4235         (tree_ssa_iv_optimize_init): Support pseudo invariants.
4236         (add_candidate_1): consider base type precision.
4237         (set_use_iv_cost): New parameter.
4238         (adjust_setup_cost): Use profile information.
4239         (get_address_cost): Do not hard code width in computing address
4240         offset limits.
4241         (compare_aff_trees): New function.
4242         (get_loop_invariant_expr_id): New function.
4243         (get_computation_cost_at): New parameter and use profile information.
4244         (get_computation_cost): New parameter.
4245         (determine_use_iv_cost_generic): Pass new parameter.
4246         (determine_use_iv_cost_address): Ditto.
4247         (determine_use_iv_cost_condition): Ditto.
4248         (autoinc_possible_for_pair): Ditto.
4249         (determine_use_iv_costs): More dumps.
4250         (iv_ca_get_num_inv_exprs): New function.
4251         (iv_ca_recount_cost): Consider loop invariants in register pressure
4252         cost.
4253         (iv_ca_add_use): New parameter.
4254         (iv_ca_dump): Better dumping.
4255         (iv_ca_extend): New parameter.
4256         (try_add_cand_for): Attempt to get better partial solution.
4257         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
4258         (create_new-ivs): More dumps.
4259         (rewrite_use_compare): Ditto.
4260         (free_loop_data): More cleanup.
4261         (treee_ssa_iv_optimize_finalize): Ditto.
4262
4263 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
4264
4265         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
4266         * config/i386/i386.c (ix86_profile_before_prologue): New.
4267         (override_options): Add special handling for -mfentry.
4268         (ix86_function_regparm): Likewise.
4269         (ix86_function_sseregparm): Likewise.
4270         (ix86_frame_pointer_required): Likewise.
4271         (ix86_expand_prologue): Check for ms_hook_prologue.
4272         (x86_function_profiler): Adjust mcount output.
4273         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
4274         * config/i386/i386.opt (mfentry): New.
4275         * doc/invoke.texi (mfentry): Add documentation.
4276         * doc/tm.texi: Regenerated..
4277         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
4278         * final.c (final_start_function): Replace macro
4279         PROFILE_BEFORE_PROLOGUE by target hook.
4280         * function.c (thread_prologue_and_epilogue_insns): Likewise.
4281         * target.def (profile_before_prologue): New hook.
4282         * targhooks.c (default_profile_before_prologue): New.
4283         * targhooks.h (default_profile_before_prologue): New.
4284
4285 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
4286
4287         PR debug/45105
4288         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
4289
4290         PR debug/45103
4291         * dwarf2out.c (dwarf2out_var_location): Always consider
4292         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
4293
4294 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
4295
4296         PR rtl-optimization/45107
4297         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
4298
4299 2010-07-28  Richard Guenther  <rguenther@suse.de>
4300
4301         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
4302         (set_lattice_value): Do not query an old default value.
4303         (get_value_for_expr): New function.  Properly canonicalize
4304         float values.
4305         (ccp_visit_phi_node): Use it.
4306
4307 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
4308
4309         * config/arm/arm.c (arm_pcs_default): Remove static.
4310         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
4311         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
4312         (arm_pcs_default): Declare.
4313
4314 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
4315
4316         * config/rs6000/rs6000.c (rs6000_override_options):
4317         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
4318         ... to darwin_rs6000_override_options.
4319         (rs6000_return_in_memory): Update preceding comment for darwin
4320         64 bit ABI.  Use TARGET_MACHO inline.
4321         (rs6000_darwin64_struct_check_p): New.
4322         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
4323         (function_arg): Likewise.
4324         (rs6000_arg_partial_bytes): Likewise.
4325         (rs6000_function_value): Likewise.
4326
4327 2010-07-28  Andi Kleen <ak@linux.intel.com>
4328
4329         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
4330
4331 2010-07-28  Richard Guenther  <rguenther@suse.de>
4332
4333         PR middle-end/44903
4334         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
4335         targets try harder to not generate unaligned accesses.
4336
4337 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
4338
4339         PR rtl-optimization/45101
4340         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
4341         for gcse-las.
4342
4343 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
4344
4345         PR tree-optimization/44885
4346         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
4347         with non-aliased component.
4348
4349 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
4350
4351         * config/darwin-driver.c (SWITCH_TAKES_ARG,
4352         WORD_SWITCH_TAKES_ARG): Remove.
4353         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4354         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
4355         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
4356         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
4357         definitions from gcc.c.
4358         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
4359         defaults.h.
4360         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
4361         Move to defaults.h.
4362         * opts-common.c: Include tm.h.
4363         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
4364         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
4365         Handle more than one argument.  Set canonical_option_num_elements.
4366         (decode_cmdline_options_to_array): Set
4367         canonical_option_num_elements and trailing elements of
4368         canonical_option.
4369         * opts.h (struct cl_decoded_option): Allow four elements in
4370         canonical_option.  Add field canonical_option_num_elements.
4371         * Makefile.in (opts-common.o): Update dependencies.
4372
4373 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
4374
4375         PR middle-end/44790
4376         PR middle-end/44993
4377         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
4378         sure the base has address_mode before adding the offset.
4379
4380 2010-07-27  Xinliang David Li <davidxl@google.com>
4381
4382         * tree-flow.h (create_mem_ref): Add one new parameter.
4383         * tree-ssa-address.c (create_mem_ref): New parameter.
4384         (addr_to_parts): Ditto.
4385         (move_variant_to_index): New function.
4386         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
4387
4388 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
4389
4390         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
4391         4 and 5.
4392         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
4393         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
4394         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
4395         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
4396         CODE_LABELs and NOTEs.
4397         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
4398         * combine.c (try_combine): Likewise.
4399         * ira.c (setup_prohibited_mode_move_regs): Likewise.
4400         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
4401
4402 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
4403
4404         * coretypes.h (struct cl_option_handlers): Declare.
4405         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
4406         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
4407         * langhooks-def.h (lhd_handle_option): Declare.
4408         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
4409         * langhooks.c (lhd_handle_option): New.
4410         * langhooks.h (struct lang_hooks): Update prototype and return
4411         value type of handle_option hook.
4412         * optc-gen.awk: Generate target_flags_explicit definition for the
4413         driver.
4414         * opts-common.c: Include diagnostic.h.
4415         (handle_option): Move from opts.c.  Update prototype and return
4416         value type.  Use handlers structure.
4417         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
4418         handlers structure.
4419         (set_option): Move from opts.c.
4420         * opts.c (common_handle_option): Update prototype and return value
4421         type.  Update calls to handle_option and enable_warning_as_error.
4422         (unknown_option_callback, post_handling_callback,
4423         lang_handle_option, target_handle_option): New.
4424         (handle_option, read_cmdline_option): Move to opts-common.c.
4425         (read_cmdline_options): Update prototype.  Update call to
4426         read_cmdline_option.
4427         (decode_options): Initialize and use handlers structure.
4428         (set_option): Move to opts-common.c.
4429         (enable_warning_as_error): Update prototype.  Update call to
4430         handle_option.
4431         * opts.h (struct cl_option_handler_func, struct
4432         cl_option_handlers): New.
4433         (handle_option, enable_warning_as_error): Update prototypes.
4434         (read_cmdline_option): Declare.
4435         * Makefile.in (opts-common.o): Update dependencies.
4436
4437 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4438
4439         * config/arm/arm.c (params.h): Include.
4440         (arm_override_options): Tune gcse-unrestricted-cost.
4441         * config/arm/t-arm (arm.o): Define dependencies.
4442
4443 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4444
4445         PR target/42495
4446         PR middle-end/42574
4447         * basic-block.h (get_dominated_to_depth): Declare.
4448         * dominance.c (get_dominated_to_depth): New function, use
4449         get_all_dominated_blocks as a base.
4450         (get_all_dominated_blocks): Use get_dominated_to_depth.
4451
4452         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
4453         (hoist_exprs): Remove.
4454         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
4455         (compute_code_hoist_vbeinout): Add debug print outs.
4456         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
4457
4458         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
4459         quadratic behavior.
4460         * params.h (MAX_HOIST_DEPTH): New macro.
4461         * doc/invoke.texi (max-hoist-depth): Document.
4462
4463 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4464
4465         PR rtl-optimization/40956
4466         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
4467         constants.
4468
4469 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4470
4471         PR target/42495
4472         PR middle-end/42574
4473         * config/arm/arm.c (legitimize_pic_address): Use
4474         gen_calculate_pic_address pattern to emit calculation of PIC address.
4475         (will_be_in_index_register): New function.
4476         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
4477         (thumb1_legitimate_address_p): Use it provided !strict_p.
4478         * config/arm/arm.md (calculate_pic_address): New expand and split.
4479
4480 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4481
4482         PR target/42495
4483         PR middle-end/42574
4484         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
4485         * config/arm/arm.md (define_split "J", define_split "K"): Make
4486         IRA/reload friendly.
4487
4488 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4489
4490         * gcse.c (insert_insn_end_basic_block): Update signature, remove
4491         unused checks.
4492         (pre_edge_insert, hoist_code): Update.
4493
4494 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4495
4496         PR target/42495
4497         PR middle-end/42574
4498         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
4499
4500 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4501
4502         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
4503
4504 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4505
4506         PR rtl-optimization/40956
4507         PR target/42495
4508         PR middle-end/42574
4509         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
4510         for hoisting.
4511         (hoist_code): Count occurences in current block too.
4512
4513 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4514
4515         * gcse.c (struct expr:max_distance): New field.
4516         (doing_code_hoisting_p): New static variable.
4517         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
4518         simple expressions, don't change behavior for PRE.  Set max_distance.
4519         (insert_expr_in_table): Set new max_distance field.
4520         (hash_scan_set): Update.
4521         (hoist_expr_reaches_here_p): Stop search after max_distance
4522         instructions.
4523         (find_occr_in_bb): New static function.  Use it in ...
4524         (hoist_code): Calculate sizes of basic block before any changes are
4525         done.  Pass max_distance to hoist_expr_reaches_here_p.
4526         (one_code_hoisting_pass): Set doing_code_hoisting_p.
4527
4528         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
4529         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
4530         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
4531         macros.
4532         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
4533         Document.
4534
4535 2010-07-27  Jeff Law  <law@redhat.com>
4536             Maxim Kuvyrkov  <maxim@codesourcery.com>
4537
4538         * gcse.c (compute_transpout, transpout): Remove, move logic
4539         to prune_expressions.
4540         (compute_pre_data): Move pruning of trapping expressions ...
4541         (prune_expressions): ... here.  New static function.
4542         (compute_code_hoist_data): Use it.
4543         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
4544
4545 2010-07-27  Xinliang David Li  <davidxl@google.com>
4546
4547         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
4548         (rewrite_use_address): Adjust iv update position when needed.
4549
4550 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4551
4552         * dbgcnt.def (hoist_insn): New debug counter.
4553         * gcse.c (hoist_code): Use it.
4554
4555 2010-07-27  Xinliang David Li  <davidxl@google.com>
4556
4557         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
4558         (niter_for_single_dom_exit): Passes additional parameter.
4559         (iv_period): Fix comments.
4560         (may_eliminate_iv): Handles multiple exit loops properly.
4561         (free_tree_niter_desc): New function.
4562         (free_loop_data): Frees up loop iteration descriptors.
4563
4564 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
4565
4566         PR target/44542
4567         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
4568         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
4569         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
4570         (expand_one_var): Don't consider DECL_ALIGN for variables for
4571         which expand_one_stack_var_at has been already called.
4572
4573         PR testsuite/44701
4574         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
4575         constraints on IA-64.
4576
4577 2010-07-27  Jie Zhang  <jie@codesourcery.com>
4578
4579         PR target/44290
4580         Revert:
4581         2010-07-23  Jie Zhang  <jie@codesourcery.com>
4582
4583         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
4584         false if ! tree_versionable_function_p.
4585
4586 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
4587
4588         * dwarf2out.c (add_data_member_location_attribute): Use
4589         add_AT_unsigned instead of add_AT_int if offset is non-negative.
4590
4591 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
4592
4593         * postreload.c (try_replace_in_use): New static function.
4594         (reload_combine_recognize_const_pattern): Use it here.  Allow
4595         substituting into a final add insn, and substituting into a memory
4596         reference in an insn that sets the reg.
4597
4598 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
4599
4600         * common.opt (o): Add MissingArgError.
4601         * doc/options.texi (MissingArgError): Document.
4602         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
4603         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
4604         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
4605         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
4606         * langhooks.h (struct lang_hooks): Remove missing_argument.
4607         * optc-gen.awk: Handle MissingArgError and output new structure
4608         field initializers.
4609         * opts.c (read_cmdline_option): Use missing_argument_error field
4610         instead of missing_argument langhook.
4611         * opts.h (struct cl_option): Add missing_argument_error field.
4612         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
4613
4614 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
4615
4616         PR target/29090
4617         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
4618         Darwin64 ABI, for zero-sized objects.
4619
4620 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
4621
4622         PR target/35491
4623         PR target/29090
4624
4625         Merge from Apple local 4.2.1.
4626         2005-05-11  Stan Shebs  <shebs@apple.com>
4627         Fix 64-bit varargs for Darwin (Radar 4028089).
4628         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
4629         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
4630         Add argument, add case for 8-byte register half-filled with a float.
4631         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
4632         single-precision floats specially.
4633
4634 2010-07-27  Ira Rosen  <irar@il.ibm.com>
4635
4636         PR tree-optimization/44152
4637         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
4638         complex numbers for further check.
4639         (vect_supported_load_permutation_p): Check nodes with
4640         complex numbers.
4641
4642 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
4643
4644         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
4645         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
4646         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
4647         (LANG_HOOKS_INITIALIZER): Add new hooks.
4648         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
4649         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
4650         and complain_wrong_lang_p.  Update init_options prototype.
4651         * c-objc-common.c (c_initialize_diagnostics): First call
4652         c_common_initialize_diagnostics.
4653         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
4654         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
4655         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
4656         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
4657         (hook_uint_void_0): New.
4658         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
4659         (hook_uint_void_0): New.
4660         * opts-common.c (decode_cmdline_option,
4661         decode_cmdline_options_to_array): Also fill in canonical_option field.
4662         * opts.c (complain_wrong_lang): Use langhook to determine whether
4663         to complain instead of special-casing LTO.
4664         (decode_options): Separate lang_mask determination with
4665         option_lang_mask hook from call of init_options hook.
4666         * opts.h (struct cl_decoded_option): Add canonical_option.
4667
4668 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
4669
4670         PR tree-optimization/45083
4671         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
4672
4673 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
4674
4675         * postreload.c (reload_combine_recognize_const_pattern): Move test
4676         for limiting the insn movement to the right scope.
4677
4678         PR rtl-optimization/45051
4679         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
4680         than reg_mentioned_p.
4681
4682 2010-07-26  Richard Henderson  <rth@redhat.com>
4683
4684         PR target/44132
4685         * tree-emutls.c: New file.
4686         * Makefile.in (OBJS-common): Add it.
4687         * tree-pass.h (pass_ipa_lower_emutls): Declare.
4688         * passes.c (init_optimization_passes): Add it.
4689
4690         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
4691         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
4692         * expr.c (emutls_var_address): Delete.
4693         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
4694         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
4695         (emutls_finish): Delete.
4696         * toplev.c (compile_file): Don't call it.
4697         * tree.h (emutls_decl): Delete.
4698         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
4699         (emutls_finish, emutls_finalize_control_var): Delete.
4700         (emutls_object_type): Move to tree-emutls.c.
4701         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
4702         default_emutls_var_fields, get_emutls_object_type,
4703         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
4704         default_emutls_var_init): Likewise.
4705         (get_variable_section): Don't special case emutls.
4706         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
4707         default_elf_select_section, default_unique_section,
4708         default_encode_section_info): Likewise.
4709         * varpool.c (decide_is_variable_needed): Likewise.
4710         * gimple-iterator.c (update_call_edge_frequencies): New
4711         (gsi_insert_on_edge_immediate): Use it.
4712         (gsi_insert_seq_on_edge_immediate): Likewise.
4713         (gsi_commit_one_edge_insert): Likewise.
4714
4715         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
4716         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
4717         (x86_64_elf_unique_section): Likewise.
4718
4719 2010-07-26  Jan Hubicka  <jh@suse.cz>
4720
4721         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
4722         GTY((skip)).
4723
4724 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
4725
4726         * target.def (output_source_filename): New hook.
4727         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
4728         * doc/tm.texi: Regenerate.
4729         * toplev.c (output_file_directive) Remove function.
4730         * toplev.h (output_file_directive) Remove.
4731         * output.h (default_asm_output_source_filename,
4732         output_file_directive): Declare.
4733         * varasm.h (default_asm_output_source_filename,
4734         output_file_directive): New functions.
4735
4736         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
4737         * config/mips/mips-protos.h (mips_output_filename): Remove.
4738         * config/mips/mips.c (mips_output_filename): Make Static.
4739         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
4740
4741 2010-07-26  Richard Guenther  <rguenther@suse.de>
4742
4743         PR tree-optimization/43784
4744         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
4745         if the destination is used by the call.
4746
4747 2010-07-26  Richard Guenther  <rguenther@suse.de>
4748
4749         PR middle-end/45073
4750         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
4751         SSA updating on being in SSA form.
4752
4753 2010-07-26  Richard Guenther  <rguenther@suse.de>
4754
4755         PR middle-end/45056
4756         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
4757
4758 2010-07-26  Richard Guenther  <rguenther@suse.de>
4759
4760         PR tree-optimization/45071
4761         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
4762         adjust op->opcode.
4763
4764 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
4765
4766         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
4767         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
4768         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
4769         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
4770         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
4771         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
4772         save_r31, return_r31, save_interrupt, return_interrupt,
4773         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
4774         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
4775         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
4776         new ABI requirements.
4777         (save_r6_r9, L_callt_save_r6_r9): Remove.
4778         * config/v850/predicates.md (even_reg_operand, disp23_operand,
4779         const_float_1_operand const_float_0_operand): New Predicates.
4780         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
4781         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
4782         * config/v850/t-v850: Update multilibs for new target variants.
4783         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
4784         * config/v850/t-v850e: Likewise.
4785         * config/v850/v850.c (v850_issue_rate): New.
4786         (v850_strict_argument_naming): New.
4787         (function_arg): Modify to generate a different ABI.
4788         (print_operand): Update case 'z' to support float modes.
4789         (output_move_single): Modify to generate appropriate and better
4790         assembly.
4791         (v850_float_z_comparison_operator, v850_select_cc_mode,
4792         v850_float_nz_comparison_operator,  v850_gen_float_compare,
4793         v850_gen_compare): New functions to support comparison of float values.
4794         (ep_memory_offset): Add support for V850E2 targets.
4795         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
4796         (INTERRUPT_REGPARM_NUM): Remove.
4797         (compute_register_save_size): Add extra case to save/restore long call.
4798         (use_prolog_function): New function to support prologue.
4799         (expand_prologue): Add support for V850E2 targets and modified
4800         as per the current ABI requirements.
4801         (expand_epilogue): Likewise.
4802         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
4803         (construct_save_jarl): Likewise.
4804         (construct_dispose_instruction): Update as per the current ABI
4805         requirements.
4806         (construct_prepare_instruction): Likewise.
4807         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
4808         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
4809         (CPP_SPEC): Updated to support v850e2 targets.
4810         (STRICT_ALIGNMENT): Modified.
4811         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
4812         (FIXED_REGISTERS): Likewise.
4813         (CALL_USED_REGISTERS): Likewise.
4814         (CONDITIONAL_REGISTER_USAGE): Updated.
4815         (HARD_REGNO_MODE_OK): Updated.
4816         (reg_class): Updated to add even registers.
4817         (REG_CLASS_NAMES): Likewise.
4818         (REG_CLASS_CONTENTS): Likewise.
4819         (REGNO_REG_CLASS): Updated for CC registers.
4820         (REG_CLASS_FROM_LETTER): Added support for even registers.
4821         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
4822         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
4823         ARG_POINTER_REGNUM): Updated.
4824         (FUNCTION_ARG_ADVANCE): Define.
4825         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
4826         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
4827         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
4828         (GO_IF_LEGITIMATE_ADDRESS): Updated.
4829         (SELECT_CC_MODE): Define.
4830         (REGISTER_NAMES): Updated to add psw and fcc registers.
4831         (ADDITIONAL_REGISTER_NAMES): Updated.
4832         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
4833         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
4834         * config/v850/v850.md (define_constants): Define new constants.
4835         (type): Update store,bit1,macc,div,fpu and single attributes.
4836         (cpu): New attribute.
4837         (cc): Add set_z attribute.
4838         (unsign23byte_load, sign23byte_load, unsign23hword_load,
4839         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
4840         23word_store): New instructions for 23-bit displacement load and store.
4841         (movqi_internal, movhi_internal): Update the attributes.
4842         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
4843         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
4844         the attributes.
4845         (v850_tst1): Modified using CC_REGNUM.
4846         (tstsi): Remove.
4847         (cmpsi): Modified as define_expand from define_insn.
4848         (cmpsi_insn, cmpsf, cmpdf): New instructions.
4849         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
4850         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
4851         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
4852         one_cmplsi2): Clobber the CC_REGNUM register.
4853         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
4854         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
4855         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
4856         (setf_insn, set_z_insn, set_nz_insn): New instructions for
4857         v850e2v3 target.
4858         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
4859         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
4860         targets.
4861         (sasf_1, sasf_2): Remove.
4862         (sasf): New instruction.
4863         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
4864         targets. CC_REGNUM register is clobbered and attributes are
4865         updated.
4866         (branch_z_normal, branch_z_invert, branch_nz_normal,
4867         branch_nz_invert): New branch related instructions.
4868         (jump): Updated the attributes.
4869         (switch): Update to support new targets. CC_REGNUM register is
4870         clobbered and attributes are updated.
4871         (call_internal_short, call_internal_long, call_value_internal_short,
4872         call_value_internal_long): Updated the attributes.
4873         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
4874         clobbered and attributes are updated.
4875         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
4876         Update to support new targets. CC_REGNUM register is clobbered.
4877         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
4878         instructions.
4879         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
4880         are updated.
4881         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
4882         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
4883         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
4884         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
4885         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
4886         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
4887         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
4888         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
4889         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
4890         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
4891         point instructions defined for V850e2v3 target.
4892         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
4893         Add support for V850E2 targets and CC_REGNUM register is clobbered.
4894         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
4895         support for new targets.
4896         * config/v850/v850-modes.def: New file.
4897         * config/v850/v850.opt(mstrict-align): Remove.
4898         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
4899         mv850e2v3): New command line options for V850.
4900         * config.gcc: Update the newly added files.
4901         * doc/invoke.texi: Update the newly added command line options for
4902         V850 target.
4903
4904 2010-07-26  Richard Guenther  <rguenther@suse.de>
4905
4906         PR tree-optimization/45052
4907         * ipa-pure-const.c (check_stmt): Check volatileness.
4908
4909 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
4910
4911         PR target/44707
4912         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
4913         * config/sparc/sparc.c: Include reload.h.
4914         (legitimize_tls_address): Rename into...
4915         (sparc_legitimize_tls_address): ...this.
4916         (legitimize_pic_address): Rename into...
4917         (sparc_legitimize_pic_address): ...this.
4918         (sparc_expand_move): Adjust to above renaming.
4919         (sparc_tls_referenced_p): Likewise.
4920         (sparc_legitimize_tls_address): Likewise.
4921         (sparc_legitimize_pic_address): Likewise.
4922         (sparc_legitimize_address): Likewise.
4923         (sparc_output_mi_thunk): Likewise.
4924         (sparc_legitimize_reload_address): New global function.  Recognize
4925         (lo_sum (high ...) ...) patterns generated by earlier passes.
4926         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
4927
4928 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
4929
4930         PR target/44484
4931         * config/sparc/predicates.md (memory_reg_operand): Delete.
4932         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
4933         (*sync_compare_and_swap): Encode the address form in the pattern.
4934         (*sync_compare_and_swapdi_v8plus): Likewise.
4935
4936 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
4937
4938         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
4939         Streamline paragraph on compatibility with the system compiler.
4940
4941 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
4942
4943         PR middle-end/45035
4944         * alias.c (true_dependence_1): Fix thinko in merge of old
4945         true_dependence and canon_true_dependence.
4946
4947 2010-07-23  Jan Hubicka  <jh@suse.cz>
4948
4949         * lto-streamer-out.c (write_symbol): Fix visibilities of external
4950         references.
4951
4952 2010-07-23  Le-Chun Wu  <lcwu@google.com>
4953
4954         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
4955         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
4956         and an unnecessary assignment.
4957         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
4958         self-assign warning.
4959         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
4960         unnecessary self-init.
4961
4962 2010-07-23  Richard Guenther  <rguenther@suse.de>
4963
4964         PR lto/43071
4965         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
4966         for -flto and -fwhopr.
4967
4968 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
4969
4970         PR target/41943
4971         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
4972         (stmp-int-hdrs): Prefix/postfix headers by include_next.
4973         * config.gcc (user_headers_inc_next_pre): New.
4974         (user_headers_inc_next_post): Likewise.
4975         (*-w64-mingw*): Use for float.h post-fixing, and for
4976         stddef.h/stdarg.h pre-fixing by include_next.
4977         * configure.ac (user_headers_inc_next_post): New.
4978         (user_headers_inc_next_pre): New.
4979         * configure: Regenerated.
4980
4981 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4982
4983         * configure.ac: Don't disable TLS on Solaris 8/9 by default
4984         Set tga_func for Solaris 2/x86 resp. SPARC.
4985         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
4986         (LIB_THREAD_LDFLAGS_SPEC): Define.
4987         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
4988         * configure: Regenerate.
4989         * config.in: Regenerate.
4990         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
4991         -pthread, -threads, LIB_TLS_SPEC with -pthread.
4992         * doc/install.texi (Specific, *-*-solaris2*): Document use of
4993         alternate thread libraries on Solaris 8.
4994         Document TLS patch requirements.
4995         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
4996         Document tls.
4997
4998         PR target/18788
4999         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
5000         -shared.
5001
5002 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
5003
5004         * tree.h (struct tree_base): Add nameless_flag bitfield.
5005         (TYPE_NAMELESS, DECL_NAMELESS): Define.
5006         * omp-low.c (create_omp_child_function, scan_omp_parallel,
5007         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
5008         DECL_ARTIFICIAL where needed.
5009         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
5010         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
5011         has DECL_NAMELESS set.
5012
5013 2010-07-23  Martin Jambor  <mjambor@suse.cz>
5014
5015         PR tree-optimization/44915
5016         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
5017         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
5018         (analyze_function): Likewise.
5019
5020 2010-07-23  Martin Jambor  <mjambor@suse.cz>
5021
5022         PR tree-optimization/44914
5023         * tree-sra.c (sra_modify_function_body): Return true if CFG was
5024         changed, add purging dead eh edges.
5025         (ipa_sra_modify_function_body): Return true if CFG was changed,
5026         simplify purging dead eh edges.
5027         (modify_function): Return true if CFG was changed.
5028         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
5029         was changed.
5030         (ipa_early_sra): Likewise.
5031
5032 2010-07-23  Jie Zhang  <jie@codesourcery.com>
5033
5034         PR target/44290
5035         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
5036         if "naked".
5037         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
5038         false if ! tree_versionable_function_p.
5039
5040 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
5041
5042         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
5043         * ipa-pure-const.c (special_builtlin_state): Remove
5044         BUILT_IN_ARGS_INFO case.
5045         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
5046         * builtins.c (expand_builtin): Likewise.
5047         (expand_builtin_args_info): Remove.
5048         * doc/tm.texi (__builtin_args_info): Remove.
5049         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
5050         * doc/tm.text.in: Likewise.
5051
5052 2010-07-23  Richard Guenther  <rguenther@suse.de>
5053
5054         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
5055         (lto_symtab_merge_decls_2): Likewise.
5056         * tree-ssa.c (useless_type_conversion_p): Likewise.
5057         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5058         * gimple.c (gtc_visited2, gtc_ob2): Remove.
5059         (struct type_pair_d): Make same_p an array indexed by mode.
5060         Update comment.
5061         (lookup_type_pair): Update initialization.
5062         (struct sccs): Adjust same_p type.
5063         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
5064         Adjust.
5065         (print_gimple_types_stats): Likewise.
5066         * gimple.h (enum gtc_mode): New.
5067         (gimple_types_compatible_p): Adjust prototype.
5068
5069 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
5070
5071         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
5072         again after processing insn.
5073
5074 2010-07-23  Jie Zhang  <jie@codesourcery.com>
5075
5076         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
5077         proper words when !tree_versionable_function_p.
5078
5079 2010-07-23  Richard Guenther  <rguenther@suse.de>
5080
5081         PR tree-optimization/45037
5082         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
5083
5084 2010-07-23  Jie Zhang  <jie@codesourcery.com>
5085
5086         * doc/extend.texi: Remove IP2K from the description of naked attribute.
5087         Add MCORE instead.
5088
5089 2010-07-10  Andi Kleen  <ak@linux.intel.com>
5090
5091         PR lto/44992
5092         * lto-opts.c (lto_write_options): Add NULL file_data argument to
5093         lto_get_section_name.
5094         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
5095         * lto-streamer-out.c (produce_asm): Likewise.
5096         (copy_function): Likewise.
5097         (produce_symtab): Likewise.
5098         (produce_asm_for_decls): Likewise.
5099         * lto-streamer.c (lto_get_section_name): Add file_data argument.
5100         Rewrite to add random postfix to LTO sections.
5101         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
5102         (lto_get_section_name): Add file_data argument to prototype.
5103
5104 2010-07-10  Andi Kleen  <ak@linux.intel.com>
5105
5106         * lto-section-in.c (lto_section_name): Synchronize names
5107         with lto_get_section_name.
5108
5109 2010-07-10  Andi Kleen  <ak@linux.intel.com>
5110
5111         * lto-opts.c (lto_read_file_options): Check for missing section.
5112
5113 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
5114
5115         * ira.c (check_allocation): Correctly handle the case where an allocno
5116         with two objects was allocated to a single reg.
5117
5118 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
5119
5120         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
5121         (is_widening_mult_p): Likewise.
5122         (convert_to_widen): Use them.
5123         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
5124         well as integer ones.
5125
5126 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
5127
5128         * alias.c (true_dependence_1): New function, merged version of
5129         true_dependence and canon_true_dependence.
5130         (true_dependence): Simplify.
5131         (canon_true_dependence): Simplify.
5132
5133 2010-07-22  Richard Henderson  <rth@redhat.com>
5134
5135         PR target/45027
5136         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
5137         of V4SFmode for the SSE saves; increase stack alignment if needed.
5138         (ix86_gimplify_va_arg): Don't increase stack alignment here.
5139
5140 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
5141
5142         PR bootstrap/45028
5143         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
5144         call cprop_find_used_regs again via note_uses.
5145
5146 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
5147
5148         * alias.c (get_alias_set): Fix formatting issues.
5149
5150 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
5151
5152         PR middle-end/44878
5153         * stmt.c (expand_value_return):  Call promote_function_mode with
5154         a for_return argument of 2 when returning by reference.
5155
5156 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
5157
5158         PR debug/45024
5159         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
5160         unit DIE if we can find the scope DIE.
5161
5162 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
5163
5164         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
5165         changed.  Initialize OBJECT_SUBWORD.
5166         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
5167         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
5168         all callers changed.
5169         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
5170         (finish_allocno): Likewise.
5171         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
5172         (remove_low_level_allocnos): Likewise.
5173         (update_bad_spill_attribute): Likewise.
5174         (setup_min_max_allocno_live_range_point): Likewise.
5175         (sort_conflict_id_map): Likewise.
5176         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
5177         (ior_hard_reg_conflicts): New function.
5178         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
5179         (compress_conflict_vecs): Iterate over objects, not allocnos.
5180         (ira_add_live_range_to_object): New function.
5181         (object_range_compare_func): Renamed from allocno_range_compare_func.
5182         All callers changed.
5183         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
5184         subobjects, widen the min/max range of the lowest-order object to
5185         potentially include all other such low-order objects.
5186         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
5187         (check_allocation): Likewise.  Use more fine-grained tests for register
5188         conflicts.
5189         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
5190         allocno subobjects.
5191         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
5192         choices about which bits to set in each set.  Don't use
5193         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
5194         using the multiple sets we computed.
5195         (push_allocno_to_stack): Iterate over allocno subobjects.
5196         (all_conflicting_hard_regs_coalesced): New static function.
5197         (setup_allocno_available_regs_num): Use it.
5198         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
5199         subobjects.
5200         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
5201         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
5202         by ALLOCNO_NUM_OBJECTS.
5203         (calculate_spill_cost): Likewise.
5204         (color_pass): Express if statement in a more normal way.
5205         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
5206         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
5207         (setup_slot_coalesced_allocno_live_ranges): Likewise.
5208         (allocno_reload_assign): Likewise.
5209         (ira_reassign_pseudos): Likewise.
5210         (fast_allocation): Likewise.
5211         * ira-conflicts.c (build_conflict_bit_table): Likewise.
5212         (print_allocno_conflicts): Likewise.
5213         (ira_build_conflicts): Likewise.
5214         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
5215         callers changed.  Test subword 0 of each allocno for conflicts.
5216         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
5217         callers changed.  Iterate over allocno subobjects.
5218         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
5219         * ira-int.h (struct ira_allocno): New member: num_objects.
5220         Rename object to objects and change it into an array.
5221         (ALLOCNO_OBJECT): Add new argument N.
5222         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
5223         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
5224         (ior_hard_reg_conflicts): Declare.
5225         (ira_add_live_range_to_object): Declare.
5226         (ira_allocno_object_iterator): New.
5227         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
5228         (FOR_EACH_ALLOCNO_OBJECT): New macro.
5229         * ira-lives.c (objects_live): Renamed from allocnos_live; all
5230         uses changed.
5231         (allocnos_processed): New sparseset.
5232         (make_object_born): Renamed from make_allocno_born; take an
5233         ira_object_t argument.  All callers changed.
5234         (make_object_dead): Renamed from make_allocno_dead; take an
5235         ira_object_t argument.  All callers changed.
5236         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
5237         All callers changed.
5238         (mark_pseudo_regno_live): Iterate over allocno subobjects.
5239         (mark_pseudo_regno_dead): Likewise.
5240         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
5241         functions.
5242         (mark_ref_live): Detect subword accesses and call
5243         mark_pseudo_regno_subword_live as appropriate.
5244         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
5245         (process_bb_nodes_live): Deal with object-related updates first; set
5246         and test bits in allocnos_processed to avoid computing allocno
5247         statistics more than once.
5248         (create_start_finish_chains): Iterate over objects, not allocnos.
5249         (print_object_live_ranges): New function.
5250         (print_allocno_live_ranges): Use it.
5251         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
5252         and objects_live.
5253
5254 2010-07-22  Richard Guenther  <rguenther@suse.de>
5255
5256         PR lto/42451
5257         * gimple.c (gtc_next_dfs_num): New global.
5258         (struct sccs): Make value a union, add integer same_p member.
5259         (gtc_visit): New function.
5260         (gimple_types_compatible_p_1): New function, split out from ...
5261         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
5262         (iterative_hash_gimple_type): Adjust for sccs change.
5263
5264 2010-07-22  Martin Jambor  <mjambor@suse.cz>
5265
5266         PR tree-optimization/44891
5267         * tree-sra.c: Include gimple-pretty-print.h.
5268         (replace_uses_with_default_def_ssa_name): Renamed to
5269         get_repl_default_def_ssa_name, return the new SSA name instead of
5270         replacing the old one.
5271         (sra_modify_assign): Dump a message when removing a load, if the LHS
5272         is an SSA_NAME, do not do any propagation, just set the RHS to a
5273         default definition SSA NAME, type convert if necessary.
5274         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
5275
5276 2010-07-22  Richard Guenther  <rguenther@suse.de>
5277
5278         PR tree-optimization/45017
5279         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
5280         TYPE_PRECISION of integral types in addition to size.
5281
5282 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
5283
5284         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
5285         when no C library is specified.
5286
5287 2010-07-22  Martin Jambor  <mjambor@suse.cz>
5288
5289         * ipa-prop.h (struct ipa_node_params): Updated comment.
5290         (struct ipa_edge_args): Likewise.
5291         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
5292
5293 2010-07-22  Martin Jambor  <mjambor@suse.cz>
5294
5295         * cgraphunit.c (verify_edge_count_and_frequency): New function.
5296         (verify_cgraph_node): Verify frequencies of indirect edges.
5297         * tree-inline.c (tree_function_versioning): Update frequencies of
5298         indirect edges.
5299
5300 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5301
5302         PR target/43698
5303         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
5304         Set *arm_rev to be predicable.
5305
5306 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
5307
5308         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
5309         (LINK_COMMAND_SPEC_A): New.
5310         (DSYMUTIL): New.
5311         (DSYMUTIL_SPEC): New.
5312         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
5313         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
5314
5315 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
5316
5317         * calls.c (load_register_parameters): Move check for zero
5318         sized items so that only the call to
5319         mem_overlaps_already_clobbered_arg_p () is protected.
5320
5321 2010-07-22  Jan Hubicka  <jh@suse.cz>
5322
5323         * ipa-pure-const.c (varying_state): Break out from ...
5324         (get_function_state): ... here; always return varying_state
5325         when state would be NULL otherwise.
5326         (remove_node_data): Do not free varying state.
5327
5328 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
5329
5330         PR bootstrap/44970
5331         PR middle-end/45009
5332         * postreload.c: Include "target.h".
5333         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
5334         into account.
5335         (fixup_debug_insns): Don't copy the rtx.
5336         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
5337         Don't copy when replacing.  Call fixup_debug_insns in the case where
5338         we merged one add with another.
5339         (reload_combine_recognize_pattern): Fail if there aren't any uses.
5340         Try harder to determine whether we're picking a valid index register.
5341         Don't set store_ruid for an insn we're going to scan in the
5342         next iteration.
5343         (reload_combine): Remove unused code.
5344         (reload_combine_note_use): When updating use information for
5345         an old insn, ignore a use that occurs after store_ruid.
5346         * Makefile.in (postreload.o): Update dependencies.
5347
5348         * function.c (record_hard_reg_sets): Restrict the previous change
5349         to cases where the incoming nominal mode is the same as the
5350         incoming promoted mode and everything happens in MODE_INT.
5351
5352 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
5353
5354         PR debug/45015
5355         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
5356         ASM_OPERANDS_OUTPUT_IDX.
5357         (adjust_insn): For inline asm with multiple sets ensure first
5358         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
5359         the insn.
5360
5361 2010-07-21  Richard Henderson  <rth@redhat.com>
5362
5363         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
5364         comparison for avoiding xmm register saves.  Emit the xmm register
5365         saves explicitly.
5366         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
5367         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
5368         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
5369         Remove patterns and the associated splitters.
5370
5371 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
5372
5373         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
5374         and imagine parts of a complex, so that they can have the same
5375         base and fall into the same group.
5376
5377 2010-07-21  Richard Guenther  <rguenther@suse.de>
5378
5379         PR lto/45018
5380         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
5381         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
5382         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
5383
5384 2010-07-21  Martin Jambor  <mjambor@suse.cz>
5385
5386         PR tree-optimization/44900
5387         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
5388         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
5389
5390 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
5391
5392         PR middle-end/44738
5393         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
5394
5395 2010-07-21  Richard Guenther  <rguenther@suse.de>
5396
5397         PR middle-end/45013
5398         * tree-ssa.c (useless_type_conversion_p): Dispatch to
5399         gimple_types_compatible_p only when in lto.
5400         * gimple.c (gimple_types_compatible_p): Use canonical types
5401         to speed up comparison.
5402
5403 2010-07-21  Richard Guenther  <rguenther@suse.de>
5404
5405         * tree-flow.h (referenced_var): Move define ...
5406         * tree-flow-inline.h (referenced_var): ... here as an inline
5407         function.  Assert here ...
5408         * tree-dfa.c (referenced_var_lookup): ... instead of here.
5409         * tree-ssa.c (maybe_optimize_var): Check if the variable
5410         is in referenced vars.
5411         (execute_update_addresses_taken): Remove old broken check.
5412         * gimple-pretty-print.c (pp_points_to_solution): Use
5413         referenced_var_lookup.
5414         * tree-into-ssa.c (dump_decl_set): Likewise.
5415
5416 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
5417
5418         PR debug/45003
5419         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
5420         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
5421         ZERO_EXTEND here.
5422
5423 2010-07-20  Richard Henderson  <rth@redhat.com>
5424
5425         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
5426
5427 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
5428
5429         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
5430         computing the sum of the stack pointer and a large constant.
5431         * config/arm/constraints.md (M): Remove superfluous parentheses.
5432         (Pc): New constraint.
5433
5434 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
5435
5436         PR debug/45006
5437         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
5438         operand's type if exp is tcc_unary class tree.
5439
5440 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
5441
5442         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
5443         Reverse sense of if_then_else condition.
5444
5445 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
5446
5447         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
5448         * config/rs6000/rs6000.c (rs6000_override_options): Set
5449         rs6000_block_move_inline_limit appropriately.
5450         (expand_block_move): Use rs6000_block_move_inline_limit.
5451         * doc/invoke.texi (mblock-move-inline-limit): Document.
5452
5453 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
5454
5455         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
5456         FROM and TO.  All callers changed.  Don't look for tracked uses,
5457         just scan the RTL for DEBUG_INSNs and substitute.
5458         (reload_combine_recognize_pattern): Call fixup_debug_insns.
5459         (reload_combine): Ignore DEBUG_INSNs.
5460
5461 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
5462
5463         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
5464         depth to 8 from 5.
5465
5466         PR debug/45003
5467         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
5468         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
5469         instead of the result's type.
5470
5471 2010-07-20  Richard Guenther  <rguenther@suse.de>
5472
5473         PR tree-optimization/44977
5474         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
5475         SSA form.
5476
5477 2010-07-20  Richard Guenther  <rguenther@suse.de>
5478
5479         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
5480         (lto_symtab_merge_decls_2): Likewise.
5481         * gimple.h (gimple_types_compatible_p): Declare.
5482         * gimple.c (gimple_queue_type_fixup): Remove.
5483         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
5484         (gimple_compatible_complete_and_incomplete_type_p): New function.
5485         (gimple_types_compatible_p): Adjust.
5486         (gimple_register_type): Remove type fixup code.
5487         (print_gimple_types_stats): Adjust.
5488         (free_gimple_type_tables): Likewise.
5489         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
5490         * tree-ssa.c (useless_type_conversion_p): Likewise.
5491
5492 2010-07-20  Richard Guenther  <rguenther@suse.de>
5493
5494         PR middle-end/44971
5495         PR middle-end/44988
5496         * tree-ssa.c (maybe_optimize_var): New function split out from ...
5497         (execute_update_addresses_taken): ... here.
5498         (non_rewritable_mem_ref_base): Likewise.
5499         (execute_update_addresses_taken): Do not iterate over all referenced
5500         vars but just all local decls and parms.
5501         Properly check call and asm arguments and rewrite call arguments.
5502
5503 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
5504
5505         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
5506         to top level.
5507         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
5508         definitions ...
5509         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
5510         New macro.
5511         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
5512
5513 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5514
5515         * gengtype.c (start_root_entry): New function, split out from
5516         write_root.  Check whether V is null and raise an error if so.
5517         (write_field_root): Check for V being null.  Don't raise an error here;
5518         set V to null instead.
5519         (write_root): Update comment above function.  Use start_root_entry.
5520
5521 2010-07-19  Xinliang David Li  <davidxl@google.com>
5522
5523         PR testsuite/44932
5524         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
5525         def edges.
5526         (find_uninit_use): Add dump.
5527         (is_use_properly_guarded): Ditto.
5528         (warn_uninitialized_phi): Ditto.
5529         (execute_late_warn_uninitialized): Ditto.
5530
5531 2010-07-19  Richard Guenther  <rguenther@suse.de>
5532
5533         PR middle-end/44941
5534         * expr.c (emit_block_move_hints): Move zero size check first.
5535         Move asserts to more useful places.
5536         * calls.c (load_register_parameters): Check for zero size.
5537
5538 2010-07-19  Richard Henderson  <rth@redhat.com>
5539
5540         * tree-optimize.c (execute_all_early_local_passes): New.  Change
5541         cgraph_state here ...
5542         (execute_early_local_optimizations): ... not here.  Remove.
5543         (pass_early_local_passes, pass_all_early_optimizations): Update.
5544
5545 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
5546
5547         * postreload.c (reload_combine_closest_single_use): Ignore the
5548         number of uses for DEBUG_INSNs.
5549         (fixup_debug_insns): New static function.
5550         (reload_combine_recognize_const_pattern): Use it.  Don't let the
5551         main loop be affected by DEBUG_INSNs.
5552         Really disallow moving adds past a jump insn.
5553         (reload_combine_recognize_pattern): Don't update use_ruid here.
5554         (reload_combine_note_use): Do it here.
5555         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
5556
5557 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
5558
5559         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
5560         of a loop.
5561         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
5562
5563 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
5564
5565         * config/i386/darwin.h: Define darwin_emit_branch_islands.
5566         (TARGET_MACHO_BRANCH_ISLANDS): New.
5567         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
5568         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
5569         default value.
5570         * config/i386/i386.c (output_pic_addr_const): Do not emit
5571         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
5572         (x86_output_mi_thunk): Adjust symbol creation.
5573         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
5574         Remove out of date comment.
5575         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
5576         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
5577         (DARWIN_GENERATE_ISLANDS): Ditto.
5578         (output_call):  Do not emit branch islands unless
5579         darwin_emit_branch_islands is set.
5580         * config/darwin.c: Declare darwin_emit_branch_islands.
5581         (machopic_indirect_data_reference): Do not emit unless
5582         darwin_emit_branch_islands is set.
5583         (darwin_override_options): Set darwin_emit_branch_islands
5584         where it is needed.
5585         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
5586
5587 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5588
5589         * doc/sourcebuild.texi (Effective-Target Keywords): Document
5590         sse_runtime, sse2_runtime.
5591
5592 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
5593
5594         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
5595         low half of a single-register SCmode return value before ORing
5596         it with the high half.
5597         * config/mips/mips16.S (MERGE_GPRf): Likewise.
5598
5599 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5600
5601         PR target/44805
5602         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
5603         on all targets.
5604
5605 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
5606
5607         PR target/42235
5608         * postreload.c (reload_cse_move2add): Return bool, true if anything.
5609         changed.  All callers changed.
5610         (move2add_use_add2_insn): Likewise.
5611         (move2add_use_add3_insn): Likewise.
5612         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
5613         reload_combine.
5614         (RELOAD_COMBINE_MAX_USES): Bump to 16.
5615         (last_jump_ruid): New static variable.
5616         (struct reg_use): New members CONTAINING_MEM and RUID.
5617         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
5618         (reload_combine_split_one_ruid, reload_combine_split_ruids,
5619         reload_combine_purge_insn_uses, reload_combine_closest_single_use
5620         reload_combine_purge_reg_uses_after_ruid,
5621         reload_combine_recognize_const_pattern): New static functions.
5622         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
5623         is true for our reg and that we have available index regs.
5624         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
5625         callers changed.  Use them to initialize fields in struct reg_use.
5626         (reload_combine): Initialize last_jump_ruid.  Be careful when to
5627         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
5628         Call reload_combine_recognize_const_pattern.
5629         (reload_combine_note_store): Update REAL_STORE_RUID field.
5630
5631 2010-07-16  Jason Merrill  <jason@redhat.com>
5632
5633         * Makefile.in (opts-common.o): Depend on options.h.
5634
5635 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
5636
5637         * tree.c (build_common_builtin_nodes): Use build_function_type_list
5638         instead of build_function_type.
5639         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
5640         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
5641
5642 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
5643
5644         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
5645         do all the work.
5646         (rs6000_emit_int_cmove): Use function pointers for insn generation.
5647         Don't force values into registers unnecessarily.
5648         (output_isel): Assert that we're not given conditions we can't handle.
5649         Delete corresponding code.
5650         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
5651         scc_comparison_operator constraint.  Permit 0 for the consequent
5652         operand.  Permit any GPR for the alternative operand.
5653         (isel_unsigned_<mode>): Likewise.
5654
5655 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
5656
5657         PR target/44942
5658         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
5659         argument to const_tree.
5660         * config/i386/i386.c (function_arg_advance): If padding needs to be
5661         inserted before argument, increment cum->words by number of padding
5662         words as well.
5663         (contains_aligned_value_p): Change argument to const_tree.
5664         (ix86_function_arg_boundary): Change second argument to const_tree.
5665
5666 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
5667
5668         PR target/42235
5669         * function.c (record_hard_reg_sets): New static function.
5670         (assign_parm_setup_reg): If an optab for extending exists and the
5671         generated code clobbbers no hard regs, emit the insn directly and
5672         create a REG_EQUIV note.
5673
5674 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
5675
5676         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
5677         TREE_CHAIN.
5678         * c-typeck.c (push_init_level): Likewise.
5679         (process_init_element): Likewise.
5680
5681 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
5682
5683         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
5684         (integer_three_node): Add.
5685         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
5686         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
5687         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
5688         of call build_int_cst.
5689         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
5690         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
5691         (find_interesting_uses_address): Ditto.
5692         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
5693         * tree-eh.c (lower_eh_constructs_2): Ditto.
5694         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
5695         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
5696         * expmed.c (expand_divmod): Ditto.
5697         * tree-mudflap.c (mx_register_decls): Ditto.
5698         * varasm.c (array_size_for_constructor): Ditto.
5699         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
5700         * c-parser.c (c_parser_postfix_expression): Ditto.
5701
5702 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
5703
5704         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
5705         New static variables.
5706         (reload_combine_recognize_pattern): New static function, broken out
5707         of reload_combine.
5708         (reload_combine): Use it.  Only initialize first_index_reg and
5709         last_index_reg once.
5710
5711 2010-07-15  Richard Henderson  <rth@redhat.com>
5712
5713         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
5714         when done.
5715
5716 2010-07-15  Jan Hubicka  <jh@suse.cz>
5717
5718         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
5719         comdats for broken gold.
5720         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
5721
5722 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
5723
5724         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
5725
5726 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
5727
5728         * tree.h (DECL_CHAIN): Define.
5729         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
5730         * c-decl.c: Likewise.
5731         * c-parser.c: Likewise.
5732         * c-typeck.c: Likewise.
5733         * cfgexpand.c: Likewise.
5734         * cgraph.c: Likewise.
5735         * cgraphunit.c: Likewise.
5736         * combine.c: Likewise.
5737         * config/alpha/alpha.c: Likewise.
5738         * config/arm/arm.c: Likewise.
5739         * config/frv/frv.c: Likewise.
5740         * config/i386/i386.c: Likewise.
5741         * config/i386/winnt-cxx.c: Likewise.
5742         * config/ia64/ia64.c: Likewise.
5743         * config/iq2000/iq2000.c: Likewise.
5744         * config/mep/mep.c: Likewise.
5745         * config/mips/mips.c: Likewise.
5746         * config/pa/som.h: Likewise.
5747         * config/rs6000/rs6000.c: Likewise.
5748         * config/s390/s390.c: Likewise.
5749         * config/sh/sh.c: Likewise.
5750         * config/sh/symbian-cxx.c: Likewise.
5751         * config/sparc/sparc.c: Likewise.
5752         * config/spu/spu.c: Likewise.
5753         * config/stormy16/stormy16.c: Likewise.
5754         * config/vxworks.c: Likewise.
5755         * config/xtensa/xtensa.c: Likewise.
5756         * coverage.c: Likewise.
5757         * dbxout.c: Likewise.
5758         * dwarf2out.c: Likewise.
5759         * emit-rtl.c: Likewise.
5760         * expr.c: Likewise.
5761         * function.c: Likewise.
5762         * gimple-low.c: Likewise.
5763         * gimple-pretty-print.c: Likewise.
5764         * gimplify.c: Likewise.
5765         * integrate.c: Likewise.
5766         * ipa-inline.c: Likewise.
5767         * ipa-prop.c: Likewise.
5768         * ipa-split.c: Likewise.
5769         * ipa-struct-reorg.c: Likewise.
5770         * ipa-type-escape.c: Likewise.
5771         * langhooks.c: Likewise.
5772         * lto-cgraph.c: Likewise.
5773         * omp-low.c: Likewise.
5774         * stor-layout.c: Likewise.
5775         * tree-cfg.c: Likewise.
5776         * tree-complex.c: Likewise.
5777         * tree-dfa.c: Likewise.
5778         * tree-dump.c: Likewise.
5779         * tree-inline.c: Likewise.
5780         * tree-mudflap.c: Likewise.
5781         * tree-nested.c: Likewise.
5782         * tree-object-size.c: Likewise.
5783         * tree-pretty-print.c: Likewise.
5784         * tree-sra.c: Likewise.
5785         * tree-ssa-live.c: Likewise.
5786         * tree-ssa-loop-niter.c: Likewise.
5787         * tree-ssa-math-opts.c: Likewise.
5788         * tree-ssa-reassoc.c: Likewise.
5789         * tree-ssa-sccvn.c: Likewise.
5790         * tree-ssa-structalias.c: Likewise.
5791         * tree-tailcall.c: Likewise.
5792         * tree-vrp.c: Likewise.
5793         * tree.c: Likewise.
5794         * var-tracking.c: Likewise.
5795         * varasm.c: Likewise.
5796
5797 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5798
5799         PR target/44877
5800         * config/spu/spu.c (spu_expand_builtin_1): Allow references
5801         (as well as pointers) as argument to mask_for_load builtins.
5802
5803 2010-07-15  Richard Guenther  <rguenther@suse.de>
5804
5805         PR tree-optimization/44946
5806         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
5807         with accessing only padding properly.
5808
5809 2010-07-15  Jan Hubicka  <jh@suse.cz>
5810
5811         * ipa.c (function_and_variable_visibility): Variables marked as used
5812         should not be localized.
5813
5814 2010-07-15  Jan Hubicka  <jh@suse.cz>
5815
5816         * cgraph.c: Include lto-streamer.h
5817         (change_decl_assembler_name): Work when assembler name hash is at place.
5818         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
5819         be sure to rename it to avoid name clash.
5820         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
5821         Localize hidden symbols only when locally defined.
5822
5823 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
5824
5825         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
5826
5827 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
5828             Kevin F. Quinn  <kevquinn@gentoo.org>
5829
5830         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
5831         * common.opt: Add -Wtrampolines.
5832         * doc/invoke.texi: Add -Wtrampolines.
5833
5834 2010-07-15  Jie Zhang  <jie@codesourcery.com>
5835
5836         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
5837         cortex_a8_issue_ls.
5838
5839 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
5840
5841         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
5842         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
5843
5844 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5845
5846         * config/spu/spu.c (reg_names): Remove prototype.
5847         (call_used_regs): Likewise.
5848
5849 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
5850
5851         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
5852         "unused" with attribute "used".
5853         (__JCR_END__): Likewise.
5854         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
5855         "used" attribute.
5856         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
5857
5858 2010-07-14  Richard Guenther  <rguenther@suse.de>
5859
5860         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
5861         (maybe_fixup_decls): Likewise.
5862         (input_gimple_stmt): Do not fixup anything.
5863         * lto-streamer-out.c (output_gimple_stmt): Make sure all
5864         non-automatic variable uses are wrapped inside a MEM_REF.
5865
5866 2010-07-14  Richard Henderson  <rth@redhat.com>
5867
5868         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
5869         for functions.
5870         * varasm.c (assemble_variable): Remove early exit for functions;
5871         assert that we're given a variable.
5872
5873 2010-07-14  Jie Zhang  <jie@codesourcery.com>
5874
5875         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
5876         cortex_a8_default when neon_type is not none.
5877
5878 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
5879
5880         * lower-subreg.c (subreg_context): New static bitmap.
5881         (decompose_multiword_subregs): Allocate and free it.
5882         (find_decomposable_subregs): Set a bit in it for a register that
5883         occurs in a subreg that changes mode but not size.
5884         (can_decompose_p): Test it instead of non_decomposable_context.
5885
5886 2010-07-14  Richard Guenther  <rguenther@suse.de>
5887
5888         PR tree-optimization/44824
5889         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
5890         is_gimple_mem_ref_addr.
5891         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
5892         non-decl_address_invariant_p addresses.
5893
5894 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
5895
5896         * reload.c (find_reloads): Revert code to penalize small register
5897         classes that was brought in with the IRA merge.
5898
5899 2010-07-14  Richard Guenther  <rguenther@suse.de>
5900
5901         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
5902         as base of ARRAY_REFs.
5903
5904 2010-07-14  Richard Guenther  <rguenther@suse.de>
5905
5906         PR middle-end/44930
5907         * tree-pretty-print.c (do_niy): Do not print a newline.
5908
5909 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
5910
5911         * ira-int.h (struct ira_object): New.
5912         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
5913         (struct ira_allocno): Remove members min, max,
5914         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
5915         conflict_allocnos_num and conflict_vec_p.  Add new member object.
5916         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
5917         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
5918         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
5919         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
5920         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
5921         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
5922         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
5923         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
5924         an ira_object_t rather than ira_allocno_t.  All uses changed.
5925         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
5926         contains a vector of ira_object_t; all uses changed.
5927         (ira_objects_num): Declare variable.
5928         (ira_create_allocno_object): Declare function.
5929         (ira_conflict_vector_profitable_p): Adjust prototype.
5930         (ira_allocate_conflict_vec): Renamed from
5931         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
5932         (ira_allocate_object_conflicts): Renamed from
5933         ira_allocate_allocno_conflicts; first arg now ira_object_t.
5934         (struct ira_object_iterator): New.
5935         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
5936         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
5937         to conflict_vec_p.  All uses changed.
5938         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
5939         Changed to take into account that conflicts are now tracked for
5940         objects.
5941         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
5942         Args changed to accept ira_object_t.  All uses changed.
5943         (allocnos_conflict_p): New static function.
5944         (collected_conflict_objects): Renamed from collected_allocno_objects;
5945         now a vector of ira_object_t.  All uses changed.
5946         (build_conflict_bit_table): Changed to take into account that
5947         conflicts are now tracked for objects.
5948         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
5949         (print_allocno_conflicts, ira_build_conflicts): Likewise.
5950         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
5951         setup_allocno_left_conflicts_size, allocno_reload_assign,
5952         fast_allocation): Likewise.
5953         * ira-lives.c (make_hard_regno_born, make_allocno_born)
5954         process_single_reg_class_operands, process_bb_node_lives): Likewise.
5955         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
5956         Likewise.
5957         * ira-build.c (ira_objects_num): New variable.
5958         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
5959         contains a vector of ira_object_t; all uses changed.
5960         (ira_object_id_map_vec): Corresponding change.
5961         (object_pool): New static variable.
5962         (initiate_allocnos): Initialize it.
5963         (finish_allocnos): Free it.
5964         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
5965         New functions.
5966         (ira_create_allocno): Don't set members that were removed.
5967         (ira_set_allocno_cover_class): Don't change conflict hard regs.
5968         (merge_hard_reg_conflicts): Changed to take into account that
5969         conflicts are now tracked for objects.
5970         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
5971         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
5972         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
5973         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
5974         setup_min_max_conflict_allocno_ids, ):  Likewise.
5975         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
5976         to ira_object_t; all callers changed.
5977         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
5978         to ira_object_t, all callers changed.
5979         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
5980         to ira_object_t, all callers changed.
5981         (conflict_check, curr_conflict_check_tick): Renamed from
5982         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
5983         changed.
5984         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
5985         arg changed to ira_object_t, all callers changed.
5986         (create_cap_allocno): Call ira_create_allocno_object.
5987         (finish_allocno): Free the corresponding object.
5988         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
5989         callers changed.  Adjusted for dealing with objects.
5990         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
5991         dealing with objects.
5992         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
5993
5994         * ira-int.h (struct live_range): Rename allocno member to object
5995         and change type to ira_object_t.
5996         (struct ira_object): New member live_ranges.
5997         (struct ira_allocno): Remove member live_ranges.
5998         (ALLOCNO_LIVE_RANGES): Remove.
5999         (OBJECT_LIVE_RANGES): New macro.
6000         (ira_create_live_range, ira_copy_live_range_list,
6001         ira_merge_live_range_list, ira_live_ranges_intersect_p,
6002         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
6003         * ira-build.c (ira_create_object): Initialize live ranges here.
6004         (ira_create_allocno): Not here.
6005         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
6006         changed to ira_object_t, all callers changed.
6007         (copy_live_range): Rename from copy_allocno_live_range, all callers
6008         changed.
6009         (ira_copy_live_range_list): Rename from
6010         ira_copy_allocno_live_range_list, all callers changed.
6011         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
6012         all callers changed.
6013         (ira_live_ranges_intersect_p): Rename from
6014         ira_allocno_live_ranges_intersect_p, all callers changed.
6015         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
6016         callers changed.
6017         (ira_finish_live_range_list): Rename from
6018         ira_finish_allocno_live_range_list, all callers changed.
6019         (change_object_in_range_list): Rename from change_allocno_in_range_list,
6020         last arg changed to ira_object_t, all callers changed.
6021         (finish_allocno): Changed to expect live ranges in the allocno's object.
6022         (move_allocno_live_ranges, copy_allocno_live_ranges,
6023         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
6024         ira_flattening, ira_build): Likewise.
6025         * ira-color.c (allocnos_have_intersected_live_ranges_p,
6026         slot_coalesced_allocno_live_ranges_intersect,
6027         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
6028         * ira-conflicts.c (build_conflict_bit_table): Likewise.
6029         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
6030         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
6031         make_allocno_dead, create_start_finish_chains,
6032         remove_some_program_points_and_update_live_ranges,
6033         ira_debug_live_range_list): Likewise.
6034
6035         * ira-int.h (ira_object_conflict_iterator): Rename from
6036         ira_allocno_conflict_iterator.
6037         (ira_object_conflict_iter_init): Rename from
6038         ira_allocno_conflict_iter_init, second arg changed to
6039         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
6040         FOR_EACH_ALLOCNO_CONFLICT.
6041         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
6042         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
6043         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
6044         * ira-conflicts.c (print_allocno_conflicts): Likewise.
6045
6046 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
6047
6048         PR other/44874
6049         * tree-dump.c (dump_options): Add enumerate_locals entry.
6050         Add TDF_NOID exclusion to all entry.
6051         * tree-dump.h (dump_enumerated_decls): Declare.
6052         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
6053         Don't display type uid.
6054         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
6055         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
6056         * tree-ssa-live.c: Include gimple.h.
6057         (numbered_tree_d): New struct.
6058         (numbered_tree): New typedef.
6059         (DEF_VEC_O (numbered_tree): New.
6060         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
6061         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
6062         (dump_enumerated_decls): Likewise.
6063         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
6064         debug info and flag_dump_final_insns, call dump_enumerated_decls.
6065         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
6066         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
6067
6068 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
6069
6070         * expmed.h (MAX_BITS_PER_WORD): Move to...
6071         * defaults.h (MAX_BITS_PER_WORD): ...here.
6072
6073 2010-07-13  DJ Delorie  <dj@redhat.com>
6074
6075         * config/h8300/h8300.c (h8300_init_once): Default to
6076         -fstrict_volatile_bitfields.
6077
6078         * config/sh/sh.c (sh_override_options): Default to
6079         -fstrict_volatile_bitfields.
6080
6081         * config/rx/rx.c (rx_option_override): New.
6082
6083         * config/m32c/m32c.c (m32c_override_options): Default to
6084         -fstrict_volatile_bitfields.
6085
6086 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
6087
6088         * tree.h (build_function_call_expr): Delete.
6089         (build_call_expr_loc_array): New function.
6090         (build_call_expr_loc_vec): New function.
6091         * tree-flow.h (struct omp_region): Change type of ws_args field
6092         to a VEC.
6093         * builtins.c (build_function_call_expr): Delete.
6094         (build_call_expr_loc_array): New function.
6095         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
6096         (build_call_expr): Likewise.
6097         (build_call_expr_loc_vec): New function.
6098         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
6099         build_function_call_expr.
6100         * expr.c (emutls_var_address): Likewise.
6101         * varasm.c (emutls_common_1): Likewise.
6102         * omp-low.c (expand_omp_atomic_mutex): Likewise.
6103         (expand_omp_taskreg): Adjust for new type of region->ws_args.
6104         (get_ws_args_for): Return a VEC instead of a tree.
6105         (expand_parallel_call): Call build_call_expr_loc_vec instead of
6106         build_function_call_expr.
6107         * stor-layout.c (self_referential_size): Likewise.
6108
6109 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
6110
6111         PR testsuite/44701
6112         * recog.c (constrain_operands): Allow side-effects in memory
6113         operands if either < or > constraint is used, rather than if
6114         both < and > is used.
6115
6116 2010-07-13  Richard Guenther  <rguenther@suse.de>
6117
6118         PR middle-end/44911
6119         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
6120         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
6121         without name.
6122
6123 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
6124
6125         PR target/44761
6126         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
6127         to variable emited.
6128         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
6129         * config/sh/sh.md (symGOT_load): Likewise.
6130         (symDTPOFF2reg): Likewise.
6131         (symTPOFF2reg): Likewise.
6132
6133 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6134
6135         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
6136         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
6137
6138 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6139
6140         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
6141         explanation.
6142         Find ucontext_t * on Solaris 11.
6143         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
6144         Handle new Solaris 11 __sighndlr patterns.
6145
6146 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
6147
6148         PR debug/44901
6149         * vec.h (VEC_block_remove): Fix comment.
6150         * tree-ssa-live.c (remove_unused_locals): Don't use
6151         VEC_unordered_remove on local_decls, instead replace a single
6152         vector element in each iteration if at least one element had
6153         to be removed and VEC_truncate at the end.
6154         * omp-low.c (expand_omp_taskreg): Likewise.
6155
6156 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6157
6158         * c-decl.c (finish_function): Fix typo in comment.
6159
6160 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
6161
6162         PR bootstrap/44921
6163         * postreload.c (move2add_use_add3_insn): Silence gcc warning
6164         on min_regno.
6165
6166 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
6167
6168         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
6169         (simplify_stmt_using_ranges): Use it.
6170
6171 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6172
6173         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
6174         member.  Do not mark as GTY(()).
6175         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
6176         (spu_builtin_decls): New static variable.
6177         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
6178         (spu_init_builtins): Likewise.
6179         (spu_builtin_mul_widen_even): Likewise.
6180         (spu_builtin_mul_widen_odd): Likewise.
6181         (spu_builtin_mask_for_load): Likewise.
6182         (spu_builtin_vec_perm): Likewise.
6183         * config/spu/spu-c.c: Include "target.h".
6184         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
6185         of using spu_builtins[].fndecl.
6186
6187 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6188
6189         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
6190         imply -minterlink-mips16.
6191
6192 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6193
6194         * config/mips/mips.h (mips16_globals): Declare.
6195         (SWITCHABLE_TARGET): Define.
6196         * config/mips/mips.c: Include target-globals.h.
6197         (mips16_globals): New variable.
6198         (mips_set_mips16_mode): Use save_target_globals and
6199         restore_target_globals instead of target_reinit.
6200
6201 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6202
6203         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
6204         to say that the function can be called more than once.
6205         * target-globals.c (save_target_globals): Call init_reg_sets.
6206
6207 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6208
6209         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
6210         * bb-reorder.h: New file.
6211         * bb-reorder.c (default_target_bb_reorder): New variable.
6212         (this_target_bb_reorder): New conditional variable.
6213         (uncond_jump_length): Redefine as a macro.
6214         * target-globals.h (this_target_bb_reorder): Declare.
6215         (target_globals): Add a bb_reorder field.
6216         (restore_target_globals): Copy the bb_reorder field to
6217         this_target_bb-reorder.
6218         * target-globals.c: Include bb-reorder.h.
6219         (default_target_globals): Initialize the bb_reorder field.
6220         (save_target_globals): Likewise.
6221
6222 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6223
6224         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
6225         * gcse.h: New file.
6226         * gcse.c: Include gcse.h.
6227         (default_target_gcse): New variable.
6228         (this_target_gcse): New conditional variable.
6229         (can_copy): Redefine as a macro.
6230         (can_copy_init_p): New macro.
6231         (can_copy_p): Remove can_copy_init_p.
6232         * target-globals.h (this_target_gcse): Declare.
6233         (target_globals): Add a gcse field.
6234         (restore_target_globals): Copy the gcse field to this_target_gcse.
6235         * target-globals.c: Include gcse.h.
6236         (default_target_globals): Initialize the gcse field.
6237         (save_target_globals): Likewise.
6238
6239 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6240
6241         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
6242         and x_ira_prohibited_mode_move_regs_initialized_p.
6243         (ira_prohibited_mode_move_regs): Redefine as a macro.
6244         * ira.c (ira_prohibited_mode_move_regs): Delete.
6245         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
6246
6247 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6248
6249         * reload.h (target_reload): Add x_cached_reg_save_code and
6250         x_cached_reg_restore_code.
6251         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
6252         Redefine as macros.
6253
6254 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6255
6256         * Makefile.in (target-globals.o): Depend on builtins.h.
6257         * builtins.h: New file.
6258         * builtins.c: Include builtins.h.
6259         (default_target_builtins): New variable.
6260         (this_target_builtins): New conditional variable.
6261         (apply_args_mode, apply_result_mode): Redefine as macros.
6262         * target-globals.h (this_target_builtins): Declare.
6263         (target_globals): Add a builtins field.
6264         (restore_target_globals): Copy the builtins field to
6265         this_target_builtins.
6266         * target-globals.c: Include builtins.h.
6267         (default_target_globals): Initialize the builtins field.
6268         (save_target_globals): Likewise.
6269
6270 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6271
6272         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
6273         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
6274         from expmed.c.
6275         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
6276         (alg_hash, alg_hash_used_p): New macros.
6277         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
6278         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
6279         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
6280
6281 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6282
6283         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
6284         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
6285         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
6286         (this_op_costs, costs_classes): Redefine as macros.
6287         (record_reg_classes): Don't take op_costs as a parameter.
6288         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
6289         (scan_one_insn): Update call to record_operand_costs.
6290
6291 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6292
6293         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
6294         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
6295         (target_ira_int): New structure.
6296         (default_target_ira_int): Declare.
6297         (this_target_ira_int): Declare as a variable or define as a macro.
6298         (ira_reg_mode_hard_regset, ira_register_move_cost)
6299         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
6300         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
6301         (prohibited_class_mode_regs, ira_important_classes_num)
6302         (ira_important_classes, ira_reg_class_intersect)
6303         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
6304         (ira_reg_class_union): Redefine as macros.
6305         * ira.h (target_ira): New structure.
6306         (default_target_ira): Declare.
6307         (this_target_ira): Declare as a variable or define as a macro.
6308         (ira_available_class_regs, ira_hard_regno_cover_class)
6309         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
6310         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
6311         (ira_class_hard_regs_num): Redefine as macros.
6312         * ira.c (default_target_ira, default_target_ira_int): New variables.
6313         (this_target_ira, this_target_ira_int): New conditional variables.
6314         (ira_reg_mode_hard_regset, ira_memory_move_cost)
6315         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
6316         (ira_class_subset_p): Delete.
6317         (no_unit_alloc_regs): Redefine as a macro.
6318         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
6319         (ira_class_hard_regs_num, ira_class_hard_reg_index)
6320         (ira_available_class_regs): Delete.
6321         (alloc_reg_class_subclasses): Redefine as a macro.
6322         (ira_reg_class_cover_size, ira_reg_class_cover)
6323         (ira_important_classes_num, ira_important_classes)
6324         (ira_important_class_nums, ira_class_translate): Delete.
6325         (cover_class_order): Document the variable's lifetime.
6326         (reorder_important_classes): Don't set ira_important_class_nums.
6327         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
6328         (ira_reg_class_super_classes, ira_reg_class_union)
6329         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
6330         Delete.
6331         (setup_reg_class_nregs): Don't set ira_max_regs.
6332         (prohibited_class_mode_regs): Delete.
6333         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
6334         (target_globals): Add ira and ira_int fields.
6335         (restore_target_globals): Copy the ira field to this_target_ira
6336         and the ira_int field to this_target_ira_int.
6337         * target-globals.c: Include ira-int.h.
6338         (default_target_globals): Initialize the ira and ira_int fields.
6339         (save_target_globals): Likewise.
6340
6341 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6342
6343         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
6344         * cfgloop.h (target_cfgloop): New structure.
6345         (default_target_cfgloop): Declare.
6346         (this_target_cfgloop): Declare as a variable or define as a macro.
6347         (target_avail_regs, target_clobbered_regs, target_res_regs)
6348         (target_reg_cost, target_spill_cost): Redefine as macros.
6349         * cfgloopanal.c (default_target_cfgloop): New variable.
6350         (this_target_cfgloop): New conditional variable.
6351         (target_avail_regs, target_clobbered_regs, target_res_regs)
6352         (target_reg_cost, target_spill_cost): Delete.
6353         * target-globals.h (this_target_cfgloop): Declare.
6354         (target_globals): Add a cfgloop field.
6355         (restore_target_globals): Copy the cfgloop field to
6356         this_target_cfgloop.
6357         * target-globals.c: Include cfgloop.h.
6358         (default_target_globals): Initialize the cfgloop field.
6359         (save_target_globals): Likewise.
6360
6361 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6362
6363         * regs.h (target_regs): Add x_direct_load, x_direct_store and
6364         x_float_extend_from_mem.
6365         (direct_load, direct_store, float_extend_from_mem): New macros.
6366         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
6367
6368 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6369
6370         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
6371         (target-globals.o): Depend on $(LIBFUNCS_H).
6372         * libfuncs.h: Include hashtab.h.
6373         (libfunc_entry): Moved from optabs.c.
6374         (target_libfuncs): New structure.
6375         (default_target_libfuncs): Declare.
6376         (this_target_libfuncs): Declare as a variable or define as a macro.
6377         (libfunc_table): Redefine as a macro.
6378         * optabs.c (default_target_libfuncs): New variable.
6379         (this_target_libfuncs): New conditional variable.
6380         (libfunc_table): Delete.
6381         (libfunc_entry): Moved to optabs.h.
6382         (libfunc_hash): Redefine as a macro.
6383         (hash_libfunc, eq_libfunc): Fix comments.
6384         (init_optabs): Use libfunc_hash to detect cases where the function
6385         has already been called.  Clear the hash table instead of
6386         recreating it.
6387         * target-globals.h (this_target_libfuncs): Declare.
6388         (target_globals): Add a libfuncs field.
6389         (restore_target_globals): Copy the libfuncs field to
6390         this_target_libfuncs.
6391         * target-globals.c: Include libfuncs.h.
6392         (default_target_globals): Initialize the libfuncs field.
6393         (save_target_globals): Likewise.
6394
6395 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6396
6397         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
6398         in all dependency lists.
6399
6400 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6401
6402         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
6403         * optabs.h (target_optabs): New structure.
6404         (default_target_optabs): Declare.
6405         (this_target_optabs): Declare as a variable or define as a macro.
6406         (optab_table, convert_optab_table, direct_optab_table): Redefine
6407         as macros.
6408         * optabs.c (default_target_optabs): New variable.
6409         (this_target_optabs): New conditional variable.
6410         (optab_table, convert_optab_table, direct_optab_table): Delete.
6411         * target-globals.h (this_target_optabs): Declare.
6412         (target_globals): Add a optabs field.
6413         (restore_target_globals): Copy the optabs field to
6414         this_target_optabs.
6415         * target-globals.c: Include expr.h and optabs.h.
6416         (default_target_globals): Initialize the optabs field.
6417         (save_target_globals): Likewise.
6418
6419 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6420
6421         * flags.h (target_flagstate): Add x_flag_excess_precision.
6422         (flag_excess_precision): Redefine as a macro.
6423         * toplev.c (flag_excess_precision): Delete.
6424
6425 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6426
6427         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
6428         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
6429         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
6430         (no_caller_save_reg_set): Redefine as a macro.
6431         * reload.h (target_reload): Add x_caller_save_initialized_p and
6432         x_regno_save_mode.
6433         (caller_save_initialized_p): Redefine as a macro.
6434         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
6435         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
6436         (regno_save_mode): Redefine as a macro.
6437
6438 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6439
6440         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
6441         * expmed.h: New file.
6442         * expmed.c (default_target_costs): New variable.
6443         (this_target_costs): New conditional variable.
6444         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
6445         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
6446         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
6447         * target-globals.h (this_target_expmed): Declare.
6448         (target_globals): Add a expmed field.
6449         (restore_target_globals): Copy the expmed field to
6450         this_target_expmed.
6451         * target-globals.c: Include expmed.h.
6452         (default_target_globals): Initialize the expmed field.
6453         (save_target_globals): Likewise.
6454
6455 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6456
6457         * Makefile.in (target-globals.o): Depend on reload.h.
6458         * reload.h (target_reload): New structure.
6459         (default_target_reload): Declare.
6460         (this_target_reload): Declare as a variable or define as a macro.
6461         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
6462         * reload1.c (default_target_reload): New variable
6463         (this_target_reload): New conditional variable.
6464         (indirect_symref_ok, double_reg_address_ok): Delete.
6465         (spill_indirect_levels): Redefine as a macro.
6466         * target-globals.h (this_target_reload): Declare.
6467         (target_globals): Add a reload field.
6468         (restore_target_globals): Copy the reload field to
6469         this_target_reload.
6470         * target-globals.c: Include hard-reg-set.h.
6471         (default_target_globals): Initialize the reload field.
6472         (save_target_globals): Likewise.
6473
6474 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6475
6476         * rtl.h (target_rtl): Add x_static_reg_base_value.
6477         * alias.c (static_reg_base_value): Redefine as a macro.
6478
6479 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6480
6481         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
6482         (GTFILES): Remove reginfo.c.
6483         * rtl.h (target_rtl): Add x_top_of_stack.
6484         (top_of_stack): New macro.
6485         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
6486         (top_of_stack): Delete.
6487
6488 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6489
6490         * regs.h (target_regs): Add x_hard_regs_of_mode,
6491         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
6492         x_may_move_out_cost and x_last_mode_for_init_move_cost.
6493         (have_regs_of_mode, contains_reg_of_mode, move_cost)
6494         (may_move_in_cost, may_move_out_cost): Redefine as macros.
6495         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
6496         (may_move_in_cost, may_move_out_cost): Delete.
6497         (last_mode_for_init_move_cost): Redefine as a macro.
6498
6499 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6500
6501         * hard-reg-set.h (target_hard_regs): New structure.
6502         (default_target_hard_regs): Declare.
6503         (this_target_hard_regs): Declare as a variable or define as a macro.
6504         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
6505         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
6506         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
6507         (reg_class_size, reg_class_subclasses, reg_class_subunion)
6508         (reg_class_superunion, reg_names): Redefine as macros.
6509         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
6510         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
6511         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
6512         (reg_class_contents, reg_class_size, reg_class_subclasses)
6513         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
6514         (default_target_hard_regs): New variable
6515         (this_target_hard_regs, initial_call_really_used_regs)
6516         (initial_reg_alloc_order): New conditional variables.
6517         (initial_reg_names): New variable.
6518         (init_reg_sets): Assert that initial_call_really_used_regs,
6519         initial_reg_alloc_order and initial_reg_names
6520         are all the same size as their variable counterparts.  Use them to
6521         initialize those counterparts.
6522         * target-globals.h (this_target_hard_regs): Declare.
6523         (target_globals): Add a hard_regs field.
6524         (restore_target_globals): Copy the hard_regs field to
6525         this_target_hard_regs.
6526         * target-globals.c: Include hard-reg-set.h.
6527         (default_target_globals): Initialize the hard_regs field.
6528         (save_target_globals): Likewise.
6529
6530 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6531
6532         * Makefile.in (target-globals.o): Depend on $(RTL_H).
6533         * rtl.h (target_rtl): New structure.
6534         (default_target_rtl): Declare.
6535         (this_target_rtl): Declare as a variable or define as a macro.
6536         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
6537         Redefine as macros.
6538         * emit-rtl.c (default_target_rtl): New variable.
6539         (this_target_rtl): New conditional variable.
6540         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
6541         (return_address_pointer_rtx): Delete.
6542         (initial_regno_reg_rtx): New macro.
6543         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
6544         (init_emit_regs): Likewise.
6545         * target-globals.h (this_target_rtl): Declare.
6546         (target_globals): Add a rtl field.
6547         (restore_target_globals): Copy the rtl field to this_target_rtl.
6548         * target-globals.c: Include rtl.h.
6549         (default_target_globals): Initialize the rtl field.
6550         (save_target_globals): Likewise.
6551
6552 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6553
6554         * Makefile.in (target-globals.o): Depend on $(REGS_H).
6555         * regs.h (target_reg_modes): New structure.
6556         (default_target_reg_modes): Declare.
6557         (this_target_reg_modes): Declare as a variable or define as a macro.
6558         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
6559         * reginfo.c (default_target_reg_modes): New variable.
6560         (this_target_reg_modes): New conditional variable.
6561         (hard_regno_nregs, reg_raw_mode): Delete.
6562         * target-globals.h (this_target_regs): Declare.
6563         (target_globals): Add a regs field.
6564         (restore_target_globals): Copy the regs field to this_target_regs.
6565         * target-globals.c: Include regs.h.
6566         (default_target_globals): Initialize the regs field.
6567         (save_target_globals): Likewise.
6568
6569 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6570
6571         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
6572         * doc/tm.texi: Regenerate.
6573         * Makefile.in (OBJS-common): Add target-globals.o.
6574         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
6575         and target-globals.h.
6576         (target-globals.o): New rule.
6577         (GTFILES): Include $(srcdir)/target-globals.h.
6578         * defaults.h (SWITCHABLE_TARGET): Define.
6579         * gengtype.c (open_base_files): Add target-globals.h to the
6580         list of includes.
6581         * target-globals.h: New file.
6582         * target-globals.c: Likewise.
6583
6584         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
6585         * flags.h (target_flag_state): New structure.
6586         (default_target_flag_state): Declare.
6587         (this_target_flag_state): Declare as a variable or define as a macro.
6588         (align_loops_log): Redefine as a macro.
6589         (align_loops_max_skip, align_jumps_log): Likewise.
6590         (align_jumps_max_skip, align_labels_log): Likewise.
6591         (align_labels_max_skip, align_functions_log): Likewise.
6592         * toplev.c (default_target_flag_state): New variable.
6593         (this_target_flag_state): New conditional variable.
6594         (align_loops_log): Delete.
6595         (align_loops_max_skip, align_jumps_log): Likewise.
6596         (align_jumps_max_skip, align_labels_log): Likewise.
6597         (align_labels_max_skip, align_functions_log): Likewise.
6598         * target-globals.h (this_target_flag_state): Declare.
6599         (target_globals): Add a flag_state field.
6600         (restore_target_globals): Copy the flag_state field to
6601         this_target_flag_state.
6602         * target-globals.c: Include flags.h.
6603         (default_target_globals): Initialize the flag_state field.
6604         (save_target_globals): Likewise.
6605
6606 2010-07-12  Jie Zhang  <jie@codesourcery.com>
6607
6608         * postreload.c (reg_symbol_ref[]): New.
6609         (move2add_use_add2_insn): New.
6610         (move2add_use_add3_insn): New.
6611         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
6612         (move2add_note_store): Likewise.
6613
6614 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
6615
6616         PR rtl-optimization/44752
6617         * genautomata.c (main): Don't emit an empty file even if there
6618         is no automaton.
6619
6620 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6621
6622         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
6623         ix86_solaris_return_in_memory.
6624         * config/i386-protos.h: Reflect this.
6625         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
6626         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
6627         Move ...
6628         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
6629
6630 2010-07-12  Jie Zhang  <jie@codesourcery.com>
6631
6632         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
6633         align the stack when it's going to be saved.
6634
6635 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6636
6637         PR pch/14940
6638         * config/host-solaris.c (mmap_fixed): New function.
6639         (sol_gt_pch_get_address): Use it.
6640         (sol_gt_pch_use_address): Likewise.
6641
6642 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6643
6644         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
6645         pentiumpro on Solaris 8 and 9/x86.
6646         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
6647         Document SSE/SSE2 support.
6648         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
6649
6650 2010-07-12  Andi Kleen  <ak@linux.intel.com>
6651
6652         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
6653         instead of gcc_assert to print better error message for multiple
6654         prevailing defs.
6655
6656 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
6657
6658         * config/i386/i386.c (ix86_asm_output_function_label): Change format
6659         string placeholder from 0x%x to %#x.
6660         (ix86_code_end): Use putc to output '\n'.
6661         (ix86_print_operand) <case ';'>: Use putc to output ';'.
6662
6663 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
6664
6665         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
6666         in directive -export.
6667
6668 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
6669
6670         * reginfo.h (reg_classes_intersect_p): Change arguments type to
6671         reg_class_t.
6672         * rtl.h (reg_classes_intersect_p): Adjust prototype.
6673
6674         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
6675         Remove macros.
6676         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
6677         rs6000_memory_move_cost): Remove
6678         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
6679         TARGET_MEMORY_MOVE_COST): Define.
6680         (rs6000_register_move_cost): Make static. Change arguments type from
6681         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
6682         (rs6000_memory_move_cost): Make static. Change arguments type from
6683         'enum reg_class' to reg_class_t.
6684
6685 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
6686
6687         PR middle-end/42505
6688         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
6689         lookup code into....
6690         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
6691         new functions.
6692         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
6693         * cfgloopanal.c (target_clobbered_regs): Define.
6694         (init_set_costs): Initialize target_clobbered_regs.
6695         (estimate_reg_pressure_cost): Add call_p argument.  When true,
6696         adjust the number of available registers to exclude the
6697         call-clobbered registers.
6698         * cfgloop.h (target_clobbered_regs): Declare.
6699         (estimate_reg_pressure_cost): Adjust declaration.
6700         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
6701         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
6702         (determine_set_costs): Dump target_clobbered_regs.
6703         (loop_body_includes_call): New function.
6704         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
6705         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
6706         call_p flag through.
6707         (best_gain_for_invariant): Likewise.
6708         (find_invariants_to_move): Likewise.
6709         (move_single_loop_invariants): Likewise, using already-computed
6710         has_call field.
6711
6712 2010-07-10  Richard Guenther  <rguenther@suse.de>
6713             Joern Rennecke  <joern.rennecke@embecosm.com>
6714
6715         PR debug/44832
6716         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
6717         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
6718         unless they have DECL_IGNORED_P set.
6719
6720 2010-07-10  Richard Guenther  <rguenther@suse.de>
6721
6722         PR lto/44889
6723         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
6724         helper function.
6725         (gimple_types_compatible_p): Similar to pointed-to
6726         types allow and merge a mix of complete and incomplete aggregate.
6727         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
6728         (iterative_hash_gimple_type): Adjust for that.
6729
6730 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
6731
6732         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
6733
6734 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
6735
6736         PR objc/44140
6737         * config/darwin.c (output_objc_section_asm_op): Save and restore
6738         section when outputting ObjC section list.
6739
6740 2010-07-09  Jan Hubicka  <jh@suse.cz>
6741
6742         * lto-streamer-out.c (produce_symtab): Do not write alias
6743         cgraph/varpool nodes.
6744
6745 2010-07-09  Jan Hubicka  <jh@suse.cz>
6746
6747         * tree-inline.c (declare_return_variable): Fix ICE while
6748         inlining DECL_BY_VALUE function not in SSA form
6749
6750 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
6751
6752         PR tree-optimization/44576
6753         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
6754         New.  Pull out from is_loop_prefetching_profitable to implement
6755         the trip count to ahead ratio heuristic.
6756         (mem_ref_count_reasonable_p): New.  Pull out from
6757         is_loop_prefetching_profitable to implement the instruction to
6758         memory reference ratio heuristic.  Also consider not reasonable if
6759         the memory reference count is above a threshold (to avoid
6760         explosive compilation time.
6761         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
6762         is_loop_prefetching_profitable to implement the instruction to
6763         prefetch ratio heuristic.
6764         (is_loop_prefetching_profitable): Removed.
6765         (loop_prefetch_arrays): Distribute the cost analysis across the
6766         function to allow early exit of the prefetch analysis.
6767         is_loop_prefetching_profitable is splitted into three functions,
6768         with each one called as early as possible.
6769         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
6770         number of memory references in a loop is considered too many.
6771
6772 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
6773
6774         * reload.c (find_reloads): Don't clear badop if we have a winreg
6775         alternative, but not win, and the class only has fixed regs.
6776         * hard-reg-set.h (class_only_fixed_regs): Declare.
6777         * reginfo.c (class_only_fixed_regs): New array.
6778         (init_reg_sets_1): Initialize it.
6779         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
6780         discourage alternatives using the stack pointer.
6781
6782         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
6783
6784         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
6785
6786         * config/arm/arm.md (cbranchqi4): Fix array size.
6787         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
6788         calculating length.
6789
6790 2010-07-09  Richard Guenther  <rguenther@suse.de>
6791
6792         * gimple.c (struct type_fixup_s): New struct and VEC type.
6793         (gimple_register_type_fixups): New static global.
6794         (gimple_queue_type_fixup): New function.
6795         (gimple_types_compatible_p): Queue type fixups instead of
6796         applying them here.
6797         (gimple_register_type): Apply queued fixups for the
6798         canonical type.  Empty the type fixup queue.
6799
6800 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
6801
6802         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
6803         * configure: Regenerate.
6804         * config.in: Ditto.
6805
6806 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
6807             Denys Vlasenko  <dvlasenk@redhat.com>
6808             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
6809
6810         PR tree-optimization/28632
6811         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
6812         (extract_range_from_binary_expr): Further optimize
6813         BIT_AND_EXPR and BIT_IOR_EXPR.
6814
6815 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
6816
6817         * tree-if-conv.c (fold_or_predicates): New.
6818         (add_to_predicate_list): Call it.
6819
6820 2010-07-09  Richard Guenther  <rguenther@suse.de>
6821
6822         PR middle-end/44890
6823         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
6824         if base is a pointer.
6825         * tree-cfg.c (verify_expr): Update MEM_REF checking.
6826
6827 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
6828
6829         PR target/44877
6830         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
6831         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
6832         builtin mask for load/store builtins.
6833
6834 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
6835
6836         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
6837         for "lock addl".
6838         * configure: Regenerate.
6839         * config/i386/i386.c (ix86_print_operand) <case ';'>:
6840         Remove TARGET_MACHO.
6841
6842 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
6843
6844         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
6845         default ISA flags.
6846         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
6847
6848 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
6849
6850         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
6851
6852 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6853
6854         * config/picochip/picochip.md (commsTestPort): Emit more
6855         efficient sequence for tstport instruction.
6856
6857 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
6858
6859         * config/i386/i386.c (ix86_veclib_handler): Make static.
6860
6861 2010-07-09  Richard Guenther  <rguenther@suse.de>
6862
6863         PR tree-optimization/44852
6864         * tree-ssa-alias.c: Include toplev.h for exact_log2.
6865         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
6866         in MEM_REF.
6867         (indirect_refs_may_alias_p): Likewise.
6868         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
6869
6870 2010-07-09  Richard Guenther  <rguenther@suse.de>
6871
6872         PR tree-optimization/44882
6873         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
6874         sets do conflict.
6875         (vectorizable_load): Likewise.
6876
6877 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
6878
6879         PR target/40657
6880         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
6881         All callers changed.
6882         Handle the case when we're called for the epilogue.
6883         (thumb_unexpanded_epilogue): Use it.
6884         (thumb1_expand_epilogue): Likewise.
6885
6886 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
6887
6888         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
6889         both ranges are range_int_cst_p with non-negative minimum,
6890         try harder to derive smaller range.
6891
6892 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6893
6894         * genrecog.c: Include diagnostic-core.h before toplev.h.
6895         * genoutput.c: Likewise.
6896         * genextract.c: Likewise.
6897         * genautomata.c: Likewise.
6898         * genemit.c: Likewise.
6899         * genpeep.c: Likewise.
6900         * genattrtab.c: Likewise.
6901         * genconditions.c: Likewise.
6902         * genpreds.c: Likewise.
6903
6904 2010-07-08  Andi Kleen  <ak@linux.intel.com>
6905
6906         * lto-section-in.c (lto_section_name): Add missing comma.
6907
6908 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
6909
6910         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
6911         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
6912         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
6913         (ia64_override_options): Rename to...
6914         (ia64_option_override): ... this one. Make static.
6915
6916 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
6917
6918         PR middle-end/44843
6919         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
6920         pointed-to type of the offset in a MEM_REF to compute the alignment.
6921
6922 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
6923
6924         * final.c (final_scan_insn): Replace
6925         TARGET_UNWIND_INFO macro check by unwind_emit
6926         hook NULL check.
6927         * targhooks.c (default_unwind_emit): Removed.
6928         * targhooks.h (default_unwind_emit): Likewise.
6929         * target.def (unwind_emit): Set default value to NULL.
6930
6931         * config/i386/i386-protos.h (ix86_asm_output_function_label):
6932         New prototype.
6933         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
6934         for NULL fntype argument and allow 64-bit targets.
6935         (ix86_asm_output_function_label): New function.
6936         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
6937         (ix86_handle_fndecl_attribute): Likewise.
6938         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
6939         * doc/doc/tm.texi: Regenerated.
6940         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
6941         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
6942         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
6943         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
6944         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
6945         * config/elfos.h: Likewise.
6946         * config/i386/cygming.h: Likewise.
6947         * config/netbsd-aout.h: Likewise.
6948         * config/openbsd.h: Likewise.
6949         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
6950         by ix86_asm_output_function_label function call.
6951         * varasm.c (assemble_start_function): Use
6952         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
6953
6954 2010-07-08  Jan Hubicka  <jh@suse.cz>
6955
6956         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
6957         New function.
6958         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
6959         Declare.
6960         * ipa-cp.c (ipcp_estimate_growth): Use it.
6961         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
6962         Likewise.
6963
6964 2010-07-08  Jan Hubicka  <jh@suse.cz>
6965
6966         * tree-inline.c (declare_return_variable): Allocate annotation for new
6967         temporary.
6968
6969 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
6970
6971         PR tree-optimization/44710
6972         * tree-if-conv.c (parse_predicate): New.
6973         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
6974         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
6975
6976 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
6977
6978         * common.opt (ftree-loop-if-convert): New flag.
6979         * doc/invoke.texi (ftree-loop-if-convert): Documented.
6980         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
6981         when flag_tree_loop_if_convert is set.
6982
6983 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
6984
6985         * config/i386/i386.c: Use short syntax for function calls
6986         through function pointers.
6987         * config/i386/i386.md: Ditto.
6988
6989 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
6990
6991         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
6992
6993 2010-07-08  Richard Guenther  <rguenther@suse.de>
6994
6995         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
6996         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
6997
6998 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
6999
7000         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
7001         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
7002         (loc_list_from_tree): Likewise.
7003         (output_loc_operands): Handle outputting DW_OP_const[48]u
7004         with loc->dtprel set.
7005         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
7006
7007 2010-07-08  Jan Hubicka  <jh@suse.cz>
7008
7009         * ipa.c: Include pointer-set.h
7010         (cgraph_externally_visible_p): New attribute ALIASED;
7011         when in LTO, hidden symbols are local unless they are aliased.
7012         (function_and_variable_visibility): Compute aliased nodes;
7013         handle LTO and hidden symbol on functions and vars.
7014         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
7015         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
7016
7017 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7018
7019         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
7020         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7021         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7022         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7023         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7024         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
7025         (ix86_gen_probe_stack_range): Likewise.
7026         (override_options): Set them.
7027         (ix86_target_stack_probe): New function.
7028         (ix86_compute_frame_layout): Force use of push instructions to
7029         save registers if stack checking with probes is enabled.
7030         (get_scratch_register_on_entry): New function.
7031         (release_scratch_register_on_entry): Likewise.
7032         (ix86_adjust_stack_and_probe): Likewise.
7033         (output_adjust_stack_and_probe): Likewise.
7034         (ix86_emit_probe_stack_range): Likewise.
7035         (output_probe_stack_range): Likewise.
7036         (ix86_expand_prologue): Emit stack checking code if static built-in
7037         stack checking is enabled.
7038         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
7039         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
7040         (output_adjust_stack_and_probe): Likewise.
7041         (output_probe_stack_range): Likewise.
7042         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
7043         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
7044         TARGET_STACK_PROBE.
7045         (allocate_stack_worker_64): Likewise.
7046         (allocate_stack): Likewise.
7047         (adjust_stack_and_probe): New insn.
7048         (probe_stack_range): Likewise.
7049
7050 2010-07-08  Richard Guenther  <rguenther@suse.de>
7051
7052         PR tree-optimization/44831
7053         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
7054         a MEM_REF preserving TBAA info of the original dereference.
7055         Dereference the original pointer if the address is not invariant.
7056         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
7057         at least one invariant address that we are going to dereference.
7058
7059 2010-07-08  Richard Guenther  <rguenther@suse.de>
7060
7061         PR tree-optimization/44861
7062         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
7063         information when building MEM_REFs.
7064         (vectorizable_load): Likewise.
7065         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
7066
7067 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7068
7069         * config/sol2-c.c: Do not include diagnostic-core.h.
7070
7071 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7072
7073         PR bootstrap/44768
7074         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
7075         with respect to current_function_decl. Pass decl of the function.
7076         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
7077         * ipa-inline.c (compute_inline_parameters): Pass decl to
7078         estimated_stack_frame_size.
7079
7080 2010-07-08  Richard Guenther  <rguenther@suse.de>
7081
7082         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
7083         New function.
7084         (valueize_refs): Call it.
7085
7086 2010-07-08  Richard Guenther  <rguenther@suse.de>
7087
7088         PR rtl-optimization/44838
7089         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
7090         SSA form do not use pointer equivalence.
7091
7092 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7093
7094         * dwarf2out.c (AT_linkage_name): Delete.
7095         (add_linkage_attr): New function.
7096         (add_linkage_name): Call it to emit the linkage attribute.
7097         (dwarf2out_finish): Likewise.
7098         (move_linkage_attr): Explicitly accept both attribute variants.
7099
7100 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7101
7102         * toplev.h: Do not include diagnostic-core.h.
7103         Include diagnostic-core.h in every file that includes toplev.h.
7104         * c-tree.h: Do not include toplev.h.
7105         * pretty-print.h: Update comment.
7106         * Makefile.in: Update dependencies.
7107         * alias.c: Include diagnostic-core.h in every file that includes
7108         toplev.h.
7109         * attribs.c: Likewise.
7110         * auto-inc-dec.c: Likewise.
7111         * bb-reorder.c: Likewise.
7112         * bt-load.c: Likewise.
7113         * caller-save.c: Likewise.
7114         * calls.c: Likewise.
7115         * cfg.c: Likewise.
7116         * cfganal.c: Likewise.
7117         * cfgbuild.c: Likewise.
7118         * cfgcleanup.c: Likewise.
7119         * cfghooks.c: Likewise.
7120         * cfgloop.c: Likewise.
7121         * combine.c: Likewise.
7122         * config/alpha/alpha.c: Likewise.
7123         * config/arc/arc.c: Likewise.
7124         * config/arm/arm.c: Likewise.
7125         * config/arm/pe.c: Likewise.
7126         * config/avr/avr.c: Likewise.
7127         * config/bfin/bfin.c: Likewise.
7128         * config/cris/cris.c: Likewise.
7129         * config/crx/crx.c: Likewise.
7130         * config/darwin-c.c: Likewise.
7131         * config/darwin.c: Likewise.
7132         * config/fr30/fr30.c: Likewise.
7133         * config/frv/frv.c: Likewise.
7134         * config/h8300/h8300.c: Likewise.
7135         * config/host-darwin.c: Likewise.
7136         * config/i386/i386.c: Likewise.
7137         * config/i386/netware.c: Likewise.
7138         * config/i386/nwld.c: Likewise.
7139         * config/i386/winnt-cxx.c: Likewise.
7140         * config/i386/winnt-stubs.c: Likewise.
7141         * config/i386/winnt.c: Likewise.
7142         * config/ia64/ia64-c.c: Likewise.
7143         * config/ia64/ia64.c: Likewise.
7144         * config/iq2000/iq2000.c: Likewise.
7145         * config/lm32/lm32.c: Likewise.
7146         * config/m32c/m32c-pragma.c: Likewise.
7147         * config/m32c/m32c.c: Likewise.
7148         * config/m32r/m32r.c: Likewise.
7149         * config/m68hc11/m68hc11.c: Likewise.
7150         * config/m68k/m68k.c: Likewise.
7151         * config/mcore/mcore.c: Likewise.
7152         * config/mep/mep-pragma.c: Likewise.
7153         * config/mep/mep.c: Likewise.
7154         * config/mmix/mmix.c: Likewise.
7155         * config/mn10300/mn10300.c: Likewise.
7156         * config/moxie/moxie.c: Likewise.
7157         * config/pa/pa.c: Likewise.
7158         * config/pdp11/pdp11.c: Likewise.
7159         * config/picochip/picochip.c: Likewise.
7160         * config/rs6000/rs6000-c.c: Likewise.
7161         * config/rs6000/rs6000.c: Likewise.
7162         * config/rx/rx.c: Likewise.
7163         * config/s390/s390.c: Likewise.
7164         * config/score/score.c: Likewise.
7165         * config/score/score3.c: Likewise.
7166         * config/score/score7.c: Likewise.
7167         * config/sh/sh.c: Likewise.
7168         * config/sh/symbian-base.c: Likewise.
7169         * config/sh/symbian-c.c: Likewise.
7170         * config/sh/symbian-cxx.c: Likewise.
7171         * config/sol2-c.c: Likewise.
7172         * config/sol2.c: Likewise.
7173         * config/sparc/sparc.c: Likewise.
7174         * config/spu/spu.c: Likewise.
7175         * config/stormy16/stormy16.c: Likewise.
7176         * config/v850/v850-c.c: Likewise.
7177         * config/v850/v850.c: Likewise.
7178         * config/vax/vax.c: Likewise.
7179         * config/vxworks.c: Likewise.
7180         * config/xtensa/xtensa.c: Likewise.
7181         * convert.c: Likewise.
7182         * cse.c: Likewise.
7183         * cselib.c: Likewise.
7184         * dbgcnt.c: Likewise.
7185         * dbxout.c: Likewise.
7186         * ddg.c: Likewise.
7187         * dominance.c: Likewise.
7188         * emit-rtl.c: Likewise.
7189         * explow.c: Likewise.
7190         * expmed.c: Likewise.
7191         * fixed-value.c: Likewise.
7192         * fold-const.c: Likewise.
7193         * fwprop.c: Likewise.
7194         * gcse.c: Likewise.
7195         * ggc-common.c: Likewise.
7196         * ggc-page.c: Likewise.
7197         * ggc-zone.c: Likewise.
7198         * gimple-low.c: Likewise.
7199         * gimplify.c: Likewise.
7200         * graph.c: Likewise.
7201         * haifa-sched.c: Likewise.
7202         * ifcvt.c: Likewise.
7203         * implicit-zee.c: Likewise.
7204         * integrate.c: Likewise.
7205         * ira-build.c: Likewise.
7206         * ira-color.c: Likewise.
7207         * ira-conflicts.c: Likewise.
7208         * ira-costs.c: Likewise.
7209         * ira-lives.c: Likewise.
7210         * ira.c: Likewise.
7211         * lists.c: Likewise.
7212         * loop-doloop.c: Likewise.
7213         * loop-iv.c: Likewise.
7214         * lto-opts.c: Likewise.
7215         * lto-symtab.c: Likewise.
7216         * main.c: Likewise.
7217         * modulo-sched.c: Likewise.
7218         * optabs.c: Likewise.
7219         * params.c: Likewise.
7220         * plugin.c: Likewise.
7221         * postreload-gcse.c: Likewise.
7222         * postreload.c: Likewise.
7223         * predict.c: Likewise.
7224         * profile.c: Likewise.
7225         * real.c: Likewise.
7226         * regcprop.c: Likewise.
7227         * reginfo.c: Likewise.
7228         * regmove.c: Likewise.
7229         * reorg.c: Likewise.
7230         * resource.c: Likewise.
7231         * rtl.c: Likewise.
7232         * rtlanal.c: Likewise.
7233         * sched-deps.c: Likewise.
7234         * sched-ebb.c: Likewise.
7235         * sched-rgn.c: Likewise.
7236         * sdbout.c: Likewise.
7237         * sel-sched-dump.c: Likewise.
7238         * sel-sched-ir.c: Likewise.
7239         * simplify-rtx.c: Likewise.
7240         * stmt.c: Likewise.
7241         * stor-layout.c: Likewise.
7242         * store-motion.c: Likewise.
7243         * targhooks.c: Likewise.
7244         * tree-cfg.c: Likewise.
7245         * tree-cfgcleanup.c: Likewise.
7246         * tree-dump.c: Likewise.
7247         * tree-eh.c: Likewise.
7248         * tree-inline.c: Likewise.
7249         * tree-nomudflap.c: Likewise.
7250         * tree-object-size.c: Likewise.
7251         * tree-optimize.c: Likewise.
7252         * tree-outof-ssa.c: Likewise.
7253         * tree-phinodes.c: Likewise.
7254         * tree-profile.c: Likewise.
7255         * tree-ssa-ccp.c: Likewise.
7256         * tree-ssa-coalesce.c: Likewise.
7257         * tree-ssa-live.c: Likewise.
7258         * tree-ssa-loop-niter.c: Likewise.
7259         * tree-ssa-loop-prefetch.c: Likewise.
7260         * tree-ssa-loop.c: Likewise.
7261         * tree-ssa-structalias.c: Likewise.
7262         * tree-ssa-uninit.c: Likewise.
7263         * tree-ssa.c: Likewise.
7264         * tree-vect-data-refs.c: Likewise.
7265         * tree-vect-loop-manip.c: Likewise.
7266         * tree-vect-loop.c: Likewise.
7267         * tree-vect-patterns.c: Likewise.
7268         * tree-vect-stmts.c: Likewise.
7269         * tree-vrp.c: Likewise.
7270         * varasm.c: Likewise.
7271         * vec.c: Likewise.
7272         * web.c: Likewise.
7273         * xcoffout.c: Likewise.
7274
7275 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
7276
7277         * gengtype.c (write_field_root): New function.
7278         (write_root): Use it.
7279
7280 2010-07-07  Wei Guozhi  <carrot@google.com>
7281
7282         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
7283         of lowest bits to lshift/compare): Add a missing line.
7284
7285 2010-07-07  Wei Guozhi  <carrot@google.com>
7286
7287         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
7288         of lowest bits to lshift/compare): New.
7289
7290 2010-07-07  Tom Tromey  <tromey@redhat.com>
7291
7292         * doc/tm.texi: Update.
7293         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
7294         Add @hook.
7295         * target.def (want_debug_pub_sections): New hook.
7296         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
7297         * dwarf2out.c (add_pubname_string): Check
7298         targetm.want_debug_pub_sections.
7299         (add_pubname): Likewise.
7300         (add_pubtype): Likewise.
7301
7302 2010-07-07  Jie Zhang  <jie@codesourcery.com>
7303
7304         * genautomata.c (output_automata_list_min_issue_delay_code):
7305         Correctly decompress min_issue_delay.
7306
7307 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7308
7309         PR rtl-optimization/44404
7310         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
7311         possible, use reg_overlap_mentioned_p instead.
7312
7313 2010-07-07  Duncan Sands  <baldrick@free.fr>
7314
7315         PR middle-end/41355
7316         * tree.c (build_function_type_skip_args): Copy the original type using
7317         build_distinct_type_copy rather than copy_node.
7318
7319 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
7320
7321         PR target/44850
7322         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
7323         revision 161876.
7324         (ix86_expand_prologue): Likewise.
7325         (ix86_handle_fndecl_attribute): Likewise.
7326         (ix86_asm_declare_function_name): Likewise.
7327         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7328         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7329         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
7330         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
7331         * doc/extend.texi: Likewise.
7332
7333 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
7334
7335         PR target/44844
7336         * config/i386/i386.md (rdrand<mode>): Changed to expand to
7337         retry if the carry flag isn't valid.
7338         (rdrand<mode>_1): New.
7339
7340 2010-07-07  Richard Guenther  <rguenther@suse.de>
7341
7342         PR middle-end/44790
7343         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
7344         for expanding the constant offset for MEM_REFs.
7345
7346 2010-07-07  Richard Guenther  <rguenther@suse.de>
7347
7348         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
7349         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
7350         * gimple.h (is_gimple_operand): Remove.
7351         * gimple.c (is_gimple_operand): Likewise.
7352         (walk_gimple_op): Fix wi->val_only setting for calls.
7353         * tree-cfg.c (verify_gimple_call): Fix argument validation.
7354         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
7355         invalid gimple calls.
7356
7357 2010-07-06  Jan Hubicka  <jh@suse.cz>
7358
7359         * lto-cgraph.c (output_cgraph): Add missing declaration.
7360
7361 2010-07-06  Jan Hubicka  <jh@suse.cz>
7362
7363         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
7364         partition.
7365
7366 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
7367
7368         * doc/gimple.texi (GIMPLE_DEBUG): Document.
7369         * doc/rtl.texi (Debug Information): New node.
7370         (NOTE_INSN_VAR_LOCATION): Document.
7371         (debug_insn): Likewise.
7372         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
7373
7374 2010-07-07  Jan Hubicka  <jh@suse.cz>
7375
7376         With parts by Richard Guenther.
7377
7378         PR middle-end/44813
7379         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
7380         for functions passed by reference.
7381         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
7382         in memory when passed by reference.
7383         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
7384         beggining.
7385         * ipa-split.c (split_function): Cleanup way return value is passed;
7386         handle SSA DECL_BY_REFERENCE retvals.
7387         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
7388         DECL_BY_REFERENCE is set.
7389         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
7390         find_what_p_points_to): Handle RESULT_DECL.
7391         * tree-inline.c (declare_return_variable): Get new entry_block argument;
7392         when passing by reference ensure that RESULT_DECL is gimple_val.
7393         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
7394         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
7395
7396 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7397
7398         PR rtl-optimization/44787
7399         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
7400         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
7401
7402 2010-07-06  Jan Hubicka  <jh@suse.cz>
7403
7404         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
7405         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
7406         with body can prevail.
7407         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
7408         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
7409         * cgraph.c (cgraph_get_node_or_alias): New function.
7410         * cgraph.h (cgraph_get_node_or_alias): Declare.
7411
7412 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
7413
7414         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
7415         support.
7416         (ix86_expand_prologue): Likewise.
7417         (ix86_handle_fndecl_attribute): Likewise.
7418         (ix86_asm_declare_function_name): New function for
7419         ASM_DECLARE_FUNCTION_NAME.
7420         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
7421         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
7422         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
7423         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
7424         * doc/extend.texi: Adjust documentation about ms_hook_prologue
7425         attribute.
7426
7427 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
7428
7429         * config/i386/i386.md (immediate_operand): New mode attribute.
7430
7431         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
7432         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
7433         using P mode iterator.
7434         (pro_epilogue_adjust_stack_di_2): Rename from
7435         pro_epilogue_adjust_stack_rex64_2.
7436
7437         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
7438
7439 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
7440
7441         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
7442         through gen_mov_insv_1 function pointer.
7443         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
7444         gen_truncxf<mode>2 through gen_truncxf function pointer.
7445         (remainder<mode>3): Ditto.
7446         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
7447         (allocate_stack): Call gen_allocate_stack_worker_64 or
7448         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
7449         function pointer.
7450         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
7451         function pointer.
7452
7453 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
7454
7455         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
7456         operand constraint instead of <r><i>m.
7457
7458 2010-07-06  Richard Guenther  <rguenther@suse.de>
7459
7460         PR middle-end/44828
7461         * convert.c (convert_to_integer): Watch out for overflowing
7462         MULT_EXPR as well.
7463
7464 2010-07-05  Jan Hubicka  <jh@suse.cz>
7465
7466         * lto-streamer.c (write_symbol_vec): Rename to ...
7467         (write_symbol) ... this one; write only symbol given and when
7468         present in cache. Sanity check that what is defined is present
7469         in cgraph/varpool with body/finalized decl.
7470         (write_symbols_of_kind): Remove.
7471         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
7472         pairs to produce symtab.
7473         (produce_asm_for_decls): Update call of produce_symtab; don't do so
7474         when doing WPA streaming.
7475
7476 2010-07-05  Jan Hubicka  <jh@suse.cz>
7477
7478         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
7479         function is still available to fold into.
7480
7481 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
7482
7483         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
7484         * function.h (struct_function): Change type of local_decls field
7485         to a VEC.
7486         (add_local_decl): New function.
7487         (FOR_EACH_LOCAL_DECL): New macro.
7488         * cfgexpand.c (init_vars_expansion): Adjust for new type of
7489         cfun->local_decls.
7490         (estimated_stack_frame_size): Likewise.
7491         (expand_used_vars): Likewise.
7492         * cgraphbuild.c (build_cgraph_edges): Likewise.
7493         * function.c (instantiate_decls_1): Likewise.
7494         * ipa-struct-reorg.c (build_data_structure): Likewise.
7495         * ipa-type-escape.c (analyze_function): Likewise.
7496         * lto-streamer-in.c (input_function): Likewise.
7497         * lto-streamer-out.c (output_function): Likewise.
7498         * tree-ssa-live.c (remove_unused_locals): Likewise.
7499         * tree.c (free_lang_data_in_decl): Likewise.
7500         (find_decls_types_in_node): Likewise.
7501         * omp-low.c (remove_exit_barrier): Likewise.
7502         (expand_omp_taskreg): Likewise.
7503         (list2chain): Rename to...
7504         (vec2chain): ...this.  Adjust.
7505         * cgraphunit.c (assemble_thunk): Call add_local_decl.
7506         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
7507         * gimple-low.c (record_vars_into): Likewise.
7508         * tree-inline.c (remap_decls): Likewise.
7509         (declare_return_variable): Likewise.
7510         (declare_inline_vars): Likewise.
7511         (copy_forbidden): Adjust for new type of cfun->local_decls.
7512         (add_local_variables): New function.
7513         (expand_call_inline): Call it.
7514         (tree_function_versioning): Likewise.
7515
7516 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
7517
7518         AVX Programming Reference (June, 2010)
7519         * config/i386/cpuid.h (bit_F16C): New.
7520         (bit_RDRND): Likewise.
7521         (bit_FSGSBASE): Likewise.
7522
7523         * config/i386/i386-builtin-types.def: Add
7524         "DEF_FUNCTION_TYPE (UINT16)", function types for
7525         float16 <-> float conversions and
7526         "DEF_FUNCTION_TYPE (VOID, UINT64)".
7527
7528         * config/i386/i386-c.c (ix86_target_macros_internal): Support
7529         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
7530         OPTION_MASK_ISA_F16C.
7531
7532         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
7533         (OPTION_MASK_ISA_RDRND_SET): Likewise.
7534         (OPTION_MASK_ISA_F16C_SET): Likewise.
7535         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
7536         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
7537         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
7538         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
7539         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
7540         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
7541         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
7542         (override_options): Handle them.
7543         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
7544         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
7545         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
7546         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
7547         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
7548         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
7549         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
7550         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
7551         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
7552         (bdesc_args): Likewise.
7553         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
7554         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
7555         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
7556         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
7557         Handle non-memory store.
7558
7559         * config/i386/i386.h (TARGET_FSGSBASE): New.
7560         (TARGET_RDRND): Likewise.
7561         (TARGET_F12C): Likewise.
7562
7563         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
7564         (UNSPEC_VCVTPS2PH): Likewise.
7565         (UNSPECV_RDFSBASE): Likewise.
7566         (UNSPECV_RDGSBASE): Likewise.
7567         (UNSPECV_WRFSBASE): Likewise.
7568         (UNSPECV_WRGSBASE): Likewise.
7569         (UNSPECV_RDRAND): Likewise.
7570         (rdfsbase<mode>): Likewise.
7571         (rdgsbase<mode>): Likewise.
7572         (wrfsbase<mode>): Likewise.
7573         (wrgsbase<mode>): Likewise.
7574         (rdrand<mode>): Likewise.
7575
7576         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
7577
7578         * config/i386/immintrin.h (_rdrand_u16): New.
7579         (_rdrand_u32): Likewise.
7580         (_readfsbase_u32): Likewise.
7581         (_readfsbase_u64): Likewise.
7582         (_readgsbase_u32): Likewise.
7583         (_readgsbase_u64): Likewise.
7584         (_writefsbase_u32): Likewise.
7585         (_writefsbase_u64): Likewise.
7586         (_writegsbase_u32): Likewise.
7587         (_writegsbase_u64): Likewise.
7588         (_rdrand_u64): Likewise.
7589         (_cvtsh_ss): Likewise.
7590         (_mm_cvtph_ps): Likewise.
7591         (_mm256_cvtph_ps): Likewise.
7592         (_cvtss_sh): Likewise.
7593         (_mm_cvtps_ph): Likewise.
7594         (_mm256_cvtps_ph): Likewise.
7595
7596         * config/i386/sse.md (vcvtph2ps): New.
7597         (*vcvtph2ps_load): Likewise.
7598         (vcvtph2ps256): Likewise.
7599         (vcvtps2ph): Likewise.
7600         (*vcvtps2ph): Likewise.
7601         (*vcvtps2ph_store): Likewise.
7602         (vcvtps2ph256): Likewise.
7603
7604         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
7605
7606         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
7607
7608 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
7609
7610         PR bootstrap/44512
7611         * genenums.c (main): Output include of insn-constants.h
7612         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
7613
7614 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
7615
7616         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
7617         (override_options): Initialize it.
7618         (ix86_expand_prologue): Use it.
7619
7620 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
7621
7622         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
7623
7624 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
7625
7626         * double-int.h (fit_double_type): Remove declaration.
7627         * double-int.c (fit_double_type): Remove function.
7628         * tree.h (int_fits_type_p): Adjust prototype.
7629         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
7630         instead of fit_double_type.
7631         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
7632         instead of fit_double_type and build_int_cst_wide.
7633         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
7634         instead of fit_double_type and build_int_cst_wide.
7635         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
7636         of fit_double_type.
7637
7638 2010-07-05  Jan Hubicka  <jh@suse.cz>
7639
7640         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
7641         in_other_partition.
7642         * lto-cgraph.c (referenced_from_other_partition_p,
7643         reachable_from_other_partition_p): Use in_other_partition flags.
7644         (output_node, output_varpool_node): COMDAT nodes always have private
7645         copies and thus are never used from other partition.
7646
7647 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
7648
7649         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
7650         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
7651         * config/ia64/ia64.c Include reload.h.
7652         (ia64_memory_move_cost): New function.
7653         (TARGET_MEMORY_MOVE_COST): Define.
7654         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
7655         memory_move_cost.
7656
7657 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
7658
7659         PR middle-end/42505
7660         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
7661         comments about cost model.
7662         (try_add_cand_for):  Add second strategy for choosing initial set
7663         based on original IVs, controlled by ORIGINALP argument.
7664         (get_initial_solution): Add ORIGINALP argument.
7665         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
7666         (find_optimal_iv_set): Try two different strategies for choosing
7667         the IV set, and return the one with lower cost.
7668
7669 2010-07-05  Richard Guenther  <rguenther@suse.de>
7670
7671         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
7672
7673 2010-07-05  Richard Guenther  <rguenther@suse.de>
7674
7675         * tree.c (reference_alias_ptr_type): New function.
7676         * tree.h (reference_alias_ptr_type): Declare.
7677         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
7678         allow non-TARGET_MEM_REF new refs.
7679         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
7680         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
7681         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
7682         (create_mem_ref): Get alias pointer type.  Adjust calls to
7683         create_mem_ref_raw.
7684         (maybe_fold_tmr): Likewise.
7685         * tree-flow.h (create_mem_ref): Adjust prototype.
7686
7687 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
7688
7689         PR c++/44808
7690         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
7691         *from_p is VAR_DECL.
7692
7693 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
7694
7695         * tree.h (build_call_list): Remove.
7696         * tree.c (build_call_list): Remove.
7697
7698 2010-07-05  Richard Guenther  <rguenther@suse.de>
7699
7700         * double-int.h (double_int_sub): Declare.
7701         * double-int.c (double_int_sub): New function.
7702         * dwarf2out.c (field_byte_offset): Use it.
7703         * fixed-value.c (do_fixed_add): Likewise.
7704         (do_fixed_multiply): Likewise.
7705         (do_fixed_divide): Likewise.
7706         * tree-predcom.c (add_ref_to_chain): Likewise.
7707         (determine_roots_comp): Likewise.
7708         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
7709
7710 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
7711
7712         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
7713         implementations.
7714
7715 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
7716
7717         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
7718         * arm-modes.def (CC_NOTB): Don't define.
7719         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
7720         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
7721         (LTUGEU): New code_iterator.
7722         (cnb, optab): New corresponding code_attrs.
7723         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
7724         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
7725         using LTUGEU.
7726         (addsi3_carryin_shift_<optab>): Likewise.
7727         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
7728         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
7729         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
7730         (subsi3_compare): Renamed from subsi3_compare0_c.
7731         Change CC_NOTB to CC.
7732         (arm_subsi3_insn): Allow constants for operand 0.
7733         (compare_scc peephole for eq case): New.
7734         (compare_scc splitters): Change CC_NOTB to CC.
7735
7736 2010-07-05  Richard Guenther  <rguenther@suse.de>
7737
7738         * tree-ssa-loop-im.c (for_each_index): Do not handle
7739         ALIGN_INDIRECT_REF.
7740         (gen_lsm_tmp_name): Likewise.
7741         * tree-dump.c (dequeue_and_dump): Likewise.
7742         * tree-pretty-print.c (dump_generic_node): Likewise.
7743         (op_code_prio): Likewise.
7744         (op_symbol_code): Likewise.
7745         * tree.c (staticp): Likewise.
7746         (build1_stat): Likewise.
7747         * tree.h (INDIRECT_REF_P): Likewise.
7748         * fold-const.c (maybe_lvalue_p): Likewise.
7749         (operand_equal_p): Likewise.
7750         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7751         (ao_ref_init_from_vn_reference): Likewise.
7752         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
7753         (find_interesting_uses_address): Likewise.
7754         * dwarf2out.c (loc_list_from_tree): Likewise.
7755         * gimplify.c (gimplify_expr): Likewise.
7756         * tree-eh.c (tree_could_trap_p): Likewise.
7757         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7758         * cfgexpand.c (expand_debug_expr): Likewise.
7759         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
7760         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
7761         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
7762         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
7763         * tree-ssa-operands.c (get_expr_operands): Likewise.
7764         * expr.c (safe_from_p): Likewise.
7765         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
7766         * tree-vect-data-refs.c (vect_setup_realignment): Build
7767         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
7768         * tree-vect-stmts.c (vectorizable_load): Likewise.
7769         * tree.def (ALIGN_INDIRECT_REF): Remove.
7770
7771 2010-07-05  Richard Guenther  <rguenther@suse.de>
7772
7773         PR tree-optimization/44784
7774         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
7775         for inserted stmts.
7776         (find_or_generate_expression): Fix SCCVN insertion check.
7777
7778 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
7779
7780         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
7781         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
7782         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
7783         directives.
7784
7785 2010-07-05  Ira Rosen  <irar@il.ibm.com>
7786
7787         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
7788         statements that are not vectorized.
7789         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
7790         in INSIDE_COST.
7791
7792 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
7793
7794         PR bootstrap/44820
7795         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
7796
7797 2010-07-05  Richard Guenther  <rguenther@suse.de>
7798
7799         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
7800         RESULT_DECLs properly.
7801
7802 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
7803
7804         PR rtl-optimization/44695
7805         * config/i386/i386.md (extract_code): Removed.
7806         (<u>divmodqi4): Likewise.
7807         (divmodqi4): New.
7808         (udivmodqi4): Likewise.
7809         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
7810         (udivmodhiqi3): Likewise.
7811
7812 2010-07-04  Jan Hubicka  <jh@suse.cz>
7813
7814         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
7815
7816 2010-07-04  Jan Hubicka  <jh@suse.cz>
7817
7818         * cgraphunit.c (init_cgraph): Only initialize dump file if it
7819         is not already initialized.
7820
7821 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
7822
7823         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
7824         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
7825         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
7826         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
7827         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
7828         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
7829         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
7830         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
7831         (sync_new_nand_optab): Redefine as macros.
7832         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
7833         Delete.
7834         (direct_optab_index): New enum.
7835         (direct_optab_d): New structure.
7836         (direct_optab): New typedef.
7837         (direct_optab_table): Declare.
7838         (direct_optab_handler, set_direct_optab_handler): New functions.
7839         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
7840         (sync_lock_release_optab): New macros.
7841         * optabs.c (direct_optab_table): New variable.
7842         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
7843         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
7844         cmpstr_optab and cmpstrn_optab.
7845         (emit_conditional_move): Likewise for movcc_optab.
7846         (can_conditionally_move_p): Likewise for movcc_gen_code.
7847         (init_insn_codes): Clear direct_optab_table.
7848         (init_optabs): Don't initialize the new "direct optabs" here.
7849         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
7850         vcond_gen_code.
7851         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
7852         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
7853         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
7854         (expand_sync_operation): Likewise other sync_*_optabs.
7855         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
7856         to sync_compare_and_swap_optab.
7857         (expand_sync_lock_test_and_set): Use direct_optab_handler for
7858         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
7859         to the names of both.
7860         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
7861         cmpstr_optab and cmpstrn_optab.
7862         (expand_builtin_lock_release): Likewise sync_lock_release.
7863         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
7864         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
7865         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
7866         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
7867         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
7868         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
7869         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
7870         (sync_lock_test_and_set, sync_lock_release): Delete.
7871         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
7872         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
7873         * genopinit.c (optabs): Use set_direct_optab_handler for the new
7874         macro optabs.
7875         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
7876         the "optab" local variable.  Use direct_optab_handler for optab and
7877         sync_compare_and_swap_optab.
7878         * reload1.c (reload_in_optab, reload_out_optab): Delete.
7879         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
7880         reload_in_optab and reload_out_optab.
7881         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
7882         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
7883         * config/pa/pa.c (pa_secondary_reload): Likewise.
7884         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
7885         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
7886         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
7887         (VMSupportsCS8_builtin): Likewise.
7888
7889 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
7890
7891         * optabs.h (optab_handlers): Change type of insn_code to int.
7892         (optab_handler, set_optab_handler, convert_optab_handler)
7893         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
7894         CODE_FOR_nothing".
7895         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
7896         (init_insn_codes): Zero both the above arrays.
7897         (init_optabs): Never call init_insn_codes first time around.
7898
7899 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
7900
7901         * optabs.h (optab_handler, convert_optab_handler): Turn into
7902         inline functions that return an insn code.
7903         (set_optab_handler, set_convert_optab_handler): New functions.
7904         * builtins.c: Replace optab_handler(X)->insn_code with
7905         optab_handler or set_optab_handler thoughout.  Likewise
7906         convert_optab_handler(X)->insn_code with convert_optab_handler
7907         and set_convert_optab_handler.
7908         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
7909         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
7910         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
7911         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
7912         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
7913         config/spu/spu.c: Likewise.
7914
7915 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
7916
7917         PR target/44531
7918         * config.gcc (sh*-*-*): Use regular expressions instead of
7919         the 'i' modifier for sed substitutions.
7920
7921 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
7922
7923         * gimple.c (gimple_body): Comments added.
7924
7925 2010-07-04  Richard Guenther  <rguenther@suse.de>
7926
7927         PR middle-end/44809
7928         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
7929         of an INDIRECT_REF.
7930
7931 2010-07-04  Richard Guenther  <rguenther@suse.de>
7932
7933         PR tree-optimization/44479
7934         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
7935         extra SSA name copy statements which preserves points-to
7936         information.
7937         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
7938         Copy points-to information for all pointers.  Properly handle
7939         MEM_REFs.
7940         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
7941         copy statements.
7942         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
7943         dependency.
7944
7945 2010-07-04  Richard Guenther  <rguenther@suse.de>
7946
7947         PR middle-end/44785
7948         * tree-inline.c (initialize_inlined_parameters): Do not
7949         re-use pointer-map slot over remap_type call.
7950
7951 2010-07-04  Richard Guenther  <rguenther@suse.de>
7952
7953         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
7954
7955 2010-07-04  Richard Guenther  <rguenther@suse.de>
7956
7957         PR tree-optimization/44656
7958         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
7959         again after value-replacing in the defintions lhs.
7960
7961 2010-07-04  Ira Rosen  <irar@il.ibm.com>
7962             Revital Eres  <eres@il.ibm.com>
7963
7964         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
7965         Document new arguments.
7966         * doc/tm.texi: Regenerate.
7967         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
7968         Handle unaligned store.
7969         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
7970         * target.def (builtin_vectorization_cost): Add new arguments.
7971         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
7972         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
7973         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
7974         (vect_vfa_segment_size): Fix indentation.
7975         * tree-vectorizer.h (struct _vect_peel_info): New.
7976         (struct _vect_peel_extended_info): New.
7977         (struct _loop_vec_info): Add new field for peeling hash table and a
7978         macro for its access.
7979         (VECT_MAX_COST): Define.
7980         (vect_get_load_cost): Declare.
7981         (vect_get_store_cost, vect_get_known_peeling_cost,
7982         vect_get_single_scalar_iteraion_cost): Likewise.
7983         (vect_supportable_dr_alignment): Add new argument.
7984         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
7985         field.
7986         (destroy_loop_vec_info): Free peeling hash table.
7987         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
7988         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
7989         vect_analyze_slp. Fix indentation.
7990         (vect_get_single_scalar_iteraion_cost): New function.
7991         (vect_get_known_peeling_cost): Likewise.
7992         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
7993         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
7994         statement. Move outside cost calculation inside unknown peeling case.
7995         Call vect_get_known_peeling_cost for known amount of peeling.
7996         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
7997         reference to the print message of forced alignment.
7998         (vect_verify_datarefs_alignment): Update call to
7999         vect_supportable_dr_alignment.
8000         (vect_get_data_access_cost): New function.
8001         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
8002         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
8003         vect_peeling_hash_choose_best_peeling): Likewise.
8004         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
8005         to store all the accesses in the loop and find best possible access to
8006         align using peeling for known alignment case. For unknown alignment
8007         check if stores are preferred or if peeling is worthy.
8008         (vect_find_same_alignment_drs): Analyze pairs of loads too.
8009         (vect_supportable_dr_alignment): Add new argument and check aligned
8010         accesses according to it.
8011         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
8012         (cost_for_stmt): Call vect_get_stmt_cost.
8013         (vect_model_simple_cost): Likewise.
8014         (vect_model_store_cost): Call vect_get_stmt_cost. Call
8015         vect_get_store_cost to calculate the cost of the statement.
8016         (vect_get_store_cost): New function.
8017         (vect_model_load_cost): Call vect_get_stmt_cost. Call
8018         vect_get_load_cost to calculate the cost of the statement.
8019         (vect_get_load_cost): New function.
8020         (vectorizable_store): Update call to vect_supportable_dr_alignment.
8021         (vectorizable_load): Likewise.
8022         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
8023         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
8024         arguments. Handle unaligned store.
8025         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
8026         (rs6000_builtin_support_vector_misalignment): Return true for word and
8027         double word alignments for VSX.
8028         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
8029         vect_supportable_dr_alignment and builtin_vectorization_cost.
8030
8031 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8032
8033         PR target/44597
8034         * config/pa/predicates.md (prefetch_cc_operand): Remove.
8035         (prefetch_nocc_operand): Likewise.
8036         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
8037         (prefetch_20): New insn.
8038         (prefetch_cc): Remove.
8039         (prefetch_nocc): Likewise.
8040
8041 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8042
8043         * expr.c (vector_mode_valid_p): Move to c-common.c.
8044         * expr.h (vector_mode_valid_p): Do not declare here.
8045         * system.h: Poison GCC_EXPR_H in front-ends.
8046         * Makefile.in: Update dependencies.
8047
8048 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8049
8050         PR target/44705
8051         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
8052
8053 2010-07-03  Jan Hubicka  <jh@suse.cz>
8054
8055         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
8056         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
8057         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
8058         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
8059         Likewise.
8060
8061         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
8062         Update timevars.V
8063         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
8064         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
8065         TV_IPA_LTO_DECL_OUT): New.
8066         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
8067
8068 2010-07-03  Jan Hubicka  <jh@suse.cz>
8069
8070         * ipa-inline.c (update_edge_key): Break out from ...
8071         update_callers_keys): ... here;
8072         (update_callee_keys): Update only the edges from caller to callee.
8073         (update_all_calle_keys): Do what update_calle_keys did.
8074         (decide_inlining_of_small_functions): Avoid recomputing of all
8075         callees when badness increase.
8076
8077 2010-07-03  Jie Zhang  <jie@codesourcery.com>
8078
8079         * config/arm/arm.c (arm_attr_length_move_neon): New.
8080         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
8081         * config/arm/neon.md (define_mode_attr V_slen): Remove.
8082         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
8083         to compute length attribute.
8084
8085 2010-07-03  Jie Zhang  <jie@codesourcery.com>
8086
8087         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
8088         as predicate for operand 1 and remove its constraint.
8089         * config/arm/predicates.md (vfp_register_operand): New.
8090         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
8091         (*push_fp_multi): Likewise.
8092
8093 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
8094
8095         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
8096
8097 2010-07-03  Jan Hubicka  <jh@suse.cz>
8098
8099         * config/i386/i386.c (override_options): Revert accidental commit.
8100
8101 2010-07-02  Le-Chun Wu  <lcwu@google.com>
8102
8103         PR c++/44128
8104         * doc/invoke.texi: Update documentation of -Wshadow.
8105
8106 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
8107             Julian Brown  <julian@codesourcery.com>
8108             Sandra Loosemore <sandra@codesourcery.com>
8109
8110         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
8111         comparisons.  Adjust to take both operands.
8112         (arm_select_cc_mode): Handle DImode comparisons.
8113         (arm_gen_compare_reg): Generate a scratch register for DImode
8114         comparisons which require one.  Use xor for Thumb equality checks.
8115         (arm_const_double_by_immediates): New.
8116         (arm_print_operand): Allow 'Q' and 'R' for constants.
8117         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
8118         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
8119         arm_canonicalize_comparison.
8120         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
8121         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
8122         prototype.
8123         (arm_const_double_by_immediates): Declare.
8124         * config/arm/constraints.md (Di): New constraint.
8125         * config/arm/predicates.md (arm_immediate_di_operand)
8126         (arm_di_operand, cmpdi_operand): New.
8127         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
8128         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
8129         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
8130         (cstoredi4): Handle non-Cirrus also.
8131
8132 2010-07-02  Julian Brown  <julian@codesourcery.com>
8133             Sandra Loosemore <sandra@codesourcery.com>
8134
8135         PR target/43703
8136         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
8137         (smax<mode>3): Disable for NEON float modes when
8138         flag_unsafe_math_optimizations is false.
8139         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
8140         (*mul<mode>3_neon)
8141         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
8142         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
8143         for NEON float modes when flag_unsafe_math_optimizations is false.
8144         (quad_halves_<code>v4sf): Only enable if
8145         flag_unsafe_math_optimizations is true.
8146         * doc/invoke.texi (ARM Options): Add note about floating point
8147         vectorization requiring -funsafe-math-optimizations.
8148
8149 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
8150             Julian Brown  <julian@codesourcery.com>
8151
8152         * config/arm/neon.md (UNSPEC_VABA): Delete.
8153         (UNSPEC_VABAL): Delete.
8154         (UNSPEC_VABS): Delete.
8155         (UNSPEC_VMUL_N): Delete.
8156         (adddi3_neon): New.
8157         (subdi3_neon): New.
8158         (mul<mode>3add<mode>_neon): Make the pattern named.
8159         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
8160         (neon_vadd<mode>): Replace with define_expand, and move the remaining
8161         unspec parts...
8162         (neon_vadd<mode>_unspec): ...to this.
8163         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
8164         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
8165         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
8166         (neon_vaba<mode>): Rewrite in terms of vabd.
8167         (neon_vabal<mode>): Rewrite in terms of vabdl.
8168         (neon_vabs<mode>): Rewrite without unspec.
8169         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
8170         (*arm_subdi3): Likewise.
8171         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
8172         No_op attribute to disable assembly output checks.
8173         * config/arm/arm_neon.h: Regenerated.
8174         * doc/arm-neon-intrinsics.texi: Regenerated.
8175
8176 2010-07-02  Jan Hubicka  <jh@suse.cz>
8177
8178         * ipa-split.c (split_function): For aggregate values, set the return
8179         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
8180         *<retval> = fncall.part ().
8181         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
8182
8183 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
8184
8185         * config/arm/neon.md (UNSPEC_VAND): Delete.
8186         (UNSPEC_VBIC): Delete.
8187         (UNSPEC_VCLZ): Delete.
8188         (UNSPEC_VCNT): Delete.
8189         (UNSPEC_VEOR): Delete.
8190         (UNSPEC_VORN): Delete.
8191         (UNSPEC_VORR): Delete.
8192         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
8193         core registers too.
8194         (anddi3_neon): Likewise.
8195         (orndi3_neon): Likewise.
8196         (bicdi3_neon): Likewise.
8197         (xordi3_neon): Likewise.
8198         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
8199         rid of unspec and handle unused operand.
8200         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
8201         * config/arm/predicates.md (imm_for_neon_logic_operand):
8202         Require TARGET_NEON.
8203         (imm_for_neon_inv_logic_operand): Likewise.
8204         * config/arm/arm.md (define_split for logical_binary_operator):
8205         Disable for NEON registers.
8206         (anddi3): Add new define_expand, and rename the insn.  Disable
8207         this insn for NEON, where anddi3_neon now applies.
8208         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
8209         (iordi3): As for anddi3.
8210         (xordi3): Likewise.
8211         * config/arm/neon.ml (Vand): Split DImode variants and mark them
8212         as No_op to disable testing for exact instruction match.
8213         (Vorr): Likewise.
8214         (Veor): Likewise.
8215         (Vbic): Likewise.
8216         (Vorn): Likewise.
8217         * config/arm/arm_neon.h: Regenerated.
8218         * doc/arm-neon-intrinsics.texi: Regenerated.
8219
8220 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
8221
8222         * expr.h (emit_stack_probe): Declare.
8223         * explow.c (emit_stack_probe): Make global.
8224         (anti_adjust_stack_and_probe): Fix comments.
8225         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
8226         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8227         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8228         * config/sparc/sparc.c: Include except.h.
8229         (sparc_emit_probe_stack_range): New function.
8230         (output_probe_stack_range): Likewise.
8231         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
8232         built-in stack checking is enabled.
8233         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
8234         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
8235         (probe_stack_range): New insn.
8236
8237 2010-07-02  Richard Guenther  <rguenther@suse.de>
8238
8239         PR target/43958
8240         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
8241         for argument alignment.
8242
8243 2010-07-02  Jan Hubicka  <jh@suse.cz>
8244
8245         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
8246         walk backwards from entry_bb to check only those basic block of header
8247         that might lead to execution of split part.
8248         (consider_split) ... here.
8249         (find_return_bb): Allow assignment in return BB.
8250         (find_retval): New.
8251         (split_function): Fix name of cloned function; take care of updating
8252         return value in return_bb containing move.
8253
8254 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
8255
8256         PR target/44771
8257         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
8258         used variable insn.
8259
8260 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
8261
8262         * implicit-zee.c (combine_reaching_defs): Fix long lines.
8263         (is_set_with_extension_DI): Delete.
8264         (struct zero_extend_info): New structure.
8265         (add_removable_zero_extend): New function.
8266         (find_removable_zero_extends): Use note_stores to find SETs.
8267         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
8268
8269 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
8270
8271         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
8272         is_miss_rate_acceptable. Pull total_positions computation
8273         out of the loops.  Early return if miss_positions exceeds
8274         the acceptable threshold.
8275         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
8276         is_miss_rate_acceptable after renaming of compute_miss_rate.
8277
8278 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
8279
8280         PR middle-end/44576
8281         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
8282         of 1000) for miss rate if the address diference is greater than or
8283         equal to the cache line size (the two reference will never hit the
8284         same cache line).
8285
8286 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
8287
8288         PR target/42835
8289         * config/arm/arm-modes.def (CC_NOTB): New mode.
8290         * config/arm/arm.c (get_arm_condition_code): Handle it.
8291         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
8292         * config/arm/arm.md (subsi3_compare0_c): New pattern.
8293         (compare_scc): Now a define_and_split.  Add a number of extra
8294         splitters before it.
8295
8296         PR target/42172
8297         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
8298         and ZERO_EXTEND.
8299         (arm_rtx_costs_1): Likewise.
8300         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
8301         * config/arm/arm.md (is_arch6): New attribute.
8302         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
8303         extendqisi2): Tighten the code somewhat, avoiding invalid
8304         RTL to occur in the expander patterns.
8305         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
8306         (thumb1_zero_extendhisi2_v6): Delete.
8307         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
8308         (thumb1_extendhisi2_v6): Delete.
8309         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
8310         (thumb1_extendqisi2_v6): Delete.
8311         (zero_extendhisi2 for register input splitter): New.
8312         (zero_extendqisi2 for register input splitter): New.
8313         (thumb1_extendhisi2 for register input splitter): New.
8314         (extendhisi2 for register input splitter): New.
8315         (extendqisi2 for register input splitter): New.
8316         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
8317         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
8318         and add support for a register alternative requiring a split.
8319         (thumb1_zero_extendqisi2): Likewise.
8320         (arm_zero_extendqisi2): Likewise.
8321         (arm_extendhisi2): Likewise.
8322         (arm_extendqisi2): Likewise.
8323
8324 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
8325
8326         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
8327         instead of an unspec.
8328         (neon_expand_vector_init): Likewise.
8329         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
8330         (UNSPEC_VDUP_LANE): Delete.
8331         (UNSPEC VDUP_N): Delete.
8332         (UNSPEC_VGET_HIGH): Delete.
8333         (UNSPEC_VGET_LANE): Delete.
8334         (UNSPEC_VGET_LOW): Delete.
8335         (UNSPEC_VMVN): Delete.
8336         (UNSPEC_VSET_LANE): Delete.
8337         (V_double_vector_mode): New.
8338         (vec_set<mode>_internal): Make code emitted match that for the
8339         corresponding intrinsics.
8340         (vec_setv2di_internal): Likewise.
8341         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
8342         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
8343         (neon_vset_lane<mode>): Combine double and quad patterns and
8344         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
8345         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
8346         (neon_vdup_n<mode>): Rewrite RTL without unspec.
8347         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
8348         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
8349         with neon_vdup_lanev2di, adjusting the pattern from the latter
8350         to be predicable for consistency.
8351         (neon_vdup_lane<mode>_internal): New.
8352         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
8353         to avoid using an unspec.
8354         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
8355         (neon_vdup_lanev2di): Turn into a define_expand.
8356         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
8357         (neon_vget_high<mode>): Replace with....
8358         (neon_vget_highv16qi): New pattern using canonical RTL.
8359         (neon_vget_highv8hi): Likewise.
8360         (neon_vget_highv4si): Likewise.
8361         (neon_vget_highv4sf): Likewise.
8362         (neon_vget_highv2di): Likewise.
8363         (neon_vget_low<mode>): Replace with....
8364         (neon_vget_lowv16qi): New pattern using canonical RTL.
8365         (neon_vget_lowv8hi): Likewise.
8366         (neon_vget_lowv4si): Likewise.
8367         (neon_vget_lowv4sf): Likewise.
8368         (neon_vget_lowv2di): Likewise.
8369
8370         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
8371         test for this emitting vmov.
8372         (Vset_lane): Likewise.
8373         (Vdup_n): Likewise.
8374         (Vmov_n): Likewise.
8375
8376         * doc/arm-neon-intrinsics.texi: Regenerated.
8377
8378 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
8379
8380         * config/arm/neon.md (vec_extractv2di): Correct error in register
8381         numbering to reconcile with neon_vget_lanev2di.
8382
8383 2010-07-02  Richard Guenther  <rguenther@suse.de>
8384
8385         * tree-ssa-structalias.c (pt_solution_set_var): New function.
8386         * tree-ssa-alias.h (pt_solution_set_var): Declare.
8387         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
8388         points-to information.
8389
8390 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
8391
8392         * config/s390/s390.c (override_options): Adopt prefetching
8393         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
8394
8395 2010-07-02  Jan Hubicka  <jh@suse.cz>
8396
8397         * df-problems.c (df_kill_notes): Do not collect dead  notes.
8398         (df_set_note): Just call add_reg_note.
8399         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
8400         df_create_unused_note): Do not deal with lists of old notes.
8401         (df_note_bb_compute): Likewise.
8402
8403 2010-07-02  Richard Guenther  <rguenther@suse.de>
8404
8405         * tree-ssa-structalias.c (find_func_aliases): Handle
8406         pointer alignment via BIT_AND_EXPR.
8407         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
8408
8409 2010-07-02  Richard Guenther  <rguenther@suse.de>
8410
8411         * tree-data-ref.c (initialize_data_dependence_relation): Handle
8412         mismatching number of dimensions properly.
8413
8414 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8415
8416         PR target/44707
8417         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
8418         (lo_sum (high ...) ...) patterns generated by earlier passes.
8419
8420 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8421
8422         * doc/install.texi (Prerequisites): Document Perl requirement on
8423         Solaris 2.
8424         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
8425
8426 2010-07-02  Richard Guenther  <rguenther@suse.de>
8427
8428         PR middle-end/44777
8429         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
8430
8431 2010-07-02  Jan Hubicka  <jh@suse.cz>
8432
8433         PR middle-end/44706
8434         * predict.c (predict_paths_for_bb): Handle case when control dependence
8435         BB has only abnormal edges.
8436
8437 2010-07-02  Richard Guenther  <rguenther@suse.de>
8438
8439         PR tree-optimization/44748
8440         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
8441         the embedded conversion in MEM_REFs.
8442
8443 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
8444
8445         * reload.c: Include toplev.h.
8446         * recog.c:  Likewise.
8447         * Makefile.in: Adjust dependencies.
8448
8449 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
8450
8451         PR debug/44694
8452         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
8453         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
8454
8455 2010-07-01  Richard Guenther  <rguenther@suse.de>
8456
8457         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
8458         types for offsets.
8459
8460 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
8461
8462         PR target/44732
8463         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
8464         Fix argument types.
8465
8466 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
8467
8468         PR target/44727
8469         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
8470         Make sure operand 0 dies.
8471
8472 2010-07-01  Richard Guenther  <rguenther@suse.de>
8473
8474         PR middle-end/42834
8475         PR middle-end/44468
8476         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
8477         * doc/generic.texi (References to storage): Document MEM_REF.
8478         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
8479         (print_call_name): Likewise.
8480         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
8481         (build_simple_mem_ref_loc): New function.
8482         (mem_ref_offset): Likewise.
8483         * tree.h (build_simple_mem_ref_loc): Declare.
8484         (build_simple_mem_ref): Define.
8485         (mem_ref_offset): Declare.
8486         * fold-const.c: Include tree-flow.h.
8487         (operand_equal_p): Handle MEM_REF.
8488         (build_fold_addr_expr_with_type_loc): Likewise.
8489         (fold_comparison): Likewise.
8490         (fold_unary_loc): Fold
8491         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
8492         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
8493         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
8494         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
8495         (ptr_deref_may_alias_ref_p_1): Likewise.
8496         (ao_ref_base_alias_set): Properly differentiate base object for
8497         offset and TBAA.
8498         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
8499         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
8500         (indirect_refs_may_alias_p): Likewise.
8501         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
8502         chasing code.
8503         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
8504         (call_may_clobber_ref_p_1): Likewise.
8505         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
8506         * expr.c (expand_assignment): Handle MEM_REF.
8507         (store_expr): Handle MEM_REFs from STRING_CSTs.
8508         (store_field): If expanding a MEM_REF of a non-addressable
8509         decl use bitfield operations.
8510         (get_inner_reference): Handle MEM_REF.
8511         (expand_expr_addr_expr_1): Likewise.
8512         (expand_expr_real_1): Likewise.
8513         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
8514         * alias.c (ao_ref_from_mem): Handle MEM_REF.
8515         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
8516         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
8517         (dr_analyze_indices): Likewise.
8518         (dr_analyze_alias): Likewise.
8519         (object_address_invariant_in_loop_p): Likewise.
8520         * gimplify.c (mark_addressable): Handle MEM_REF.
8521         (gimplify_cond_expr): Build MEM_REFs.
8522         (gimplify_modify_expr_to_memcpy): Likewise.
8523         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
8524         (gimple_fold_indirect_ref): Adjust.
8525         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
8526         * tree.def (MEM_REF): New tree code.
8527         * tree-dfa.c: Include toplev.h.
8528         (get_ref_base_and_extent): Handle MEM_REF.
8529         (get_addr_base_and_unit_offset): New function.
8530         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
8531         * gimple-fold.c (may_propagate_address_into_dereference): Handle
8532         MEM_REF.
8533         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
8534         accesses if the array has just one dimension.  Remove always true
8535         parameter.  Do not require type compatibility here.
8536         (maybe_fold_offset_to_component_ref): Remove.
8537         (maybe_fold_stmt_indirect): Remove.
8538         (maybe_fold_reference): Remove INDIRECT_REF handling.
8539         Fold back to non-MEM_REF.
8540         (maybe_fold_offset_to_address): Simplify.  Deal with type
8541         mismatches here.
8542         (maybe_fold_reference): Likewise.
8543         (maybe_fold_stmt_addition): Likewise.  Also handle
8544         &ARRAY + I in addition to &ARRAY[0] + I.
8545         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
8546         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
8547         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
8548         * tree-ssa.c (useless_type_conversion_p): Make most pointer
8549         conversions useless.
8550         (warn_uninitialized_var): Handle MEM_REF.
8551         (maybe_rewrite_mem_ref_base): New function.
8552         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
8553         to SSA form.
8554         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
8555         INDIRECT_REF handling.
8556         (copy_tree_body_r): Handle MEM_REF.
8557         * gimple.c (is_gimple_addressable): Adjust.
8558         (is_gimple_address): Likewise.
8559         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
8560         invariant base are invariant.
8561         (is_gimple_min_lval): Adjust.
8562         (is_gimple_mem_ref_addr): New function.
8563         (get_base_address): Handle MEM_REF.
8564         (count_ptr_derefs): Likewise.
8565         (get_base_loadstore): Likewise.
8566         * gimple.h (is_gimple_mem_ref_addr): Declare.
8567         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
8568         * tree-cfg.c (verify_address): New function, split out from ...
8569         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
8570         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
8571         INDIRECT_REFs.
8572         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
8573         INDIRECT_REF.  Allow conversions.
8574         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
8575         a register does not change its size.
8576         (verify_types_in_gimple_reference): Verify MEM_REF.
8577         (verify_gimple_assign_single): Disallow INDIRECT_REF.
8578         Handle MEM_REF.
8579         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
8580         New.
8581         (mark_address_taken): Handle MEM_REF.
8582         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
8583         (get_asm_expr_operands): Pass opf_not_non_addressable.
8584         (get_expr_operands): Handle opf_[not_]non_addressable.
8585         Handle MEM_REF.  Remove INDIRECT_REF handling.
8586         * tree-vrp.c (check_array_ref): Handle MEM_REF.
8587         (search_for_addr_array): Likewise.
8588         (check_array_bounds): Likewise.
8589         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
8590         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
8591         (ref_always_accessed_p): Likewise.
8592         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
8593         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
8594         Handle MEM_REF.
8595         * cgraphbuild.c (mark_load): Properly check for NULL result
8596         from get_base_address.
8597         (mark_store): Likewise.
8598         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
8599         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
8600         handling for MEM_REF.
8601         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
8602         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
8603         * builtins.c (stabilize_va_list_loc): Use the function ABI
8604         valist type if we couldn't canonicalize the argument type.
8605         Always dereference with the canonical va-list type.
8606         (maybe_emit_free_warning): Handle MEM_REF.
8607         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
8608         memmove to memcpy.
8609         * builtins.c (fold_builtin_memory_op): Use ref-all types
8610         for all memcpy foldings.
8611         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
8612         (build_outer_var_ref): Likewise.
8613         (scan_omp_1_op): Likewise.
8614         (lower_rec_input_clauses): Likewise.
8615         (lower_lastprivate_clauses): Likewise.
8616         (lower_reduction_clauses): Likewise.
8617         (lower_copyprivate_clauses): Likewise.
8618         (expand_omp_atomic_pipeline): Likewise.
8619         (expand_omp_atomic_mutex): Likewise.
8620         (create_task_copyfn): Likewise.
8621         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
8622         Remove old union trick.  Initialize constant offsets.
8623         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
8624         INDIRECT_REF.  Init base_alias_set properly.
8625         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
8626         (vn_reference_fold_indirect): Adjust for MEM_REFs.
8627         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
8628         for ARRAY_REFs.
8629         (may_insert): Remove.
8630         (visit_reference_op_load): Do not test may_insert.
8631         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
8632         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
8633         a field to store the constant offset this op applies.
8634         (run_scc_vn): Adjust prototype.
8635         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
8636         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
8637         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
8638         bother about volatile qualifiers on pointers.
8639         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
8640         * tree-ssa-loop-ivopts.c
8641         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
8642         (strip_offset_1): Likewise.
8643         (find_interesting_uses_address): Replace INDIRECT_REF handling with
8644         MEM_REF handling.
8645         (get_computation_cost_at): Likewise.
8646         * ipa-pure-const.c (check_op): Handle MEM_REF.
8647         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
8648         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
8649         and constants.
8650         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
8651         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
8652         (eliminate_local_variables_1): Likewise.
8653         (create_call_for_reduction_1): Likewise.
8654         (create_loads_for_reductions): Likewise.
8655         (create_loads_and_stores_for_name): Likewise.
8656         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
8657         (ssa_accessed_in_tree): Handle MEM_REF.
8658         (ssa_accessed_in_assign_rhs): Likewise.
8659         (update_type_size): Likewise.
8660         (analyze_accesses_for_call_stmt): Likewise.
8661         (analyze_accesses_for_assign_stmt): Likewise.
8662         (transform_access_sites): Likewise.
8663         (transform_allocation_sites): Likewise.
8664         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
8665         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
8666         not handle INDIRECT_REF.
8667         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
8668         (cond_store_replacement): Likewise.
8669         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
8670         MEM_REF, no not handle INDIRECT_REFs.
8671         (insert_into_preds_of_block): Properly initialize avail.
8672         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
8673         for ARRAY_REFs.  Properly handle reference lookups that
8674         require a bit re-interpretation.
8675         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
8676         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
8677         (build_ref_for_offset_1): Remove.
8678         (build_ref_for_offset): Build MEM_REFs.
8679         (gate_intra_sra): Disable for now.
8680         (sra_ipa_modify_expr): Handle MEM_REF.
8681         (ipa_early_sra_gate): Disable for now.
8682         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
8683         MEM_REF handling.
8684         (disqualify_base_of_expr): Likewise.
8685         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
8686         MEM_REF handling.
8687         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
8688         Use mem_ref_offset.  Remove bogus folding.
8689         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
8690         (make_fancy_name_1): Add support for MEM_REF.
8691         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
8692         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
8693         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
8694         (compute_complex_ancestor_jump_func): Likewise.
8695         (ipa_analyze_virtual_call_uses): Likewise.
8696         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
8697         INDIRECT_REF folding with more generalized MEM_REF folding.
8698         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
8699         (forward_propagate_addr_into_variable_array_index): Also handle
8700         &ARRAY + I in addition to &ARRAY[0] + I.
8701         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
8702         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
8703         creates assignments with overlap.
8704         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
8705         (get_frame_field): Likewise.
8706         (get_nonlocal_debug_decl): Likewise.
8707         (convert_nonlocal_reference_op): Likewise.
8708         (struct nesting_info): Add mem_refs pointer-set.
8709         (create_nesting_tree): Allocate it.
8710         (convert_local_reference_op): Insert to be folded mem-refs.
8711         (fold_mem_refs): New function.
8712         (finalize_nesting_tree_1): Perform defered folding of mem-refs
8713         (free_nesting_tree): Free the pointer-set.
8714         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
8715         (vectorizable_load): Likewise.
8716         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
8717         (propagate_with_phi): Likewise.
8718         * tree-object-size.c (addr_object_size): Handle MEM_REFs
8719         instead of INDIRECT_REFs.
8720         (compute_object_offset): Handle MEM_REF.
8721         (plus_stmt_object_size): Handle MEM_REF.
8722         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
8723         for &MEM_REF.
8724         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
8725         (symbol_marked_for_renaming): Likewise.
8726         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
8727         (fold-const.o): Add $(TREE_FLOW_H).
8728         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
8729         (find_func_clobbers): Likewise.
8730         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
8731         (decompose_access): Likewise.
8732         (replace_field_acc): Likewise.
8733         (replace_field_access_stmt): Likewise.
8734         (insert_new_var_in_stmt): Likewise.
8735         (get_stmt_accesses): Likewise.
8736         (reorg_structs_drive): Disable.
8737         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
8738         (ix86_canonical_va_list_type): Likewise.
8739
8740 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
8741
8742         PR other/44566
8743         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
8744         * target.def (struct gcc_target): Replace enum reg_class with
8745         reg_class_t in hook argument / return types.
8746         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
8747         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
8748         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
8749         * targhooks.h (default_branch_target_register_class): Likewise.
8750         (default_ira_cover_classes, default_secondary_reload): Likewise.
8751         (default_memory_move_cost, default_register_move_cost): Likewise.
8752         * targhooks.c (default_branch_target_register_class): Likewise.
8753         (default_ira_cover_classes, default_secondary_reload): Likewise.
8754         (default_memory_move_cost, default_register_move_cost): Likewise.
8755         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
8756         * bt-load.c (branch_target_load_optimize): Likewise.
8757         * ira.c (setup_cover_and_important_classes): Likewise.
8758         * ira-costs.c (copy_cost): Likewise.
8759         * reload1.c (emit_input_reload_insns): Likewise.
8760         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
8761         * config/frv/frv.c (frv_secondary_reload): Likewise.
8762         * config/s390/s390.c (s390_secondary_reload): Likewise.
8763         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
8764         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
8765         (ix86_register_move_cost): Likewise.
8766         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
8767         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
8768         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
8769         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
8770         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
8771         (rs6000_ira_cover_classes): Likewise.
8772         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
8773         * config/picochip/picochip-protos.h (picochip_secondary_reload):
8774         Likewise.
8775         * config/pa/pa.c (pa_secondary_reload): Likewise.
8776         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
8777         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
8778         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
8779         * doc/tm.texi: Regenerate.
8780
8781 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
8782
8783         PR bootstrrap/44726
8784         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
8785         use.
8786         (build_alias_set_optimal_p): Likewise.
8787         (build_base_obj_set_for_drs): Likewise.
8788
8789 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
8790
8791         * target.def: Remove comment about licensing problems of function
8792         declarations.
8793
8794         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
8795         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
8796         * doc/tm.texi: Regenerate.
8797
8798         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
8799         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
8800
8801         * target.def (enum_va_list_p): Use DEFHOOK.
8802         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
8803         Rename ptype to ptree.
8804         * doc/tm.texi: Regenerate.
8805
8806         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
8807         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
8808         * doc/tm.texi: Regenerate.
8809
8810         * target.def (memory_move_cost): Use DEFHOOK.
8811         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
8812         Rename regclass AKA class to rclass.
8813         * doc/tm.texi: Regenerate.
8814
8815         * target.def (pragma_parse): Use DEFHOOK.
8816         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
8817         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
8818         * doc/tm.texi: Regenerate.
8819
8820         * target.def (pass_by_reference): Use DEFHOOK.
8821         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
8822         * doc/tm.texi: Regenerate.
8823
8824         * target.def (resolve_overloaded_builtin): Rename params to arglist.
8825         Use DEFHOOK.
8826         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
8827         * doc/tm.texi: Regenerate.
8828
8829         * target.def (return_pops_args): Use DEFHOOK.
8830         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
8831         Rename stack-size to size.
8832         * doc/tm.texi: Regenerate.
8833
8834         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
8835         last-sched_cycle to last_clock, cur_cycle to clock.
8836         * doc/tm.texi.in: Use @hook.
8837         * doc/tm.texi: Regenerate.
8838
8839         * target.def (print_operand, print_operand_address): Update comment.
8840         (print_operand_punct_valid_p): Likewise.
8841
8842 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8843
8844         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
8845         to rtl.h.
8846         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
8847         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
8848         * rtl-error.h: New.
8849         * regrename.c: Do not include toplev.h. Include rtl-error.h.
8850         * rtl-error.c: Likewise.
8851         * reload.c: Likewise.
8852         * recog.c:  Likewise.
8853         * sel-sched.c: Likewise.
8854         * function.c: Likewise.
8855         * reg-stack.c: Likewise.
8856         * cfgrtl.c: Likewise.
8857         * reload1.c: Likewise.
8858         * final.c: Include rtl-error.
8859         * Makefile.in: Adjust dependencies.
8860
8861 2010-06-30  Jan Hubicka  <jh@suse.cz>
8862
8863         PR middle-end/PR44706
8864         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
8865         to return the value.
8866
8867 2010-06-30  Michael Matz  <matz@suse.de>
8868
8869         PR bootstrap/44699
8870         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
8871         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
8872         a gimple reg, attach the original VDEF to the last store in the
8873         sequence.
8874
8875 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
8876
8877         PR other/44034
8878         * config/darwin.c (darwin_override_options): Use renamed
8879         targetm.asm_out.emit_unwind_label.
8880
8881 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
8882
8883         PR tree-optimization/39799
8884         * tree-inline.c (remap_ssa_name): Initialize variable only if
8885         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
8886
8887 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
8888
8889         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
8890
8891 2010-06-30  Richard Guenther  <rguenther@suse.de>
8892
8893         PR target/44722
8894         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
8895         against oscillation with reverse peephole2.
8896
8897 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
8898
8899         PR target/44721
8900         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
8901         Fix last commit.
8902
8903 2010-06-30  Nick Clifton  <nickc@redhat.com>
8904
8905         * config/rx/rx-modes.def: New file.
8906         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
8907         (CC_REGNUM): Define.
8908         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
8909         register.
8910         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
8911         (SELECT_CC_MODE): Define.
8912         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
8913         (reg:CC CC_REG) instead of (cc0).
8914         (attr "cc"): Delete.
8915         (cbranchsi4): Do not split compare and branch here. Instead move
8916         it to...
8917         (cbranchsi4_<code>): ... here.  New patterns.
8918         (cmpsi): Call rx-compare_redundant to find out if it is necessary
8919         to emit the compare instruction.
8920         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
8921         cc_status flags.
8922         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
8923         FIRST_PSEUDO_REGNUM.
8924         (rx_expand_prologue, rx_expand_epilogue): Likewise.
8925         (rx_notice_update_cc): Delete.
8926         (rx_cc_modes_compatible): New function.
8927         (flags_needed_for_conditional): New function.
8928         (flags_from_mode): New function.
8929         (rx_compare_redundant): New function - scans backwards through
8930         insn list to find out if condition flags are already set correctly.
8931         (TARGET_CC_MODES_COMPATIBLE): Define.
8932         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
8933
8934         * config/rx/rx.h (BRANCH_COST): Define.
8935         (REGISTER_MOVE_COST): Define.
8936         * config/rx/predicates (rx_source_operand): Allow all constant types.
8937         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
8938         (tstsi4): New pattern.
8939         * config/rx/rx.c (rx_memory_move_cost): Define.
8940         (TARGET_MEMORY_MOVE_COST): Define.
8941
8942 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8943
8944         * tree.h (block_may_fallthru): Declare here.
8945         * tree-flow.h (block_may_fallthru): Do not declare here.
8946         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
8947         bitmap.h
8948         * Makefile.in (c-typeck.o): Update dependencies.
8949
8950 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
8951
8952         PR debug/44694
8953         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
8954         * cselib.c (cfa_base_preserved_regno): New static variable.
8955         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
8956         of REGNO (cfa_base_preserved_val->locs->loc).
8957         (cselib_preserve_cfa_base_value): Add regno argument, set
8958         cfa_base_preserved_regno to it.
8959         (cselib_invalidate_regno): Allow removal of registers other than
8960         cfa_base_preserved_regno from cfa_base_preserved_val.
8961         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
8962         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
8963         of MEM addresses, if not on LHS.
8964         (reverse_op): Don't add reverse ops for cfa_base_rtx.
8965         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
8966
8967 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
8968
8969         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
8970         static variables.
8971         (peep2_buf_position): New static function.
8972         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
8973         peephole2_optimize): Use it.
8974         (peep2_attempt, peep2_update_life): New static functions, broken out
8975         of peephole2_optimize.
8976         (peep2_fill_buffer): New static function.
8977         (peephole2_optimize): Change the main loop to try to fill the buffer
8978         with the maximum number of insns before matching them against
8979         peepholes.  Use a forward scan.  Remove special case for targets with
8980         conditional execution.
8981         * genrecog.c (change_state): Delete dead code.
8982         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
8983         Rewrite so as not to expect the second insn to have had a peephole
8984         applied yet.
8985
8986 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
8987
8988         * genhooks.c (emit_findices): Cast field precision to int.
8989         (emit_documentation): Likewise.
8990
8991 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
8992
8993         PR tree-optimization/43801
8994         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
8995         if old_decl was DECL_ONE_ONLY.
8996
8997         PR debug/44668
8998         * dwarf2out.c (add_accessibility_attribute): New function.
8999         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
9000         instead of adding DW_AT_accessibility manually.
9001         (gen_enumeration_type_die, gen_struct_or_union_type_die,
9002         gen_typedef_die): Use it.
9003
9004 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9005
9006         * vmsdbgout.c (full_name): Just output the file name if not native.
9007
9008 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9009
9010         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
9011         (funcnam_table): New static table.
9012         (funcnum_table): New static table.
9013         (write_rtnbeg): Write value saved in funcnum_table.
9014         (write_rtnend): Write value saved in funcnum_table.
9015         (vmsdbgout_begin_function): Save current function info in
9016         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
9017         (vmsdbgout_finish): Iterate over funcnum_table.
9018
9019 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9020
9021         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
9022         (vmsdbgout_type_decl): Declare
9023         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
9024         (FUNC_EPILOGUE_LABEL): New macro
9025         (vmsdbgout_begin_epilogue): New function.
9026         (vmsdbgout_type_decl): New function.
9027
9028 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9029
9030         * vmsdbg.h: Update copyright.
9031
9032 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9033
9034         * vmsdbg.h (DST_K_TBG): New DST constant.
9035         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
9036         (write_modbeg): Cast module_language to avoid warning.
9037         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
9038
9039 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
9040
9041         PR other/44034
9042         * target.def, doc/tm.texi.in, genhooks.c: New files.
9043         * target.h: Instead of defining individual hook members,
9044         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
9045         include target.def.
9046         * target-def.h: Instead of defining individual hook initializers,
9047         include target-hooks-def.h.
9048         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
9049         targetm.live_on_entry -> targetm.extra_live_on_entry
9050         targetm.sched.md_finish ->targetm.sched.finish
9051         targetm.sched.md_init -> targetm.sched.init
9052         targetm.sched.md_init_global -> targetm.sched.init_global
9053         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
9054         targetm.asm_out.except_table_label ->
9055           targetm.asm_out.emit_except_table_label
9056         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
9057         targetm.target_help -> targetm.help
9058         targetm.vectorize.builtin_support_vector_misalignment ->
9059           targetm.vectorize.support_vector_misalignment
9060         targetm.file_start_app_off -> targetm.asm_file_start_app_off
9061         targetm.file_start_file_directive ->
9062          targetm.asm_file_start_file_directive
9063         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
9064         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
9065         * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
9066         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
9067           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
9068         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
9069           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
9070         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
9071         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
9072         * Makefile.in (TARGET_H): Depend on target.def.
9073         (TARGET_DEF_H): Depend on target-hooks-def.h.
9074         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
9075         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
9076         * doc/tm.texi: Regenerate.
9077
9078         * Makefile.in (s-tm-texi): Remove stray tab / rule.
9079
9080         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
9081         (targetm.sched.init): Likewise.
9082
9083 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
9084
9085         PR bootstrap/44713
9086         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
9087         (function_arg_advance_32): Const-ify TYPE parameter.
9088         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
9089         (ix86_function_arg_advance): Change type of NAMED to bool.
9090         (function_arg_32): Const-ify CUM and TYPE parameters.
9091         (function_arg_64): Likewise.  Change type of NAMED to bool.
9092         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
9093         to bool.
9094         (ix86_function_arg): Change type of NAMED to bool.
9095         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
9096         last argument as a bool.
9097
9098 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
9099
9100         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
9101         (OVERRIDE_OPTIONS): Add note of obsolescence.
9102         Replace references with references to TARGET_OPTION_OVERRIDE.
9103         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
9104          the macro).
9105         * targhooks.c (default_target_option_override): New function.
9106         * targhooks.h (default_target_option_override): Declare.
9107         * target.h (struct gcc_target): Add override member to
9108         target_option member.
9109         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
9110         targetm.target_option.override call.
9111         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
9112         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
9113
9114 2010-06-29  Jan Hubicka  <jh@suse.cz>
9115
9116         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
9117
9118 2010-06-29  Jan Hubicka  <jh@suse.cz>
9119
9120         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
9121         unreachable.
9122         (rebuild_frequencies): New function.
9123         * predict.h (rebuild_frequencies): Declare.
9124         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
9125         entry block and edge reaching new_entry.
9126         (tree_function_versioning): When doing partial cloning, rebuild
9127         frequencies when done.
9128         * passes.c (execute_function_todo): Use rebild_frequencies.
9129
9130 2010-06-29  Richard Guenther  <rguenther@suse.de>
9131
9132         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
9133         * tree-flow.h (enum noalias_state): Remove.
9134         (struct var_ann_d): Remove noalias_state member.
9135
9136 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
9137
9138         PR target/43902
9139         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
9140         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
9141         (maddhidi4): Likewise.
9142
9143         Revert parts of the change for PR25130.
9144         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
9145         MEM_ALIAS_SET.
9146
9147 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
9148
9149         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
9150         targetm.calls.function_incoming_arg, and
9151         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
9152         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
9153         * target.h (struct gcc_target): Add function_arg_advance,
9154         function_arg, and function_incoming_arg fields.
9155         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
9156         (TARGET_FUNCTION_INCOMING_ARG): Define.
9157         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
9158         and TARGET_FUNCTION_INCOMING_ARG.
9159         * targhooks.h (default_function_arg_advance): Declare.
9160         (default_function_arg, default_function_incoming_arg): Declare.
9161         * targhooks.c (default_function_arg_advance): New function.
9162         (default_function_arg, default_function_incoming_arg): New function.
9163         * config/i386/i386.c (function_arg_advance): Rename to...
9164         (ix86_function_arg_advance): ...this.  Make static.
9165         (function_arg): Rename to...
9166         (ix86_function_arg): ...this.  Make static.
9167         (TARGET_FUNCTION_ARG_ADVANCE): Define.
9168         (TARGET_FUNCTION_ARG): Define.
9169         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
9170         (FUNCTION_ARG): Delete.
9171         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
9172         (function_arg): Delete prototype.
9173
9174 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
9175
9176         * reginfo.c (init_reg_sets_1): Adjust comments.
9177         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
9178         * calls.c (prepare_call_address): Likewise.
9179         (emit_call_1): Use targetm.calls.return_pops_args.
9180         (expand_call): Likewise.
9181         * function.c (assign_parms): Likewise.
9182         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
9183         * target.h (struct gcc_target) [struct calls]: Add
9184         return_pops_args field.
9185         * targhooks.h (default_return_pops_args): Declare.
9186         * targhooks.c (default_return_pops_args): Define.
9187         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
9188         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
9189         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
9190         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
9191         documentation.
9192         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
9193         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
9194         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
9195         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
9196         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
9197         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
9198         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
9199         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
9200         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
9201         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
9202         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
9203         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
9204         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
9205         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
9206         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
9207         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
9208         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
9209         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
9210         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
9211         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
9212         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
9213         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
9214         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
9215         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
9216         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
9217         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
9218         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
9219         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
9220         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
9221         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
9222         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
9223         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
9224         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
9225         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
9226         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
9227         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
9228         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
9229         * config/i386/i386.c (ix86_return_pops_args): Make static.
9230         Constify arguments.
9231         (TARGET_RETURN_POPS_ARGS): Define.
9232         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
9233         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
9234         (TARGET_RETURN_POPS_ARGS): Define.
9235         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
9236         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
9237         (TARGET_RETURN_POPS_ARGS): Define.
9238
9239 2010-06-29  Richard Guenther  <rguenther@suse.de>
9240
9241         PR middle-end/44667
9242         * tree-inline.c (initialize_inlined_parameters): Make sure
9243         to remap the inlined parameter variable substitutions types.
9244
9245 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
9246
9247         PR rtl-optimization/44659
9248         * combine.c (make_compound_operation) <SUBREG>: Do not return the
9249         result of force_to_mode if it partially re-expanded the compound.
9250
9251 2010-06-28  Jan Hubicka  <jh@suse.cz>
9252
9253         PR middle-end/44671
9254         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
9255         RESULT_DECL.
9256
9257 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
9258
9259         * double-int.h (force_fit_type_double): Remove declaration.
9260         * double-int.c (force_fit_type_double): Move to tree.c.
9261         * tree.h (force_fit_type_double): Declare.
9262         * tree.h (force_fit_type_double): Moved from double-int.c. Use
9263         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
9264         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
9265         * convert.c (convert_to_pointer): Adjust call to
9266         force_fit_type_double.
9267         * tree-vrp.c (extract_range_from_assert,
9268         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
9269         * fold-const.c: Update comment.
9270         (int_const_binop, fold_convert_const_int_from_int,
9271         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
9272         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
9273         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
9274         round_up_loc): Adjust call to force_fit_type_double.
9275
9276 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9277
9278         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
9279
9280 2010-06-28  Martin Jambor  <mjambor@suse.cz>
9281
9282         * tree-sra.c (convert_callers): New parameter, change fndecls of
9283         recursive calls.
9284         (modify_function): Pass the old decl to convert_callers.
9285
9286 2010-06-28  Martin Jambor  <mjambor@suse.cz>
9287
9288         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
9289         ipa_check_create_node_params and ipa_initialize_node_params with
9290         checking asserts they are not necessary.
9291
9292 2010-06-28  Jan Hubicka  <jh@suse.cz>
9293
9294         PR tree-optimization/44687
9295         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
9296
9297 2010-06-28  Martin Jambor  <mjambor@suse.cz>
9298
9299         PR c++/44535
9300         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
9301         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
9302         instead of BINFO_BASE_BINFO.
9303
9304 2010-06-28  Michael Matz  <matz@suse.de>
9305
9306         PR middle-end/44592
9307         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
9308         proper VDEF chain for intermediate stores in the sequence.
9309
9310 2010-06-28  Jan Hubicka  <jh@suse.cz>
9311
9312         PR tree-optimization/44357
9313         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
9314         uninlinable functions.
9315
9316 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9317
9318         * config.gcc (powerpc*-*-*): Handle titan.
9319         * config/rs6000/rs6000.c (titan_cost): New costs.
9320         (rs6000_override_options): Add "titan" to processor_target_table.
9321         Add Titan to branch alignment logic.
9322         Correctly set rs6000_cost for titan.
9323         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
9324         * config/rs6000/titan.md: New file.
9325         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
9326
9327 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
9328
9329         * tree-browser.c (TB_history_stack): Convert to a VEC.
9330         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
9331         (TB_history_prev): Likewise.
9332
9333 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
9334
9335         * vec.h (vec_heap_free): Add parentheses around free.
9336
9337 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
9338
9339         * system.h: Poison GCC_EXCEPT_H for front-end files.
9340
9341         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
9342         langhook.
9343         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
9344         Define to NULL by default.
9345         * except.h: Define GCC_EXCEPT_H.
9346         (doing_eh): Remove prototype.
9347         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
9348         (lang_protect_cleanup_actions): Remove.
9349         * except.c (lang_protect_cleanup_actions): Remove.
9350         (doing_eh): Remove.
9351         (gen_eh_region): Don't check doing_eh here.
9352         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
9353         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
9354         instead of lang_protect_cleanup_actions.
9355         * omp-low.c (maybe_catch_exception): Likewise.
9356         * Makefile.in: Update dependencies.
9357
9358 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
9359
9360         * cgraph.h (struct varpool_node): new used_from_object_file flag.
9361         (struct cgraph_local_info): new used_from_object_file flag.
9362         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
9363         (cgraph_clone_node): initialize used_from_object_file.
9364         (cgraph_create_virtual_clone): initialize used_from_object_file.
9365         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
9366         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
9367         when compiling with -fwhole-program.
9368         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
9369         internal resolver.
9370         * ipa.c (function_and_variable_visibility): Set externally_visible
9371         flag of varpool_node if used_from_object_file flag is set.
9372         (cgraph_externally_visible_p): check used_from_object_file flag.
9373         * doc/invoke.texi (-fwhole-program option): Change description of
9374         externally_visible attribute accordingly.
9375         * doc/extend.texi (externally_visible): Ditto.
9376
9377 2010-06-27  Jan Hubicka  <jh@suse.cz>
9378
9379         * params.def (max-inline-insns-auto): Default to 40.
9380         * doc/invoke.texi (max-inline-insns-auto): Document the change.
9381
9382 2010-06-27  Jan Hubicka  <jh@suse.cz>
9383
9384         PR middle-end/44671
9385         PR middle-end/44686
9386         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
9387         signature change.
9388         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
9389         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
9390
9391 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
9392
9393         * target.h (struct gcc_target): Add register_move_cost field.
9394         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
9395         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
9396         * targhooks.c (default_register_move_cost): New function.
9397         * targhooks.h (default_register_move_cost): Declare function.
9398         * defaults.h (REGISTER_MOVE_COST): Delete.
9399         * ira-int.h (ira_register_move_cost): Update comment.
9400         * ira.c (ira_register_move_cost): Update comment.
9401         * reload.h (register_move_cost): Declare.
9402         * reginfo.c (register_move_cost): New function.
9403         (move_cost): Update comment.
9404         (init_move_cost, memory_move_secondary_cost): Replace
9405         REGISTER_MOVE_COST with register_move_cost.
9406         * postreload.c (reload_cse_simplify_set): (Ditto.).
9407         * reload.c (find_valid_class, find_reloads): (Ditto.).
9408         * reload1.c (choose_reload_regs): (Ditto.).
9409         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
9410         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
9411         * doc/md.texi (can_create_pseudo_p): Update documentation.
9412
9413         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
9414         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
9415         * config/i386/i386.h (ix86_memory_move_cost): Make static.
9416         (TARGET_MEMORY_MOVE_COST): Define.
9417
9418         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
9419         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
9420         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
9421         (TARGET_MEMORY_MOVE_COST): Define.
9422
9423 2010-06-27  Richard Guenther  <rguenther@suse.de>
9424
9425         PR tree-optimization/44683
9426         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
9427         false edge from the inverted condition.
9428
9429 2010-06-27  Richard Guenther  <rguenther@suse.de>
9430
9431         PR middle-end/44684
9432         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
9433         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
9434         for register LHS.  Or non-store assignments.
9435
9436 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
9437
9438         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
9439         (sparc_emit_set_const64): Likewise.  Remove disabled code.
9440         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
9441         (sparc_emit_set_const64): Likewise.
9442
9443 2010-06-26  Catherine Moore  <clm@codesourcery.com>
9444
9445         * config/mips/mips.md (alu_type): New attribute.
9446         (type): Infer type from alu_type.
9447         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
9448         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
9449         *subsi3_extended, negsi2, negdi2, *low<mode>,
9450         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
9451         xor<mode>3, *nor<mode>3,
9452         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
9453         *zero_extendhi_truncqi):  Set alu_type instead of type.
9454
9455 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
9456
9457         * config/alpha/alpha.c (alpha_need_linkage): Adjust
9458         splay_tree_new_ggc call.
9459         (alpha_use_linkage): Likewise.
9460
9461 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
9462
9463         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
9464         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
9465         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
9466         (static_specs): Remove switches_need_spaces.
9467         (process_command, do_self_spec): Hardcode handling "-o" instead of
9468         checking switches_need_spaces.
9469         * system.h (SWITCHES_NEED_SPACES): Poison.
9470
9471 2010-06-26  Richard Guenther  <rguenther@suse.de>
9472
9473         PR tree-optimization/44393
9474         * tree-loop-distribution.c (generate_loops_for_partition): Fix
9475         stmt removal and VOP renaming.
9476         (generate_memset_zero): Remove redundant stmt updating.
9477         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
9478         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
9479
9480 2010-06-26  Jan Hubicka  <jh@suse.cz>
9481
9482         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
9483         edges comming from header are equivalent.
9484         (visit_bb): Handle PHIs correctly.
9485         * tree-inline.c (copy_phis_for_bb): Be able to copy
9486         PHI from entry edge.
9487         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
9488
9489 2010-06-26  Richard Guenther  <rguenther@suse.de>
9490
9491         PR middle-end/44674
9492         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
9493         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
9494
9495 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
9496
9497         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
9498         add_infile, alloc_switch): New.
9499         (process_command): Remove variable lang_n_infiles.  Process
9500         options in a single pass.  Use new functions for allocating
9501         infiles and switches arrays.  Properly skip operands of
9502         -Xpreprocessor and -Xassembler.
9503
9504 2010-06-26  Jan Hubicka  <jh@suse.cz>
9505
9506         PR middle-end/44671
9507         * cgraphunit.c (cgraph_function_versioning): Remove wrong
9508         cgraph_make_decl_local call; fix typo copying RTL data.
9509
9510 2010-06-25  DJ Delorie  <dj@redhat.com>
9511
9512         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
9513         (m32c_output_aligned_common): Likewise.
9514         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
9515         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
9516         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
9517         (m32c_register_pragmas): Register it.
9518         * config/m32c/m32c.c (m32c_get_pragma_address): New.
9519         (m32c_insert_attributes): Set #pragma address decls volatile.
9520         (pragma_entry_eq): New.
9521         (pragma_entry_hash): New.
9522         (m32c_note_pragma_address): New.
9523         (m32c_get_pragma_address): New.
9524         (m32c_output_aligned_common): New.
9525         * doc/extend.texi: Document the new pragma.
9526
9527         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
9528         also.
9529         * config/m32c/predicates.md (m32c_any_operand): Check the code
9530         instead of memory_operand so as to allow matching volatile MEMs.
9531         (m32c_nonimmediate_operand): Likewise.
9532         (mra_operand): Allow volatiles.
9533
9534 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
9535
9536         PR debug/44610
9537         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
9538         address if the offset is unknown.
9539
9540 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
9541
9542         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
9543         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
9544         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
9545         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
9546         to ia64_start_function. Invoke it.
9547         * config/ia64/ia64.c (ia64_start_function): Call new function
9548         dwarf2out_vms_debug_main_pointer.
9549
9550 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
9551
9552         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
9553         statements computing the true predicate.
9554
9555 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
9556
9557         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
9558         to boolean_true_node.
9559         (reset_bb_predicate): New.
9560         (predicate_bbs): Call reset_bb_predicate.
9561
9562 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
9563
9564         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
9565         (tree_if_conversion): Returns true when something has been changed.
9566         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
9567         changed something.
9568
9569 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
9570
9571         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
9572         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
9573         * tree-if-conv.c: Include dbgcnt.h.
9574         (tree_if_conversion): Use if_conversion_tree to count the number of
9575         if-convertible loops.
9576
9577 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
9578
9579         * common.opt (fprefetch-loop-arrays): Re-define
9580         -fprefetch-loop-arrays as a tri-state option with the initial
9581         value of -1.
9582         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
9583         pass only when flag_prefetch_loop_arrays > 0.
9584         * toplev.c (process_options): Note that, with tri-states,
9585         flag_prefetch_loop_arrays>0 means prefetching is enabled.
9586         * config/i386/i386.c (override_options): Enable prefetching at -O3
9587         for a set of CPUs that sw prefetching is helpful.
9588         (software_prefetching_beneficial_p): New.  Return TRUE if software
9589         prefetching is beneficial for the given CPU.
9590
9591 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
9592
9593         PR rtl-optimization/44326
9594         * implicit-zee.c (find_removable_zero_extends): Replace
9595         INSN_P with NONDEBUG_INSN_P.
9596
9597 2010-06-25  Martin Jambor  <mjambor@suse.cz>
9598
9599         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
9600         (struct ipa_node_params): Removed the modification_analysis_done flag.
9601         (ipa_is_param_modified): Removed.
9602         (ipa_analyze_node): Declare.
9603         (ipa_compute_jump_functions): Remove declaration.
9604         (ipa_count_arguments): Likewise.
9605         (ipa_detect_param_modifications): Likewise.
9606         (ipa_analyze_params_uses): Likewise.
9607         * ipa-prop.c (struct param_analysis_info): New type.
9608         (visit_store_addr_for_mod_analysis): Removed.
9609         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
9610         moved down in the file.
9611         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
9612         (ipa_count_arguments): Made static.
9613         (mark_modified): New function.
9614         (is_parm_modified_before_call): New function.
9615         (compute_pass_through_member_ptrs): New parameter parms_info, call
9616         is_parm_modified_before_call instead of ipa_is_param_modified.
9617         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
9618         it to compute_pass_through_member_ptrs.
9619         (ipa_compute_jump_functions): New parameter parms_info, pass it to
9620         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
9621         on the callee if it is analyzed.  Made static.
9622         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
9623         is_parm_modified_before_call instead of ipa_is_param_modified.
9624         (ipa_analyze_call_uses): New parameter parms_info, pass it to
9625         ipa_analyze_indirect_call_uses.
9626         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
9627         ipa_analyze_call_uses.
9628         (ipa_analyze_params_uses): New parameter parms_info, pass it to
9629         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
9630         (ipa_analyze_node): New function.
9631         (ipa_print_node_params): Do not dump the modified flag.
9632         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
9633         it.  Do not stream the modified parameter flag.
9634         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
9635         it.  Do not stream the modified parameter flag.
9636         * ipa-cp.c (ipcp_analyze_node): Removed.
9637         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
9638         with only a call to ipa_analyze_node.
9639         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
9640         node with only a call to ipa_analyze_node.
9641
9642 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9643
9644         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
9645
9646 2010-06-25  Jan Hubicka  <jh@suse.cz>
9647
9648         * tree-pass.h (pass_split_functions): Declare.
9649         * opts.c (decode_options): Enable function splitting at -O2
9650         * timevar.def (TV_IPA_FNSPLIT): New macro.
9651         * ipa-split.c: New file.
9652         * common.opt (-fpartial-inlining): New flag.
9653         * Makefile.in (ipa-split.o): New object file.
9654         * passes.c (init_optimization_passes): Add ipa-split.
9655         * params.def (partial-inlining-entry-probability): New parameters.
9656         * doc/invoke.texi (-fpartial-inlining): New.
9657
9658 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9659
9660         PR 44665
9661         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
9662         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
9663         (gimplify_expr): Likewise.
9664
9665 2010-06-25  Martin Jambor  <mjambor@suse.cz>
9666
9667         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
9668         statements instead of bailing out on them.
9669         (ipa_analyze_indirect_call_uses): Do not require that loads from the
9670         parameter are in the same BB as the condition.  Update comments.
9671
9672 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
9673
9674         PR middle-end/43866
9675         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
9676         true or always false, return NULL_TREE.
9677         (tree_unswitch_single_loop): Optimize conditions even when reaching
9678         max-unswitch-level parameter.  If num > 0, optimize first all conditions
9679         using entry checks, then do still reachable block discovery and consider
9680         only conditions in still reachable basic blocks in the loop.
9681
9682         PR tree-optimization/44539
9683         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
9684         the call doesn't have LHS, but has VDEF.
9685
9686 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
9687
9688         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
9689         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
9690         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
9691         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
9692         * system.h (MODIFY_TARGET_NAME): Poison.
9693
9694 2010-06-25  Alan Modra  <amodra@gmail.com>
9695
9696         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
9697         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
9698         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9699         CMODEL_LARGE as default.
9700         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
9701         (offsettable_ok_by_alignment): Delete.
9702         (rs6000_emit_move): Remove mcmodel=medium optimization.
9703
9704 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
9705
9706         With large parts from Jim Wilson:
9707         PR target/43902
9708         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
9709         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
9710         * optabs.c (optab_for_tree_code): Likewise.
9711         (expand_widen_pattern_expr): Likewise.
9712         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
9713         out of execute_optimize_widening_mul.
9714         (convert_plusminus_to_widen): New function.
9715         (execute_optimize_widening_mul): Use the two new functions.
9716         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
9717         Remove code to generate widening multiply-accumulate.  Add support
9718         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
9719         * gimple-pretty-print.c (dump_ternary_rhs): New function.
9720         (dump_gimple_assign): Call it when appropriate.
9721         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
9722         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
9723         (expand_gimple_stmt_1): Likewise.
9724         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
9725         WIDEN_MULT_MINUS_EXPR.
9726         * tree-ssa-operands.c (get_expr_operands): Likewise.
9727         * tree-inline.c (estimate_operator_cost): Likewise.
9728         * gimple.c (extract_ops_from_tree_1): Renamed from
9729         extract_ops_from_tree.  Add new arg for a third operand; fill it.
9730         (gimple_build_assign_stat): Support operations with three operands.
9731         (gimple_build_assign_with_ops_stat): Likewise.
9732         (gimple_assign_set_rhs_from_tree): Likewise.
9733         (gimple_assign_set_rhs_with_ops_1): Renamed from
9734         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
9735         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
9736         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
9737         WIDEN_MULT_MINUS_EXPR.
9738         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
9739         (extract_ops_from_tree_1): Adjust declaration.
9740         (gimple_assign_set_rhs_with_ops_1): Likewise.
9741         (gimple_build_assign_with_ops): Pass NULL for last operand.
9742         (gimple_build_assign_with_ops3): New macro.
9743         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
9744         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
9745         functions.
9746         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
9747         (verify_gimple_assign): Call it.
9748         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
9749         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
9750         functions for dealing with three-operand statements.
9751         * tree.c (commutative_ternary_tree_code): New function.
9752         * tree.h (commutative_ternary_tree_code): Declare it.
9753         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
9754         ternary statements.
9755         (gimple_assign_nonzero_warnv_p): Likewise.
9756         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
9757         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
9758         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
9759         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
9760         (struct hashtable_expr): New member ternary in the union.
9761         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
9762         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
9763         (iterative_hash_hashable_expr): Likewise.
9764         (print_expr_hash_elt): Handle EXPR_TERNARY.
9765         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
9766         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
9767         statements.  Handle GIMPLE_TERNARY_RHS.
9768
9769 2010-06-25  Jan Hubicka  <jh@suse.cz>
9770
9771         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
9772
9773 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
9774
9775         PR c/44517
9776         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
9777         parameters are not good.
9778         (c_parser_parameter_declaration): Error unknown type name if the type
9779         name can't start declaration specifiers.
9780
9781 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
9782
9783         * gcc.c (translate_options): Don't mention +e in comment.
9784         (process_command): Don't handle +e specially.
9785
9786 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
9787
9788         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
9789
9790         * ira-build.c (merge_hard_reg_conflicts): New function.
9791         (create_cap_allocno, copy_info_to_removed_store_destinations,
9792         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
9793         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
9794         (remove_unnecessary_allocnos, remove_low_level_allocnos)
9795         copy_nifo_to_removed_store_destination): Use them.
9796         * ira-lives.c (make_hard_regno_born): New function, split out of
9797         make_regno_born.
9798         (make_allocno_born): Likewise.
9799         (make_hard_regno_dead): New function, split out of make_regno_dead.
9800         (make_allocno_dead): Likewise.
9801         (inc_register_pressure): New function, split out of set_allocno_live.
9802         (dec_register_pressure): New function, split out of clear_allocno_live.
9803         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
9804         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
9805         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
9806         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
9807         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
9808         mark_pseudo_regno_live.
9809         (process_bb_node_lives): Use mark_pseudo_regno_live,
9810         make_hard_regno_born and make_allocno_dead.
9811         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
9812         set_allocno_live, clear_allocno_live): Delete functions.
9813
9814         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
9815         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
9816         functions.
9817         (ira_flattening): Use ira_parent_allocno.
9818         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
9819         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
9820
9821         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
9822         statement.
9823
9824         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
9825         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
9826         minmax_set_iter_cond, minmax_set_iter_next,
9827         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
9828         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
9829         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
9830         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
9831         uses changed.
9832
9833         * ira-int.h (struct live_range, live_range_t): Renamed from struct
9834         ira_allocno_live_range and allocno_live_range_t; all uses changed.
9835         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
9836         All uses changed.
9837
9838 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
9839
9840         * thumb2.md (thumb2_tlobits_cbranch): Delete.
9841         (peephole2 to convert zero_extract/compare of single bit to
9842          lshift/compare): New.
9843
9844 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
9845
9846         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
9847         recursive call and call to 'int_const_binop'.
9848         (build_range_check, fold_cond_expr_with_comparison, unextend,
9849         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
9850         multiple_of_p): Adjust call to const_binop.
9851
9852 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
9853
9854         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
9855         determine size of XFmode operand.
9856         (XFmode extended DFmode push splitter): Ditto.
9857         (XFmode extended SFmode push splitter): Ditto.
9858
9859 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
9860
9861         PR target/44588
9862         * config/i386/i386.md (extract_code): New.
9863         (<u>divmodqi4): Likewise.
9864         (divmodhiqi3): Likewise.
9865         (udivmodhiqi3): Likewise.
9866         (<u>divqi3): Remvoved.
9867
9868 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
9869
9870         PR middle-end/44492
9871         * recog.h (struct recog_data): Add is_asm field.
9872         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
9873         present in constraints of inline-asm operand and memory operand
9874         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
9875         (extract_insn): Initialize recog_data.is_asm.
9876         * doc/md.texi (Constraints): Document operand side-effect rules.
9877
9878 2010-06-24  Andi Kleen  <ak@linux.intel.com>
9879
9880         * c-parser.c (c_parser_conditional_expression): Call
9881         warn_for_omitted_condop.
9882         * doc/invoke.texi: Document omitted condop warning.
9883
9884 2010-06-24  Nick Clifton<nickc@redhat.com>
9885
9886         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
9887         insn in the sequence is a jump insn before setting its label.
9888
9889 2010-06-24  Alan Modra  <amodra@gmail.com>
9890
9891         * collect2.c (main): Match exactly --version and --help.
9892
9893 2010-06-24  DJ Delorie  <dj@redhat.com>
9894
9895         * config/m32c/m32c-pragma.c: Don't include rtl.h.
9896
9897 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
9898
9899         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
9900         using X87MODEF mode iterator.
9901         (pushsf splitter): Macroize splitter using P mode iterator.
9902         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
9903         mode iterator.
9904
9905         (*movxf_internal): Rename from *movxf_integer.
9906         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
9907         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
9908         (*movdf_internal): Rename from *movdf_integer.
9909         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
9910         (*movsf_internal): Rename from *movdf_1.
9911
9912 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
9913
9914         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
9915         (const_gimple_seq_node): Removed typedefs.
9916
9917         * gimple.h (gimple_seq_node_d, gimple_seq_node)
9918         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
9919
9920 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
9921
9922         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
9923         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
9924         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
9925         and CODE_FOR_vec_extract_lo_v4df.
9926
9927         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
9928         Changed to define_insn_and_split.
9929         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
9930         (vec_extract_lo_v16hi): Likewise.
9931         (vec_extract_lo_v32qi): Likewise.
9932         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
9933         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
9934
9935 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
9936
9937         PR target/44640
9938         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
9939         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
9940         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
9941         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
9942         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
9943
9944         PR target/44640
9945         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
9946
9947         PR other/44644
9948         * df-core.c (struct df): Rename to df_d.
9949         * df.h (struct df): Likewise.
9950         * dse.h (struct df): Remove forward declaration.
9951         * recog.h (struct insn_data): Rename to:
9952         (struct_insn_data_d).  Adjusted all users.
9953
9954 2010-06-23  Arnaud Charlet  <charlet@adacore.com
9955
9956         PR ada/22220
9957         * doc/install.texi: Update requirements to build GNAT.
9958
9959 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
9960
9961         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
9962         enum type.
9963         (m68k_sched_attr_opx_type): Remove unreachable return.
9964         (m68k_sched_attr_opy_type): Likewise.
9965         (m68k_sched_attr_size): Likewise.
9966         (sched_get_opxy_mem_type): Likewise.
9967         (m68k_sched_attr_op_mem): Likewise.
9968
9969 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
9970
9971         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
9972         new statement and adjust VDEF only if necessary.  Remove superfluous
9973         call to maybe_clean_or_replace_eh_stmt.
9974         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
9975         copy the flags.
9976         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
9977         * tree-inline.c (copy_bb): ...and not there.
9978
9979 2010-06-22  Cary Coutant  <ccoutant@google.com>
9980
9981         * dwarf2out.c (is_nested_in_subprogram): New function.
9982         (should_move_die_to_comdat): Use it.
9983         (copy_ancestor_tree): Don't mark DIEs here.
9984         (copy_decls_walk): Start walk from root of newly-added tree;
9985         mark DIEs here instead.
9986
9987 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
9988
9989         * config/i386/i386.md (unit): Also check sseishft1.
9990
9991 2010-06-22  Jan Hubicka  <jh@suse.cz>
9992
9993         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
9994         enabled.
9995
9996 2010-06-22  Jan Hubicka  <jh@suse.cz>
9997
9998         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
9999         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
10000         Return true if something changed.
10001         * df.h (df_confluence_function_n): Return bool.
10002         * df-core.c (df_worklist_propagate_forward,
10003         df_worklist_propagate_backward): Track changes and ages.
10004         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
10005         track ages.
10006         * dse.c (dse_confluence_n): Return always true.
10007
10008 2010-06-22  Jan Hubicka  <jh@suse.cz>
10009
10010         * bitmap.c (bitmap_clear_bit): Micro optimize.
10011
10012 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
10013
10014         * config/i386/i386.md (SWI1248x): New mode iterator.
10015         (SWI48x): Ditto.
10016         (SWI12): Ditto.
10017         (SWI24): Ditto.
10018
10019         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
10020         SWI1248x mode iterator.
10021         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
10022         using SWI124 mode iterator.
10023         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
10024         mode iterator.
10025         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
10026         *pushdi2_prologue_rex64 using P mode iterator.
10027         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
10028         using SWI48 mode iterator.
10029         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
10030         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
10031         using SWI1248x mode iterator.
10032         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
10033         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
10034         SWI48 mode iterator.
10035         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
10036         iterator.
10037         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
10038         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
10039         SWI12 mode iterator.
10040         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
10041         SWI12 mode iterator.
10042         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
10043         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
10044         SWI24 mode iterator.
10045         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
10046         SWI48 mode iterator.
10047         (mov<mode>_insn_1): New expander.
10048         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
10049         using SWI48x mode iterator.
10050
10051         (*movoi_internal_avx): Rename from *movoi_internal.
10052         (*movti_internal_rex64): Rename from *movti_rex64.
10053         (*movti_internal_sse): Rename from *movti_sse.
10054         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
10055         (*movdi_internal): Rename from *movdi_2.
10056         (*movsi_internal): Rename from *movsi_1.
10057         (*movhi_internal): Rename from *movhi_1.
10058         (*movqi_internal): Rename from *movqi_1.
10059
10060         (insv): Update the call to gen_movsi_insv_1 for rename.
10061         * config/i386/i386.c (promote_duplicated_reg): Ditto.
10062
10063 2010-06-22  Jan Hubicka  <jh@suse.cz>
10064
10065         * passes.c (execute_function_todo): Move call of statistics_fini_pass
10066         to ...
10067         (execute_todo) ... this one.
10068
10069 2010-06-22  Alan Modra  <amodra@gmail.com>
10070
10071         PR target/44364
10072         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
10073         * caller-save.c (insert_restore, insert_save): Use non-validate
10074         form of adjust_address.
10075
10076 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10077
10078         PR target/39690
10079         * config/pa/pa.c (override_options): Disable
10080         -freorder-blocks-and-partition.
10081
10082 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
10083
10084         PR target/44615
10085         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
10086
10087         * config/i386/i386.md (type): Add sseishft1
10088
10089         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
10090         (ppro_insn_load): Likewise.
10091         (ppro_insn_store): Likewise.
10092         (ppro_insn_both): Likewise.
10093
10094         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
10095         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
10096         for type.
10097         (*vec_extractv2di_1_avx): Likewise.
10098         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
10099         type.  Remove atom_unit.
10100         (*vec_extractv2di_1_sse2): Likewise.
10101
10102 2010-06-21  DJ Delorie  <dj@redhat.com>
10103
10104         * diagnostic.h (diagnostic_classification_change_t): New.
10105         (diagnostic_context): Add history and push/pop list.
10106         (diagnostic_push_diagnostics): Declare.
10107         (diagnostic_pop_diagnostics): Declare.
10108         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
10109         from pragmas in a history chain instead of the global table.
10110         (diagnostic_push_diagnostics): New.
10111         (diagnostic_pop_diagnostics): New.
10112         (diagnostic_report_diagnostic): Scan history chain to find state
10113         of diagnostics as of the diagnostic location.
10114         * opts.c (set_option): Pass UNKNOWN_LOCATION to
10115         diagnostic_classify_diagnostic.
10116         (enable_warning_as_error): Likewise.
10117         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
10118         use in the history chain.
10119         * doc/extend.texi: Document pragma GCC diagnostic changes.
10120
10121 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
10122
10123         * dwarf2out.c (add_linkage_name): New function.  Don't add
10124         anything to DW_TAG_member DIEs.
10125         (add_name_and_src_coords_attributes): Use it.
10126         (gen_variable_die): Call it for C++ static data members if
10127         specification is DW_TAG_member.
10128
10129         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
10130         C++ char16_t and char32_t.
10131
10132         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
10133         * genattrtab.c: Include vecprim.h.
10134         (cached_attrs, cached_attr_count, attrs_seen_once,
10135         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
10136         attrs_cached_after): New variables.
10137         (find_attrs_to_cache): New function.
10138         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
10139         (write_test_expr): Add attrs_cached argument, return it too,
10140         attempt to cache non-const attributes used more than once in
10141         a single case handling.
10142         (write_attr_get): Use find_attrs_to_cache, for caching candidates
10143         emit cached_* variables.  Adjust write_attr_set callers.
10144         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
10145         to find attributes that should be cached in this block.  Adjust
10146         write_test_expr callers.
10147         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
10148         callers.
10149         (make_automaton_attrs): Adjust write_test_expr caller.
10150
10151         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
10152         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
10153         (make_automaton_attrs): If find_tune_attr returns non-NULL,
10154         write separate internal_dfa_insn_code_* and insn_default_latency_*
10155         functions for each attribute's value and emit init_sched_attrs
10156         function and function pointers.
10157         * genattr.c (const_attrs, reservations): New variables.
10158         (gen_attr): Add const attributes to const_attrs vector.
10159         (check_tune_attr, find_tune_attr): New functions.
10160         (main): Add reservations to reservations vector.  If find_tune_attr
10161         returns true, add prototype for init_sched_attrs and make
10162         internal_dfa_insn_code and insn_default_latency function pointers,
10163         otherwise define init_sched_attrs as dummy macro.
10164         * cfgexpand.c: Include insn-attr.h.
10165         (gimple_expand_cfg): Call init_sched_attrs.
10166
10167         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
10168
10169         PR target/44575
10170         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
10171         va_arg from a set of register save slots into a temporary,
10172         if the container is bigger than type size, do the copying
10173         using smaller mode or using memcpy.
10174
10175         PR bootstrap/44426
10176         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
10177         prototype.
10178         (sel_print_to_dot): Remove macro.
10179         (sel_print): Likewise.  New prototype.
10180         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
10181         (sel_print): New function.
10182
10183 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10184
10185         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
10186         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
10187
10188 2010-06-21  Nick Clifton  <nickc@redhat.com>
10189
10190         * config/rx/rx.h (PTRDIFF_TYPE): Define.
10191         (SMALL_REGISTER_CLASS): Define (to zero).
10192         (PRINT_OPERAND): Delete.
10193         (PRINT_OPERAND_ADDRESS): Delete.
10194         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
10195         (rx_print_operand_address): Delete prototype.
10196         * config/rx/rx.c (rx_print_operand): Make static.
10197         Allow %H and %L to handle CONST_DOUBLEs.
10198         (rx_print_operand_address): Make static.
10199         (rx_gen_move_template): Rename local variable 'template' to
10200         out_template.
10201         (rx_function_arg): Do not pass unknown sized objects in registers.
10202         (TARGET_PRINT_OPERAND): Define.
10203         (TARGET_PRINT_OPERAND_ADDRESS): Define.
10204
10205 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
10206
10207         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
10208
10209 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
10210
10211         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
10212         stack-alignment for simple leaf-functions.
10213
10214 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
10215
10216         * doc/install.texi: Document bootstrap-lto.
10217
10218 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
10219
10220         PR debug/44248
10221         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
10222         (input_function): Drop them here, if VTA is disabled.
10223
10224 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
10225
10226         PR target/44546
10227         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
10228         New predicate.
10229         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
10230         ix86_swapped_fp_comparsion_operator instead of
10231         ix86_fp_comparison_operator.
10232
10233         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
10234         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
10235         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
10236         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
10237         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
10238         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
10239
10240 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
10241
10242         PR other/32998
10243         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
10244         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
10245         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
10246         (decode_cmdline_option): Update for this return value.  Set
10247         orig_option_with_args_text field.  Set arg field for unknown
10248         options.  Make static.
10249         (decode_cmdline_options_to_array): New.
10250         (prune_options): Update handling of find_opt return value.
10251         * opts.c (read_cmdline_option): Take decoded option.  Return void.
10252         (read_cmdline_options): Take decoded options.
10253         (decode_options): Add parameters for decoded options.  Use
10254         decode_cmdline_options_to_array.  Use decoded options for -O
10255         scan.  Use integral_argument for -O parameters.  Update call to
10256         read_cmdline_options.
10257         (enable_warning_as_error): Update handling of find_opt return value.
10258         * opts.h: Update comment on unknown options.
10259         (struct cl_decoded_option): Update comments on opt_index and arg.
10260         Add orig_option_with_args_text.
10261         (decode_cmdline_option): Remove.
10262         (decode_cmdline_options_to_array): Declare.
10263         (decode_options): Update prototype.
10264         * toplev.c (save_argv): Remove.
10265         (save_decoded_options, save_decoded_options_count): New.
10266         (read_integral_parameter): Remove.
10267         (print_switch_values): Use decoded options.
10268         (toplev_main): Don't set save_argv.  Update call to decode_options.
10269         * toplev.h (read_integral_parameter): Remove.
10270         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
10271
10272 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
10273
10274         PR target/44072
10275         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
10276         immediate.
10277         * constraints.md (Pw, Px): New constraints.
10278         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
10279
10280 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
10281
10282         * config/i386/sse.md (fma4modesuffixf4): Removed.
10283         (ssemodesuffixf2s): Likewise.
10284         (ssemodesuffixf4): Likewise.
10285         (ssemodesuffixf2c): Likewise.
10286         (ssescalarmodesuffix2s): Likewise.
10287         (avxmodesuffixf2c): Likewise.
10288         (ssemodesuffix): New.
10289         (ssescalarmodesuffix): Likewise.
10290         Update patterns with ssemodesuffix and ssescalarmodesuffix.
10291
10292 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
10293
10294         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
10295
10296 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
10297
10298         * stor-layout.c (debug_rli): Remove unused local variables.
10299
10300 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
10301
10302         PR rtl-optimization/40900
10303         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
10304         original expression for later reuse.
10305         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
10306         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
10307
10308 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
10309
10310         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
10311         double_int_fits_in_uhwi_p): Implement as static inline.
10312         (double_int_xor): New inline function.
10313         (double_int_lrotate, double_int_rrotate, double_int_max,
10314         double_int_umax, double_int_smax, double_int_min, double_int_umin,
10315         double_int_smin): Declare.
10316         (lrotate_double, rrotate_double): Remove declaration.
10317         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
10318         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
10319         (double_int_lrotate, double_int_rrotate, double_int_max,
10320         double_int_umax, double_int_smax, double_int_min, double_int_umin,
10321         double_int_smin): New function.
10322         * fold-const.c (int_const_binop): Clean up, use double_int_*
10323         functions.
10324         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
10325         double_int_* and immed_double_int_const functions.
10326
10327 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
10328
10329         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
10330         * function.c (types_used_by_cur_var_decl): Likewise.
10331         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
10332
10333 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
10334
10335         * tree.h (record_layout_info): Change type of pending_statics field
10336         to a VEC.
10337         * stor-layout.c (start_record_layout): Store NULL into
10338         pending_statics.
10339         (debug_rli): Call debug_vec_tree instead of debug_tree.
10340         (place_field): Likewise.
10341         (finish_record_layout): Likewise.
10342
10343 2010-06-18  Alan Modra  <amodra@gmail.com>
10344
10345         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
10346
10347 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10348
10349         PR target/43740
10350         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
10351         for SET source operand from SET destination operand.
10352
10353 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
10354
10355         PR rtl-optimization/39871
10356         * reload1.c (init_eliminable_invariants): For flag_pic, disable
10357         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
10358         (function_invariant_p): Rule out a plus of frame or arg pointer with
10359         a SYMBOL_REF.
10360         * ira.c (find_reg_equiv_invariant_const): Likewise.
10361
10362 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
10363
10364         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
10365         print_operand_address and puts to output the operand for CONST.
10366
10367 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
10368
10369         PR debug/44572
10370         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
10371         hook.
10372
10373 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10374
10375         * v850-protos.h (print_operand): Delete.
10376         (print_operand_address): Delete.
10377         * v850.h (PRINT_OPERAND): Delete.
10378         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10379         (PRINT_OPERAND_ADDRESS): Delete.
10380         * v850.c (print_operand_address): Rename to...
10381         (v850_print_operand_address): ...this.  Make static. Call
10382         v850_print_operand.
10383         (print_operand): Rename to...
10384         (v850_print_operand): ...this.  Make static.  Call
10385         v850_print_operand_address.
10386         (v850_print_operand_punct_valid_p): New function.
10387         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10388         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
10389
10390 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10391
10392         * config/sh/sh-protos.h (print_operand): Delete.
10393         (print_operand_address): Delete.
10394         * config/sh/sh.h (PRINT_OPERAND): Delete.
10395         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10396         (PRINT_OPERAND_ADDRESS): Delete.
10397         * config/sh/sh.c (sh_print_operand_address): Make static.
10398         (sh_print_operand): Make static.  Call sh_print_operand_address
10399         and sh_print_operand.
10400         (sh_print_operand_punct_valid_p): New function.
10401         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10402         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
10403
10404 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10405
10406         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
10407         (mcore_print_operand_address): Delete.
10408         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
10409         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10410         (PRINT_OPERAND_ADDRESS): Delete.
10411         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
10412         (mcore_print_operand): Make static.
10413         (mcore_print_operand_punct_valid_p): New function.
10414         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
10415         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
10416
10417 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10418
10419         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
10420         (print_operand_address): Delete.
10421         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
10422         (PRINT_OPERAND_ADDRESS): Delete.
10423         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
10424         static.
10425         (m68hc11_print_operand): Make static.
10426         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10427
10428 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10429
10430         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
10431         (m32r_print_operand_address): Delete.
10432         * config/m32r/m32r.h (m32r_punct_chars): Delete.
10433         (PRINT_OPERAND): Delete.
10434         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10435         (PRINT_OPERAND_ADDRESS): Delete.
10436         * config/m32r/m32r.c (m32r_punct_chars): Make static.
10437         (m32r_print_operand_address): Make static.
10438         (m32r_print_operand): Make static.
10439         (m32r_print_operand_punct_valid_p): New function.
10440         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
10441         (TARGET_PRINT_OPERAND_ADDRESS): Define.
10442
10443 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10444
10445         * config/iq2000/iq2000-protos.h (print_operand): Delete.
10446         (print_operand_address): Delete.
10447         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
10448         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10449         (PRINT_OPERAND_ADDRESS): Delete.
10450         (iq2000_print_operand_punct): Delete.
10451         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
10452         (iq2000_print_operand_address): Make static.
10453         (iq2000_print_operand): Make static.
10454         (iq2000_print_operand_punct_valid_p): New function.
10455         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
10456         (TARGET_PRINT_OPERAND_ADDRESS): Define.
10457
10458 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10459
10460         * config/frv/frv-protos.h (frv_print_operand): Delete.
10461         (frv_print_operand_address): Delete.
10462         * config/frv/frv.h (PRINT_OPERAND): Delete.
10463         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10464         (PRINT_OPERAND_ADDRESS): Delete.
10465         * config/frv/frv.c (frv_print_operand_address): Make static.
10466         (frv_print_operand): Make static.
10467         (frv_print_operand_punct_valid_p): New function.
10468         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
10469         (TARGET_PRINT_OPERAND_ADDRESS): Define.
10470
10471 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10472
10473         * tree.h (vec_member): Declare.
10474         * tree.c (vec_member): Define.
10475
10476 2010-06-17  Richard Guenther  <rguenther@suse.de>
10477
10478         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
10479         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
10480
10481 2010-06-17  Richard Guenther  <rguenther@suse.de>
10482
10483         * tree-inline.c (declare_return_variable): Remove bogus code.
10484
10485 2010-06-17  Richard Guenther  <rguenther@suse.de>
10486
10487         * gimplify.c (gimplify_bind_expr): Always promote complex
10488         and vector variables to registers if possible.
10489
10490 2010-06-17  Richard Guenther  <rguenther@suse.de>
10491
10492         * expr.c (get_inner_reference): Use double_int for bit_offset
10493         calculation.
10494
10495 2010-06-16  DJ Delorie  <dj@redhat.com>
10496
10497         * common.opt (-fstrict-volatile-bitfields): new.
10498         * doc/invoke.texi: Document it.
10499         * fold-const.c (optimize_bit_field_compare): For volatile
10500         bitfields, use the field's type to determine the mode, not the
10501         field's size.
10502         * expr.c (expand_assignment): Likewise.
10503         (get_inner_reference): Likewise.
10504         (expand_expr_real_1): Likewise.
10505         * expmed.c (store_fixed_bit_field): Likewise.
10506         (extract_bit_field_1): Likewise.
10507         (extract_fixed_bit_field): Likewise.
10508
10509 2010-06-16  Richard Guenther  <rguenther@suse.de>
10510
10511         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
10512
10513 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
10514
10515         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
10516         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
10517         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
10518         * debug.c: Likewise.
10519         * sdbout.c: Likewise.
10520         * vmsdbgout.c: Likewise.
10521         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
10522         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
10523         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
10524         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
10525         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
10526         * dwarf2out.c (dw_fde_struct): New fields
10527         dw_fde_vms_{end,begin}_prologue.
10528         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
10529         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
10530         (dwarf2out_vms_end_prologue): New function.
10531         (dwarf2out_vms_begin_epilogue): New function.
10532         (dw_val_struct): New value dw_val_class_vms_delta.
10533         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
10534         begin_epilogue for VMS.
10535         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
10536         new static functions.
10537         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
10538         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
10539         static functions.
10540         (print_die): New case dw_val_class_vms_delta.
10541         (attr_checksum): Likewise.
10542         (same_dw_val_p: Likewise.
10543         (size_of_die): Likewise.
10544         (value_format): Likewise.
10545         (output_die): Likewise.
10546         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
10547         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
10548         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
10549         dwarf2out_cfi_begin_epilogue
10550         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
10551
10552 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
10553
10554         * config/cris/cris-protos.h (cris_print_operand): Delete.
10555         (cris_print_operand_address): Delete.
10556         * config/cris/cris.h (PRINT_OPERAND): Delete.
10557         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10558         (PRINT_OPERAND_ADDRESS): Delete.
10559         * config/cris/cris.c (cris_print_operand_address): Make static.
10560         (cris_print_operand): Make static.
10561         (cris_print_operand_punct_valid_p): New function.
10562         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
10563         (TARGET_PRINT_OPERAND_ADDRESS): Define.
10564
10565 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
10566
10567         * config/arm/arm-protos.h (arm_print_operand): Delete.
10568         (arm_print_operand_address): Delete.
10569         * config/arm/arm.h (PRINT_OPERAND): Delete.
10570         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10571         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
10572         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
10573         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
10574         (arm_print_operand): Make static.
10575         (arm_print_operand_punct_valid_p): New function.
10576         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
10577         (TARGET_PRINT_OPERAND_ADDRESS): Define.
10578
10579 2010-06-16  Nick Clifton  <nickc@redhat.com>
10580
10581         * config/rx/constraints.md (NEGint4): New constraint.
10582         * config/rx/rx.md (attr cc): Add set_zsc.
10583         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
10584         initialised.
10585         (cmpsf): Likewise.
10586         (call_internal): Clobber the cc0 register.
10587         (call_value_internal): Likewise.
10588         (cstoresi4): Likewise.
10589         (movsieq): Likewise.
10590         (movsine): Likewise.
10591         (addsi3): Add alternative to handle small negative constants.
10592         (sunsi3): Likewise.
10593         (addsi3): Do not set the O bit in the cc0 register.
10594         (adddi3): Likewise.
10595         (subsi3): Likewise.
10596         (subdi3): Likewise.
10597         (andsi3): Reorder alternatives to prefer shorter forms.
10598         (mulsi3): Likewise.
10599         (iorsi3): Likewise.
10600         (negsi2): Note that the cc0 flags are set.
10601         (rotlsi3): Note that only the Z and S bits are set in cc0.
10602         (lshrsi3): Likewise.
10603         (ashlsi3): Likewise.
10604         (subsf3): Use %Q for the MEM operand.
10605         (fix_truncsfsi2): Likewise.
10606         (floatsisf2): Likewise.
10607         (bitset): Remove early clobber from destination.
10608         (bitset_in_memory): Likewise.
10609         (lrintsf2): Clobber the cc0 register.
10610         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
10611         (rx_print_operand): Handle %N.
10612
10613 2010-06-16  Jan Hubicka  <jh@suse.cz>
10614
10615         * df-core.c (df_compact_blocks): Free problem_temps vector.
10616
10617 2010-06-16  Martin Jambor  <mjambor@suse.cz>
10618
10619         PR tree-optimization/43905
10620         * tree-sra.c: Include tree-inline.h.
10621         (create_abstract_origin): Removed.
10622         (modify_function): Version the call graph node instead of creating
10623         abstract origins and dealing with same_body aliases.
10624         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
10625         function is versionable.
10626         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
10627
10628 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
10629
10630         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
10631         (CHOOSE_DYNAMIC_LINKER): Update.
10632
10633 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
10634
10635         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
10636         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
10637         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
10638         *prefetch_3dnow_rex.
10639
10640 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
10641
10642         * target.h (struct asm_out):Add declare_constant_name field.
10643         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
10644         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
10645         * output.h (default_asm_declare_constant_name): Declare.
10646         (assemble_label): Update prototype.
10647         * varasm.c (assemble_constant_contents): Use
10648         targetm.asm_out.declare_constant_name target hook.
10649         (assemble_label): Add 'file' argument.
10650         (default_asm_declare_constant_name): New function.
10651         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
10652         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
10653         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
10654
10655         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
10656         * config/darwin.c (darwin_asm_declare_constant_name): New function.
10657         (machopic_output_indirection): Update assemble_label argument list.
10658         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
10659         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
10660
10661 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
10662
10663         PR middle-end/44391
10664         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
10665         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
10666
10667 2010-06-15  Richard Guenther  <rguenther@suse.de>
10668
10669         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
10670
10671 2010-06-15  Paul Brook  <paul@codesourcery.com>
10672
10673         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
10674         hard-float ABI.
10675
10676 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
10677
10678         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
10679         don't get a vector type for output.
10680
10681 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
10682
10683         PR fortran/44536
10684         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
10685         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
10686         (LANG_HOOKS_DECLS): Add it.
10687         * gimplify.c (omp_notice_variable): Call
10688         lang_hooks.decls.omp_report_decl.
10689
10690 2010-06-15  Martin Jambor  <mjambor@suse.cz>
10691
10692         PR lto/44464
10693         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
10694         on the newly dead SSA name.
10695
10696 2010-06-15  Alan Modra  <amodra@gmail.com>
10697
10698         * doc/invoke.texi: Add mcmodel to powerpc options.
10699         * configure.ac: Add HAVE_LD_LARGE_TOC test.
10700         * configure: Regenerate.
10701         * config.in: Regenerate.
10702         * config/rs6000/linux64.opt (mcmodel): New.
10703         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
10704         (TARGET_CMODEL, SET_CMODEL): Define.
10705         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
10706         select CMODEL_MEDIUM default.
10707         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
10708         (TARGET_CMODEL): Define default.
10709         * config/rs6000/rs6000.c (cmodel): New variable.
10710         (rs6000_explicit_options): Add cmodel field.
10711         (rs6000_handle_option): Handle -mcmodel.
10712         (create_TOC_reference): Add largetoc_reg param.  Generate high,
10713         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
10714         (rs6000_delegitimize_address): Recognise new toc reference rtl
10715         and minimal-toc rtl.
10716         (rs6000_legitimize_reload_address): Handle new toc references.
10717         (print_operand_address): Handle legitimate_constant_pool_address_p
10718         match before lo_sum.
10719         (rs6000_eliminate_indexed_memrefs): Tidy.
10720         (rs6000_emit_move): Tweak threshold for inlining constants.
10721         Keep rs6000_emit_allocate_stack large stack frame offsets
10722         loaded into r0 inline.
10723         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
10724         (tocrel_base, tocrel_offset): New variables.
10725         (toc_relative_expr_p): Set them here.
10726         (print_operand_address): Skip over any offset on constant pool address.
10727         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
10728         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
10729         (offsettable_ok_by_alignment): New function.
10730         (rs6000_emit_move): Address suitably aligned local symbol_refs
10731         relative to the toc pointer for -mcmodel=medium.
10732         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
10733         strict param.  Allow lo_sum version of addressing.  Verify reg
10734         used for -mminimal-toc and -mcmodel != small.  Update all callers.
10735         * config/rs6000/constraints.md: Update for above change.
10736         * config/rs6000/predicates.md: Likewise.
10737         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
10738         code.
10739         (tls_gd): Split for -mcmodel=medium/large.
10740         (tls_gd_high, tls_gd_low): New.
10741         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
10742         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
10743         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
10744         (largetoc_high, largetoc_low): New.
10745         (cmptf_internal2): Add clobber.
10746         * config/rs6000/rs6000-protos.h: Update.
10747
10748 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
10749
10750         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
10751         true if no prefetch is going to be generated for a given group.
10752         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
10753         estimate the prefetch_count.
10754         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
10755         prefetch count by considering the unroll_factor and prefetch_mod
10756         for is_loop_prefetching_profitable.
10757
10758 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
10759
10760         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
10761         anything if the argument is not a MEM.
10762
10763 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
10764
10765         PR debug/43650
10766         PR debug/44181
10767         PR debug/44247
10768         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
10769         debug stmts.
10770         (canonicalize_loop_ivs): Likewise.
10771
10772 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
10773
10774         PR debug/43656
10775         * haifa-sched.c (setup_insn_reg_pressure_info,
10776         update_register_pressure): Reject debug insns.
10777         (ready_sort): Don't setup reg pressure for debug insns.
10778         (schedule_insn): Don't update reg pressure for debug insns.
10779
10780 2010-06-14  Richard Guenther  <rguenther@suse.de>
10781
10782         * lto-streamer.c (cached_bp): Remove.
10783         (bitpack_delete): Likewise.
10784         (bitpack_create): Likewise.
10785         (bp_get_next_word): Likewise.
10786         (bp_pack_value, bp_unpack_value): Move ...
10787         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
10788         Re-implement.
10789         (struct bitpack_d): Likewise.
10790         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
10791         New inline functions.
10792         * lto-streamer-out.c (lto_output_bitpack): Remove.
10793         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
10794         (pack_value_fields): Adjust.
10795         (lto_write_tree): Likewise.
10796         (output_gimple_stmt): Likewise.
10797         (output_function): Likewise.
10798         * lto-streamer-in.c (input_gimple_stmt): Adjust.
10799         (input_function): Likewise.
10800         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
10801         (lto_input_bitpack): Remove.
10802         (lto_materialize_tree): Adjust.
10803         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
10804         * lto-cgraph.c (lto_output_edge): Adjust.
10805         (lto_output_node): Likewise.
10806         (lto_output_varpool_node): Likewise.
10807         (lto_output_ref): Likewise.
10808         (input_node): Likewise.
10809         (input_varpool_node): Likewise.
10810         (input_ref): Likewise.
10811         (input_edge): Likewise.
10812         (output_node_opt_summary): Likewise.
10813         (input_node_opt_summary): Likewise.
10814         * ipa-pure-const.c (pure_const_write_summary): Likewise.
10815         (pure_const_read_summary): Likewise.
10816         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
10817         (ipa_read_indirect_edge_info): Likewise.
10818         (ipa_write_node_info): Likewise.
10819         (ipa_read_node_info): Likewise.
10820
10821 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
10822
10823         PR target/44534
10824         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
10825         (vec_extract_lo_v16hi): Likewise.
10826         (vec_extract_lo_v32qi): Likewise.
10827
10828 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
10829
10830         PR bootstrap/44426
10831         * tree.h (build_call_expr): Don't define as vararg macro, instead
10832         add a prototype.
10833         * builtins.c (build_call_nofold): Remove.
10834         (expand_builtin_int_roundingfn, expand_builtin_pow,
10835         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
10836         expand_builtin_memset_args, expand_builtin_strcmp,
10837         expand_builtin_strncmp, expand_builtin_memory_chk): Use
10838         build_call_nofold_loc instead of build_call_nofold.
10839         (build_call_expr): New function.
10840
10841         PR tree-optimization/44508
10842         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
10843         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
10844         don't eliminate trivially dead stmts.
10845         * tree-vrp.c (vrp_finalize): Pass false as last argument
10846         to substitute_and_fold.
10847         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
10848         to substitute_and_fold.
10849         * tree-ssa-ccp.c (ccp_finalize): Likewise.
10850
10851         PR bootstrap/44509
10852         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
10853
10854 2010-06-14  Ira Rosen  <irar@il.ibm.com>
10855
10856         PR tree-optimization/44507
10857         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
10858         to build initial vector for BIT_AND_EXPR.
10859         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
10860
10861 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
10862
10863         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
10864         adjust z10prop set_attr.
10865
10866 2010-06-13  Jan Hubicka  <jh@suse.cz>
10867
10868         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
10869         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
10870         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
10871         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
10872         datastructure checks into checking asserts.
10873         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
10874         * tree-ssa-sccvn.c (VN_INFO): Likewise.
10875         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
10876         df_ref_create_structure): Likewise.
10877         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
10878         pool_free): Use gcc_checking_assert.
10879         * alias.c (get_alias_set): Likewise.
10880         * var-tracking.c (variable_htab_free, shared_hash_copy,
10881         canonicalize_values_mark, variable_merge_over_cur): Likewise.
10882         * lto-streamer.c (bp_unpack_value): Likewise.
10883
10884 2010-06-13  Richard Guenther  <rguenther@suse.de>
10885
10886         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
10887         Do not stream but initialize TYPE_CANONICAL to NULL.
10888         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
10889         * gimple.c (gimple_types_compatible_p): Disregard
10890         TYPE_STRUCTURAL_EQUALITY_P.
10891         (gimple_register_type): Use TYPE_CANONICAL as cache.
10892         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
10893         before registering common types.
10894         * config/i386/i386.c (ix86_function_arg_boundary): Do not
10895         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
10896         * tree.h (TYPE_CANONICAL): Clarify documentation.
10897
10898 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
10899
10900         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
10901         LIBCALL_VALUE): Remove macros.
10902         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
10903         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10904         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10905         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
10906         (ia64_function_value): Make static. Handle receiving the function
10907         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
10908
10909 2010-06-12  Jan Hubicka  <jh@suse.cz>
10910
10911         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
10912         at correct place.
10913
10914 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
10915
10916         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
10917
10918 2010-06-12  Jan Hubicka  <jh@suse.cz>
10919
10920         * df-core.c (df_clear_bb_info): New function.
10921         (df_set_blocks): bb_info is always allocated.
10922         (df_get_bb_info): Use block_info_elt_size.
10923         (df_set_bb_info): Likewise.
10924         (df_compact_blocks): Update for new block_info.
10925         (grow_bb_info): New function.
10926         * df-problems.c (df_grow_bb_info): Move to df-core.c
10927         (df_rd_set_bb_info): Remove.
10928         (df_rd_free_bb_info): Do not free block pool.
10929         (df_rd_alloc): Do not create pool, use check for
10930         obstack presence instead of NULL pointer for new blocks.
10931         (df_rd_free): DO not free alloc pool; clear block_info.
10932         (problem_RD): Add size of block info structure.
10933         (df_lr_set_bb_info): Remove.
10934         (df_lr_free_bb_info): Do not free block pool.
10935         (df_lr_alloc): Do not create pool, use check for
10936         obstack presence instead of NULL pointer for new blocks.
10937         (df_lr_free): DO not free alloc pool; clear block_info.
10938         (problem_LR): Add size of block info structure.
10939         (df_live_set_bb_info): Remove.
10940         (df_live_free_bb_info): Do not free block pool.
10941         (df_live_alloc): Do not create pool, use check for
10942         obstack presence instead of NULL pointer for new blocks.
10943         (df_live_free): DO not free alloc pool; clear block_info.
10944         (problem_LIVE): Add size of block info structure.
10945         (problem_CHAIN): Add size of block info structure.
10946         (df_byte_lr_set_bb_info): Remove.
10947         (df_byte_lr_free_bb_info): Do not free block pool.
10948         (df_byte_lr_alloc): Do not create pool, use check for
10949         obstack presence instead of NULL pointer for new blocks.
10950         (df_byte_lr_free): DO not free alloc pool; clear block_info.
10951         (problem_BYTE_LR): Add size of block info structure.
10952         (problem_NOTE): Add size of block info structure.
10953         (df_byte_MD_set_bb_info): Remove.
10954         (df_byte_MD_free_bb_info): Do not free block pool.
10955         (df_byte_MD_alloc): Do not create pool, use check for
10956         obstack presence instead of NULL pointer for new blocks.
10957         (df_byte_MD_free): DO not free alloc pool; clear block_info.
10958         (problem_BD): Add size of block info structure.
10959         * df-scan.c (df_scan_free_internal): Free block pool.
10960         (df_scan_set_bb_info): Remove.
10961         (df_scan_free_bb_info): Check for artificial_defs instead
10962         of bb_info being non-NULL.
10963         (df_scan_alloc): DO not create df_scan_block pool.
10964         (problem_SCAN): Set size of block info.
10965         (df_bb_refs_record): Do not allocate bb_info.
10966         * df.h (df_problem): Add block_info_elt_size.
10967         (struct dataflow): Change block_info to void *.
10968         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
10969         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
10970         in-line structures.
10971
10972 2010-06-12  Jan Hubicka  <jh@suse.cz>
10973
10974         PR tree-optimize/44485
10975         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
10976         containing use of return value of noreturn function.
10977
10978 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
10979
10980         * targhooks.c (default_function_value): Don't use
10981         FUNCTION_OUTGOING_VALUE.
10982         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
10983         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
10984
10985 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
10986
10987         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
10988         Add crtfastmath.o to extra_parts.
10989         * config/mips/crtfastmath.c: New.
10990         * config/mips/linux.h (ENDFILE_SPEC): New.
10991
10992 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
10993
10994         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
10995         old_type in parameter.
10996         (gcc_type_for_value): Update call to gcc_type_for_interval.
10997         (compute_type_for_level_1): Renamed compute_type_for_level.
10998         Update call to gcc_type_for_interval.
10999
11000 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
11001
11002         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
11003         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
11004
11005 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
11006
11007         * opts-common.c: Include options.h.
11008         (integral_argument): Move from opts.c.
11009         (decode_cmdline_option): New.  Based on read_cmdline_option.
11010         * opts.c (integral_argument): Move to opts-common.c.
11011         (read_cmdline_option): Move most contents to
11012         decode_cmdline_option.  Use %qs in diagnostics.
11013         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
11014         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
11015         decode_cmdline_option): New.
11016
11017 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
11018
11019         PR target/44481
11020         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
11021         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
11022         (partiysi2_cmp): Ditto.
11023         (*partiyhi2_cmp): Ditto.
11024         (*parityqi2_cmp): Remove.
11025
11026 2010-06-11  Jan Hubicka  <jh@suse.cz>
11027
11028         * bitmap.h (bmp_iter_next_bit): New.
11029         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
11030
11031 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
11032             Eric Botcazou  <ebotcazou@adacore.com>
11033
11034         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
11035         computed cost.
11036
11037 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
11038
11039         * config/i386/i386.md (unspec): New define_c_enum.
11040         (unspecv): Ditto.
11041
11042 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
11043
11044         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
11045
11046 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
11047
11048         PR middle-end/44483
11049         * tree-if-conv.c (bb_predicate_s): New struct.
11050         (bb_predicate_p): New.
11051         (bb_has_predicate): New.
11052         (bb_predicate): New.
11053         (set_bb_predicate): New.
11054         (bb_predicate_gimplified_stmts): New.
11055         (set_bb_predicate_gimplified_stmts): New.
11056         (add_bb_predicate_gimplified_stmts): New.
11057         (init_bb_predicate): New.
11058         (free_bb_predicate): New.
11059         (is_predicated): Use bb_predicate.
11060         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
11061         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
11062         before processing their successors.
11063         (clean_predicate_lists): Removed.
11064         (find_phi_replacement_condition): Use bb_predicate.
11065         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
11066         computations.
11067         (insert_gimplified_predicates): New.
11068         (combine_blocks): Call insert_gimplified_predicates.
11069         (tree_if_conversion): Call free_bb_predicate instead of
11070         clean_predicate_lists.
11071
11072 2010-10-11  Paul Brook  <paul@codesourcery.com>
11073
11074         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
11075         * config/arm/arm.c (all_architectures): Change v7e-m default to
11076         cortexm4.
11077         * config/arm/arm-cores.def: Add cortex-m4.
11078         * config/arm/arm-tune.md: Regenerate.
11079
11080 2010-06-11  Jan Hubicka  <jh@suse.cz>
11081
11082         * ipa-pure-const.c (special_builtlin_state): New function.
11083         (check_call): Use it instead of special casign BUILT_IN_RETURN.
11084         (propagate_pure_const): Use it.
11085
11086 2010-06-11  Jan Hubicka  <jh@suse.cz>
11087
11088         * df-problems.c (df_live_scratch): Convert to bitmap_head.
11089         (df_live_alloc): Initialize df_live_scratch when initializing
11090         problem_data.
11091         (df_live_transfer_function): Update uses of df_live_scratch.
11092         (df_live_free): Free problem_data; clear df_live_scratch before
11093         releasing the obstack.
11094         (df_md_free): Free problem data.
11095
11096 2010-06-11  Jan Hubicka  <jh@suse.cz>
11097
11098         * doc/invoke.texi (Wsuggest-attribute): Document.
11099         (Wmissing-noreturn): Remove.
11100         * ipa-pure-const.c (warn_function_noreturn): New function.
11101         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
11102         warn_missing_noreturn.
11103         * common.opt (Wsuggest-attribute=noreturn): New.
11104         * tree-flow.h (warn_function_noreturn): Declare.
11105         * tree-cfg.c (execute_warn_function_noreturn): Use
11106         warn_function_noreturn.
11107         (gate_warn_function_noreturn): New.
11108         (pass_warn_function_noreturn): Update.
11109
11110 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11111
11112         * c-typeck.c (handle_warn_cast_qual): Add loc
11113         parameter. Improve warning message.
11114         (build_c_cast): Pass location to handle_warn_cast_qual.
11115
11116 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
11117
11118         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
11119         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
11120         insn mnemonic.
11121         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
11122
11123 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
11124
11125         Fix bootstap on mips
11126         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
11127         be naming typedefs.
11128
11129 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
11130
11131         * system.h (helper_const_non_const_cast): New inline for
11132         gcc version <= 4.0.
11133         (CONST_CAST2): For gcc version <= 4.0 use
11134         new helper to do const/non-const casting.
11135
11136 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11137
11138         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
11139         * Makefile.in (OBJS-common): Include insn-enums.o.
11140         (insn-enums.o): New rule.
11141         (simple_generated_c): Add insn-enums.c.
11142         (build/genenums.o): New rule.
11143         (genprogmd): Add "enums".
11144         * genconstants.c (print_enum_type): Declare a C string array
11145         for each enum.
11146         * genenums.c: New file.
11147         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
11148         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
11149         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
11150
11151 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11152
11153         * doc/md.texi (define_enum_attr): Document.
11154         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
11155         * read-md.h (lookup_enum_type): Declare.
11156         * read-md.c (lookup_enum_type): New function.
11157         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
11158         * genattrtab.c (attr_desc): Add an enum_name field.
11159         (evaluate_eq_attr): Take the associated attribute as argument.
11160         Get the enum prefix from the enum_name field, if defined.
11161         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
11162         (simplify_test_exp): Pass attr to evaluate_eq_attr.
11163         (add_attr_value): New function, split out from...
11164         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
11165         (write_test_expr): Pass attr to evaluate_eq_attr.
11166         (write_attr_get): Use the enum_name as the enum tag, if defined.
11167         (write_attr_valueq): Use the enum_name as a prefix, if defined.
11168         (find_attr): Initialize enum_name.
11169         (main): Handle DEFINE_ENUM_ATTR.
11170         * gensupport.c (process_rtx): Likewise.
11171         * config/mips/mips.h (mips_tune_attr): Delete.
11172         * config/mips/mips.md (cpu): Use define_attr_enum.
11173
11174 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11175
11176         * doc/md.texi (define_c_enum, define_enum): Document.
11177         * read-md.h (md_constant): Add a parent_enum field.
11178         (enum_value, enum_type): New structures.
11179         (upcase_string, traverse_enum_types): Declare.
11180         * read-md.c (enum_types): New variable.
11181         (upcase_string, add_constant): New functions.
11182         (handle_constants): Don't create the hash table here.
11183         Use add_constant.
11184         (traverse_md_constants): Don't check for a null md_constants.
11185         (decimal_string, handle_enum, traverse_enum_types): New functions.
11186         (read_md_files): Initialize md_constants and md_enums.
11187         * genconstants.c (print_md_constant): Ignore info argument.
11188         Only print constants that belong to no enum.
11189         (print_enum_type): New function.
11190         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
11191         for each defined enum type.
11192         * config/mips/mips.md (processor): New define_enum.
11193         (unspec): New define_c_enum.
11194         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
11195         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
11196         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
11197         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
11198         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
11199         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
11200         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
11201         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
11202         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
11203         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
11204         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
11205         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
11206         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
11207         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
11208         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
11209         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
11210         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
11211         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
11212         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
11213         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
11214         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
11215         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
11216         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
11217         (UNSPEC_RDDSP): Move to mips-dsp.md.
11218         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
11219         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
11220         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
11221         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
11222         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
11223         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
11224         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
11225         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
11226         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
11227         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
11228         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
11229         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
11230         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
11231         Moved to mips-dspr2.md.
11232         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
11233         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
11234         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
11235         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
11236         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
11237         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
11238         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
11239         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
11240         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
11241         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
11242         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
11243         UNSPEC_LOONGSON_PSADBH)
11244         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
11245         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
11246         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
11247         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
11248         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
11249         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
11250         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
11251         (cpu): Update comment.
11252         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
11253         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
11254         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
11255         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
11256         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
11257         UNSPEC_LOONGSON_PCMPEQ)
11258         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
11259         UNSPEC_LOONGSON_PINSR_0)
11260         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
11261         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
11262         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
11263         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
11264         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
11265         UNSPEC_LOONGSON_PSADBH)
11266         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
11267         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
11268         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
11269         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
11270         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
11271         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
11272         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
11273         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
11274         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
11275         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
11276         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
11277         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
11278         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
11279         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
11280         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
11281         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
11282         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
11283         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
11284         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
11285         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
11286         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
11287         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
11288         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
11289         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
11290         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
11291         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
11292         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
11293         (UNSPEC_RDDSP): Moved from mips.md.
11294         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
11295         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
11296         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
11297         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
11298         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
11299         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
11300         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
11301         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
11302         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
11303         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
11304         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
11305         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
11306         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
11307         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
11308         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
11309         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
11310         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
11311         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
11312         (UNSPEC_SCC): Moved from mips.md.
11313         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
11314         "processor_type" to "processor".
11315         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
11316         * config/mips/mips.h (processor_type): Delete.
11317         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
11318         "processor_type" to "processor".
11319
11320 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11321
11322         * configure.ac (tm_include_list): Add insn-constants.h.
11323         * configure: Regenerate.
11324         * Makefile.in (GTM_H): Move insn-constants.h here from...
11325         (TM_H): ...here.
11326         * mkconfig.sh: Remove special handling for insn-constants.h.
11327
11328 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11329
11330         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
11331         (BUILD_MD): ...this new variable.
11332         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
11333         that include the old contents of simple_generated_h and
11334         simple_generated_c.
11335         (simple_generated_h, simple_generated_c): Include them.  Add
11336         insn-constants.h.
11337         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
11338         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
11339         Remove these dependencies from the main rule and include
11340         insn-conditions.md in the command line only if it appears
11341         in the dependency list.
11342         (insn-constants.h, s-constants): Delete.
11343         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
11344         or gensupport.h.
11345         (build/genmddeps.o): Likewise.
11346         (genprogrtl): New variable that contains everything from genprogmd
11347         except mddeps and constants.
11348         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
11349         depend on $(BUILD_MD)
11350         (genprog): New variable.  Make these programs depend on
11351         $(BUILD_ERRORS).
11352         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
11353         (main): Use read_md_files instead of init_rtx_reader_args.
11354         * genconstants.c: As for genmddeps.c.
11355         * read-md.h (read_skip_construct): Declare.
11356         * read-md.c (read_skip_construct): New function.
11357         (handle_file): Allow a null handle_directive, skipping the
11358         construct if so.
11359         (parse_include): Update the comment accordingly.
11360
11361 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11362
11363         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
11364         * genmddeps.c: Include read-md.h.
11365         (main): Call init_rtx_reader_args instead of init_md_reader_args.
11366         * genattr.c (main): Likewise.
11367         * genattrtab.c (main): Likewise.
11368         * genautomata.c (main): Likewise.
11369         * gencodes.c (main): Likewise.
11370         * genconditions.c (main): Likewise.
11371         * genconfig.c (main): Likewise.
11372         * genconstants.c (main): Likewise.
11373         * genemit.c (main): Likewise.
11374         * genextract.c (main): Likewise.
11375         * genflags.c (main): Likewise.
11376         * genopinit.c (main): Likewise.
11377         * genoutput.c (main): Likewise.
11378         * genpeep.c (main): Likewise.
11379         * genrecog.c (main): Likewise.
11380         * genpreds.c (main): Likewise.
11381         * gensupport.h (in_fname): Move to read-md.h.
11382         (init_md_reader_args_cb): Rename to...
11383         (init_rtx_reader_args_cb): ...this and return a bool.
11384         (init_md_reader_args): Rename to...
11385         (init_rtx_reader_args): ...this and return a bool.
11386         (include_callback): Move to read-md.h.
11387         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
11388         (file_name_list, first_dir_md_include): Move to read-md.c
11389         (first_bracket_include): Delete unused variable.
11390         (last_dir_md_include): Move to read-md.c.
11391         (process_include): Delete, moving code to read-md.c:handle_include.
11392         (process_rtx): Don't handle INCLUDE.
11393         (save_string): Delete.
11394         (rtx_handle_directive): New function.
11395         (init_md_reader_args_cb): Rename to...
11396         (init_rtx_reader_args_cb): ...this and return a boolean success value.
11397         Use read_md_args.
11398         (init_md_reader_args): Rename to...
11399         (init_rtx_reader_args): ...this and return a boolean success value.
11400         * rtl.def (INCLUDE): Delete.
11401         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
11402         argument.
11403         * read-rtl.c (read_conditions): Don't gobble ')' here.
11404         (read_mapping): Likewise.
11405         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
11406         Handle top-level non-rtx constructs here rather than in read_rtx_1.
11407         Store the whole queue in *X.  Remove call to init_md_reader.
11408         (read_rtx_1): Rename to...
11409         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
11410         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
11411         here.
11412         (read_nested_rtx): New function.  Handle (nil) here rather than
11413         in read_rtx_code.
11414         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
11415         gobble ')' here.
11416         * read-md.h (directive_handler_t): New type.
11417         (in_fname, include_callback): Moved from read-md.h.
11418         (read_constants, init_md_reader): Delete.
11419         (read_md_files): Declare.
11420         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
11421         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
11422         from gensupport.c.
11423         (read_constants): Rename to...
11424         (handle_constants): ...this.  Don't gobble ')' here.
11425         (handle_include, handle_file, handle_toplevel_file)
11426         (parse_include): New functions, mostly taken from gensupport.c.
11427         (init_md_reader): Subsume into...
11428         (read_md_files): ...this new function.
11429
11430 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11431
11432         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
11433         (unread_char): Decrement read_md_lineno after putting back '\n'.
11434         * read-md.c (fatal_with_file_and_line): Push back any characters
11435         that we decide not to add to the context.
11436         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
11437         fatal_expected_char in cases where '/' ends a line (for example).
11438         (read_name): Don't increment read_md_lineno here.
11439         (read_escape): Likewise.
11440         (read_quoted_string): Likewise.
11441         (read_braced_string): Likewise.
11442
11443 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11444
11445         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
11446         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
11447         * genconstants.c: Include read-md.h.
11448         * read-rtl.c (md_constants): Move to read-md.c.
11449         (md_name): Move to read-md.h.
11450         (initialize_iterators): Use leading_string_hash instead of def_hash
11451         and leading_string_eq_p instead of def_name_eq_p.
11452         (read_name): Move to read-md.c.
11453         (def_hash, def_name_eq_p): Delete.
11454         (read_constants, traverse_md_constants): Move to read-md.c.
11455         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
11456         * read-md.h: Include hashtab.h.
11457         (md_name): Moved from read-rtl.c.
11458         (md_constant): Moved from read-md.h.
11459         (leading_string_hash, leading_string_eq_p, read_name)
11460         (read_constants, traverse_md_constants): Declare.
11461         * read-md.c (md_constants): Moved from read-rtl.c.
11462         (leading_string_hash, leading_string_eq_p): New functions.
11463         (read_name, read_constants, traverse_md_constants): Moved from
11464         read-rtl.c.
11465
11466 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11467
11468         * read-rtl.c (md_name): New structure.
11469         (read_name): Take an md_name instead of a buffer pointer.
11470         Use the "string" field instead of strcpy when expanding constants.
11471         (read_constants): Remove the tmp_char argument.  Update the calls
11472         to read_name, using two local name buffers instead of the tmp_char
11473         argument.  Merge the constant-creation code.
11474         (read_conditions): Remove the tmp_char argument.  Update the calls
11475         to read_name, using a local name buffer instead of the tmp_char
11476         argument.
11477         (read_mapping): Replace tmp_char variable with a local name buffer.
11478         Update the calls to read_name.
11479         (read_rtx_1): Likewise.  Update the calls to read_constants and
11480         read_conditions.
11481
11482 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11483
11484         * Makefile.in (build/read-md.o): Depend on errors.h.
11485         * read-md.h (error_with_line): Declare.
11486         * read-md.c: Include errors.h.
11487         (message_with_line_1): New function, extracted from...
11488         (message_with_line): ...here.
11489         (error_with_line): New function.
11490         * genattrtab.c: If a call to message_with_line is followed by
11491         "have_error = 1;", replace both statements with a call to
11492         error_with_line.
11493         * genoutput.c: Likewise.
11494         * genpreds.c: Likewise.
11495         * genrecog.c: If a call to message_with_line is followed by
11496         "error_count++;", replace both statements with a call to
11497         error_with_line.
11498         (errorcount): Delete.
11499         (main): Don't check it.
11500         * gensupport.c: If a call to message_with_line is followed by
11501         "errors = 1;", replace both statements with a call to error_with_line.
11502         (errors): Delete.
11503         (process_define_cond_exec): Check have_error instead of errors.
11504         (init_md_reader_args_cb): Likewise.  Don't set errors.
11505
11506 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11507
11508         * read-md.h (read_md_file): Declare.
11509         (read_char, unread_char): New functions.
11510         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
11511         (read_quoted_string, read_string): Remove FILE * argument.
11512         * read-md.c (read_md_file): New variable.
11513         (read_md_filename, read_md_lineno): Update comments and remove
11514         unnecessary initialization.
11515         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
11516         (read_escape, read_quoted_string, read_braced_string, read_string):
11517         Remove FILE * argument.  Update calls accordingly, using read_char
11518         and unread_char instead of getc and ungetc.
11519         * rtl.h (read_rtx): Remove FILE * argument.
11520         * read-rtl.c (iterator_group): Remove FILE * argument from
11521         "find_builtin".
11522         (iterator_traverse_data): Remove "infile" field.
11523         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
11524         (add_mapping, read_name, read_constants, read_conditions)
11525         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
11526         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
11527         Remove file arguments from all calls, using read_char and unread_char
11528         instead of getc and ungetc.
11529         * gensupport.c (process_include): Preserve read_md_file around
11530         the include.  Set read_md_file to the handle of the included file.
11531         Update call to read_rtx.
11532         (init_md_reader_args_cb): Set read_md_file to the handle of the file
11533         and remove local FILE *.  Update calls to read_rtx.
11534
11535 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11536
11537         * read-md.h (read_rtx_lineno): Rename to...
11538         (read_md_lineno): ...this.
11539         (read_rtx_filename): Rename to...
11540         (read_md_filename): ...this.
11541         (copy_rtx_ptr_loc): Rename to...
11542         (copy_md_ptr_loc): ...this.
11543         (print_rtx_ptr_loc): Rename to...
11544         (print_md_ptr_loc): ...this.
11545         * read-md.c: Likewise.  Update references after renaming.
11546         (string_obstack): Replace RTL with MD in comment.
11547         (set_rtx_ptr_loc): Rename to...
11548         (set_md_ptr_loc): ...this.
11549         (get_rtx_ptr_loc): Rename to...
11550         (get_md_ptr_loc): ...this.
11551         * genconditions.c: Update references after renaming.
11552         * genemit.c: Likewise.
11553         * genoutput.c: Likewise.
11554         * genpreds.c: Likewise.
11555         * gensupport.c: Likewise.
11556         * read-rtl.c: Likewise.
11557
11558 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11559
11560         * Makefile.in (READ_MD_H): New variable.
11561         (BUILD_RTL): Add build/read-md.o.
11562         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
11563         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
11564         (build/genattrtab.o, build/genconditions.o build/genemit.o)
11565         (build/genextract.o, build/genflags.o, build/genoutput.o)
11566         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
11567         (build/read-md.o): New rule.
11568         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
11569         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
11570         * coretypes.h: ...here.
11571         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
11572         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
11573         * genattr.c: Include read-md.h.
11574         * genattrtab.c: Likewise.
11575         * genconditions.c: Likewise.
11576         * genemit.c: Likewise.
11577         * genextract.c: Likewise.
11578         * genflags.c: Likewise.
11579         * genoutput.c: Likewise.
11580         * genpreds.c: Likewise.
11581         * genrecog.c: Likewise.
11582         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
11583         (join_c_conditions, print_c_condition, read_rtx_filename)
11584         (read_rtx_lineno): Move to read-md.h.
11585         * read-rtl.c: Include read-md.h.
11586         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
11587         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
11588         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
11589         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
11590         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
11591         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
11592         (read_braced_string, read_string): Move to read-md.c.
11593         (read_rtx): Move some initialization to init_md_reader and call
11594         init_md_reader here.
11595         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
11596         Move to read-md.h.
11597         * gensupport.c: Include read-md.h.
11598         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
11599         * read-md.h, read-md.c: New files.
11600
11601 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
11602
11603         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
11604         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11605         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
11606         * config/moxie/moxie.c (moxie_function_value): Make static.
11607         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
11608         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11609
11610 2010-06-10  Martin Jambor  <mjambor@suse.cz>
11611
11612         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
11613         * dbgcnt.def (tree_sra): New counter.
11614         * tree-sra.c: Include dbgcnt.h.
11615         (gate_intra_sra): Check tree_sra debug counter.
11616
11617 2010-06-10  Martin Jambor  <mjambor@suse.cz>
11618
11619         PR tree-optimization/44258
11620         * tree-sra.c (build_access_subtree): Return false iff there is a
11621         partial overlap.
11622         (build_access_trees): Likewise.
11623         (analyze_all_variable_accesses): Disqualify candidates if
11624         build_access_trees returns true for them.
11625
11626 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
11627
11628         PR debug/41371
11629         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
11630         tail-recurse into canonical node.  Fast-forward over
11631         non-canonical VALUEs.
11632
11633 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
11634
11635         PR boostrap/44470
11636         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
11637         (*addsi_1_zext) <TYPE_LEA>: Likewise.
11638         (add lea splitter): Likewise.
11639         (add_zext lea splitter): Likewise.
11640
11641 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
11642
11643         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
11644
11645 2010-06-10  Jan Hubicka  <jh@suse.cz>
11646
11647         * df-problems.c (df_live_problem_data): Add live_bitmaps.
11648         (df_live_alloc): Initialize problem data and live_osbtacks.
11649         (df_live_finalize): Remove obstack, problem data; do not
11650         clear all bitmaps.
11651         (df_live_top_dump, df_live_bottom_dump): Do not dump old
11652         data when not allocated.
11653         (df_live_verify_solution_start): Do not allocate problem data.
11654         (df_live_verify_solution_end): Check if out is allocated.
11655         (struct df_md_problem_data): New structure.
11656         (df_md_alloc): Allocate problem data.
11657         (df_md_free): Free problem data; do not clear bitmaps.
11658
11659 2010-06-10  Jan Beulich  <jbeulich@novell.com>
11660
11661         PR bootstrap/37304
11662         * configure.ac: Replace $() with ${} when intending to expand
11663         variables rather than invoking commands.
11664         * configure: Re-generate.
11665
11666 2010-06-10  Jan Hubicka  <jh@suse.cz>
11667
11668         PR rtl-optimization/44460
11669         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
11670         TYPE_NEEDS_CONSTRUCTING sanity check.
11671
11672 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
11673
11674         * doc/include/fdl.texi: Move to GFDL version 1.3.
11675
11676         * doc/cpp.texi: Move to GFDL version 1.3.
11677         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
11678         * doc/gccint.texi: Move to GFDL version 1.3.
11679         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
11680         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
11681         * doc/invoke.texi: Move to GFDL version 1.3.
11682
11683 2010-06-09  Jan Hubicka  <jh@suse.cz>
11684
11685         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
11686         Break out from ...
11687         (propagate) ... here; swap the order.
11688
11689 2010-06-09  Jan Hubicka  <jh@suse.cz>
11690
11691         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
11692         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
11693         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
11694         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
11695
11696 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
11697
11698         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
11699         Do not the gather memory reference in the outer loop if the step
11700         is not a constant.
11701
11702 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
11703
11704         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
11705         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
11706         8 to 4.  Minor change of the related comments.
11707
11708 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
11709
11710         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
11711         the scev analysis when the variable is not used outside the loop
11712         in a close phi node: call compute_overall_effect_of_inner_loop.
11713
11714 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
11715
11716         * graphite-sese-to-poly.c (single_pred_cond): Renamed
11717         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
11718         (build_sese_conditions_before): Renamed call to single_pred_cond.
11719         (build_sese_conditions_after): Same.
11720
11721 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
11722
11723         * graphite-poly.h: Fix comments and indentation.
11724         * graphite-sese-to-poly.c: Same.
11725         (build_sese_conditions_before): Compute stmt and gbb only when needed.
11726         * tree-chrec.c: Fix comments and indentation.
11727         (tree-ssa-loop-niter.c): Same.
11728
11729 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
11730
11731         PR rtl-optimization/42461
11732         * dce.c (deletable_insn_p): Return true for const or pure calls again.
11733         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
11734
11735 2010-06-09  Jan Hubicka  <jh@suse.cz>
11736
11737         * bitmap.c (bitmap_and): Walk array forward.
11738         (bitmap_and_compl_into): Likewise.
11739         (bitmap_xor): Likewise.
11740         (bitmap_xor_into):  Likewise.
11741         (bitmap_equal_p): Likewise.
11742         (bitmap_intersect_p): Likewise.
11743         (bitmap_intersect_compl_p): Likewise.
11744         (bitmap_ior_and_into): Likewise.
11745         (bitmap_elt_copy): Likewise.
11746         (bitmap_and_compl): Likewise.
11747         (bitmap_elt_ior): Likewise.
11748
11749 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
11750
11751         * opts-common.c (prune_options): Ensure replacement argv array
11752         is correctly terminated by a NULL entry.
11753
11754 2010-06-09  Jan Hubicka  <jh@suse.cz>
11755
11756         * cgraph.h (varpool_first_static_initializer,
11757         varpool_next_static_initializer): Make checking only when
11758         checking enabled.
11759         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
11760         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
11761         gcc_assert to gcc_checking_assert.
11762         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
11763         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
11764         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
11765         op_iter_init_phiuse, op_iter_init_phidef,
11766         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
11767         gcc_checking_assert.
11768         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
11769         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
11770         partition_is_global, live_on_entry, live_on_exit,
11771         live_merge_and_clear): Likewise.
11772         * system.h (gcc_checking_assert): New macro.
11773         * gimple.h (set_bb_seq): Use gcc_checking_assert.
11774
11775 2010-06-09  Jason Merrill  <jason@redhat.com>
11776
11777         * Makefile.in (TAGS): Collect tags info from c-family.
11778
11779 2010-06-09  Jan Hubicka  <jh@suse.cz>
11780
11781         * gimple.h (gcc_gimple_checking_assert): New macro.
11782         (gimple_set_def_ops, gimple_set_use_ops,
11783         gimple_set_vuse, gimple_set_vdef,
11784         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
11785         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
11786         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
11787         gimple_asm_output_op, gimple_asm_output_op_ptr,
11788         gimple_asm_set_output_op, gimple_asm_clobber_op,
11789         gimple_asm_set_clobber_op, gimple_asm_label_op,
11790         gimple_asm_set_label_op, gimple_try_set_kind,
11791         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
11792         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
11793         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
11794         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
11795         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
11796         gimple_omp_for_set_initial, gimple_omp_for_final,
11797         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
11798         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
11799         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
11800         conditional with ENABLE_GIMPLE_CHECKING.
11801         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
11802
11803 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
11804
11805         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
11806         (get_computation_cost_at): Use it.
11807         (determine_use_iv_cost_condition): Likewise.
11808         (determine_iv_cost): Likewise.
11809
11810 2010-06-09  Richard Guenther  <rguenther@suse.de>
11811
11812         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
11813         replace constants.
11814
11815 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
11816
11817         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
11818
11819 2010-06-09  Martin Jambor  <mjambor@suse.cz>
11820
11821         PR tree-optimization/44423
11822         * tree-sra.c (dump_access): Dump also grp_assignment_read.
11823         (analyze_access_subtree): Pass negative allow_replacements to children
11824         if the current type is scalar.
11825
11826 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
11827
11828         PR testsuite/42843
11829         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
11830         * doc/plugins.texi (Plugin license check): Update information
11831         on type of plugin_is_GPL_compatible.
11832         * Makefile.in (PLUGINCC): Define as $(COMPILER).
11833         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
11834
11835 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
11836
11837         * config/arm/arm.c (thumb2_reorg): New function.
11838         (arm_reorg): Call it.
11839         * config/arm/thumb2.md (define_peephole2 for flag clobbering
11840         arithmetic operations): Delete.
11841
11842 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
11843
11844         PR target/44067
11845         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
11846         e500v2 target.
11847
11848 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
11849
11850         PR plugins/44459
11851         * gcc-plugin.h: Encapsulate all declarations in extern "C".
11852
11853 2010-06-08  Jan Hubicka  <jh@suse.cz>
11854
11855         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
11856         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
11857
11858 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
11859
11860         PR tree-optimization/39874
11861         PR middle-end/28685
11862         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
11863         Declare.
11864         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
11865         same_bool_result_p): New.
11866         (and_var_with_comparison, and_var_with_comparison_1,
11867         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
11868         (or_var_with_comparison, or_var_with_comparison_1,
11869         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
11870         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
11871         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
11872         of combine_comparisons.
11873         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
11874
11875 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
11876
11877         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
11878         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11879         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
11880         pdp11_function_value_regno_p): New functions.
11881         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11882         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11883
11884 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
11885
11886         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
11887         Thumb-2 in the MINUS case.
11888
11889 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11890
11891         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
11892
11893         * doc/gty.texi (GTY Options): Document typed GC allocation and
11894         variable_size GTY option.
11895
11896         * ggc-internal.h: New.
11897
11898         * ggc.h: Update copyright year.
11899         (digit_string): Move to stringpool.c.
11900         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
11901         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
11902         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
11903         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
11904         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
11905         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
11906         (ggc_force_collect, ggc_get_size, ggc_statistics)
11907         (ggc_print_common_statistics): Move to ggc-internal.h.
11908         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
11909         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
11910         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
11911         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
11912         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
11913         (ggc_alloc_zone_pass_stat): Remove.
11914         (ggc_internal_alloc_stat, ggc_internal_alloc)
11915         (ggc_internal_cleared_alloc_stat): New.
11916         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
11917         (ggc_internal_vec_alloc_stat)
11918         (ggc_internal_cleared_vec_alloc_stat)
11919         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
11920         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
11921         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
11922         (ggc_cleared_alloc_ptr_array_two_args): New.
11923         (htab_create_ggc, splay_tree_new_ggc): Redefine.
11924         (ggc_splay_alloc): Change the type of the first argument to
11925         enum gt_types_enum.
11926         (ggc_alloc_string): Make macro.
11927         (ggc_alloc_string_stat): New.
11928         (ggc_strdup): Redefine.
11929         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
11930         (ggc_alloc_rtvec_sized): New.
11931         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
11932         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
11933         (ggc_internal_cleared_alloc_zone_stat)
11934         (ggc_internal_zone_alloc_stat)
11935         (ggc_internal_zone_cleared_alloc_stat)
11936         (ggc_internal_zone_vec_alloc_stat)
11937         (ggc_alloc_zone_rtx_def_stat)
11938         (ggc_alloc_zone_tree_node_stat)
11939         (ggc_alloc_zone_cleared_tree_node_stat)
11940         (ggc_alloc_cleared_gimple_statement_d_stat): New.
11941
11942         * ggc-common.c: Include ggc-internal.h.
11943         (ggc_internal_cleared_alloc_stat): Rename from
11944         ggc_alloc_cleared_stat.
11945         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
11946         (ggc_calloc): Remove.
11947         (ggc_cleared_alloc_htab_ignore_args): New.
11948         (ggc_cleared_alloc_ptr_array_two_args): New.
11949         (ggc_splay_alloc): Add obj_type parameter.
11950         (init_ggc_heuristics): Formatting fixes.
11951
11952         * ggc-none.c: Update copyright year.
11953         (ggc_alloc_stat): Rename to ggc_alloc_stat.
11954         (ggc_alloc_cleared_stat): Rename to
11955         ggc_internal_cleared_alloc_stat.
11956         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
11957
11958         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
11959         Remove references to ggc_alloc in comments.
11960         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
11961         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
11962         (new_ggc_zone, destroy_ggc_zone): Remove.
11963         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
11964
11965         * ggc-zone.c: Include ggc-internal.h.  Remove references to
11966         ggc_alloc in comments.
11967         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
11968         (ggc_internal_alloc_zone_pass_stat): New.
11969         (ggc_internal_cleared_alloc_zone_stat): New.
11970         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
11971         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
11972         (new_ggc_zone, destroy_ggc_zone): Remove.
11973
11974         * stringpool.c: Update copyright year.  Include ggc-internal.h
11975         (digit_vector): Make static.
11976         (digit_string): Moved from ggc.h.
11977         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
11978         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
11979
11980         * Makefile.in (GGC_INTERNAL_H): New.
11981         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
11982         $(GGC_INTERNAL_H) to dependencies.
11983
11984         * gentype.c: Update copyright year.
11985         (walk_type): Accept variable_size GTY option.
11986         (USED_BY_TYPED_GC_P): New macro.
11987         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
11988         whitespace at the end of strings.
11989         (get_type_specifier, variable_size_p): New functions.
11990         (alloc_quantity, alloc_zone): New enums.
11991         (write_typed_alloc_def): New function.
11992         (write_typed_struct_alloc_def): Likewise.
11993         (write_typed_typed_typedef_alloc_def): Likewise.
11994         (write_typed_alloc_defns): Likewise.
11995         (output_typename, write_splay_tree_allocator_def): Likewise.
11996         (write_splay_tree_allocators): Likewise.
11997         (main): Call write_typed_alloc_defns and
11998         write_splay_tree_allocators.
11999
12000         * lto-streamer.h (lto_file_decl_data_ptr): New.
12001
12002         * passes.c (order): Define using cgraph_node_ptr.
12003
12004         * strinpool.c (struct string_pool_data): Declare nested_ptr using
12005         ht_identifier_ptr.
12006
12007         * gimple.h (union gimple_statement_d): Likewise.
12008
12009         * rtl.h (struct rtx_def): Likewise.
12010         (struct rtvec_def): Likewise.
12011
12012         * tree.h (union tree_node): Likewise.
12013
12014         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
12015
12016         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
12017
12018         * tree-scalar-evolution.c (scev_initialize): Likewise.
12019
12020         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
12021
12022         * dwarf2asm.c (dw2_force_const_mem): Likewise.
12023
12024         * omp-low.c (lower_omp_critical): Likewise.
12025
12026         * bitmap.h (struct bitmap_head_def): Update comment to not
12027         reference ggc_alloc.
12028
12029         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
12030
12031         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
12032
12033         * ipa-prop.c (duplicate_ggc_array): Rename to
12034         duplicate_ipa_jump_func_array.  Use typed GC allocation.
12035         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
12036
12037         * gimple.c (gimple_alloc_stat): Use
12038         ggc_alloc_cleared_gimple_statement_d_stat.
12039
12040         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
12041
12042         * tree.c (make_node_stat): Use
12043         ggc_alloc_zone_cleared_tree_node_stat.
12044         (make_tree_vec_stat): Likewise.
12045         (build_vl_exp_stat): Likewise.
12046         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
12047         (make_tree_binfo_stat): Likewise.
12048         (tree_cons_stat): Likewise.
12049
12050         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
12051         (shallow_copy_rtx_stat): Likewise.
12052         (make_node_stat): Likewise.
12053
12054         * lto-symtab.c: Fix comment.
12055
12056         * tree-cfg.c (create_bb): Update comment to not reference
12057         ggc_alloc_cleared.
12058         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
12059
12060         * varpool.c (varpool_node): Use typed GC allocation.
12061         (varpool_extra_name_alias): Likewise.
12062
12063         * varasm.c (emutls_decl): Likewise.
12064         (get_unnamed_section): Likewise.
12065         (get_noswitch_section): Likewise.
12066         (get_section): Likewise.
12067         (get_block_for_section): Likewise.
12068         (build_constant_desc): Likewise.
12069         (create_constant_pool): Likewise.
12070         (force_const_mem): Likewise.
12071
12072         * tree.c (build_vl_exp_stat): Likewise.
12073         (build_real): Likewise.
12074         (build_string): Likewise.
12075         (decl_debug_expr_insert): Likewise.
12076         (decl_value_expr_insert): Likewise.
12077         (type_hash_add): Likewise.
12078         (build_omp_clause): Likewise.
12079
12080         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
12081
12082         * tree-ssa.c (init_tree_ssa): Likewise.
12083
12084         * tree-ssa-structalias.c (heapvar_insert): Likewise.
12085
12086         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
12087
12088         * tree-ssa-loop-niter.c (record_estimate): Likewise.
12089
12090         * tree-ssa-alias.c (get_ptr_info): Likewise.
12091
12092         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
12093
12094         * tree-phinodes.c (allocate_phi_node): Likewise.
12095
12096         * tree-iterator.c (tsi_link_before): Likewise.
12097         (tsi_link_after): Likewise.
12098
12099         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
12100
12101         * tree-dfa.c (create_var_ann): Likewise.
12102
12103         * tree-cfg.c (create_bb): Likewise.
12104
12105         * toplev.c (alloc_for_identifier_to_locale): Likewise.
12106         (general_init): Likewise.
12107
12108         * stringpool.c (stringpool_ggc_alloc): Likewise.
12109         (gt_pch_save_stringpool): Likewise.
12110
12111         * sese.c (if_region_set_false_region): Likewise.
12112
12113         * passes.c (do_per_function_toporder): Likewise.
12114
12115         * optabs.c (set_optab_libfunc): Likewise.
12116         (set_conv_libfunc): Likewise.
12117
12118         * lto-symtab.c (lto_symtab_register_decl): Likewise.
12119
12120         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
12121         (input_eh_region): Likewise.
12122         (input_eh_lp): Likewise.
12123         (make_new_block): Likewise.
12124         (unpack_ts_real_cst_value_fields): Likewise.
12125
12126         * lto-section-in.c (lto_new_in_decl_state): Likewise.
12127
12128         * lto-cgraph.c (input_node_opt_summary): Likewise.
12129
12130         * loop-init.c (loop_optimizer_init): Likewise.
12131
12132         * lambda.h (lambda_vector_new): Likewise.
12133
12134         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
12135
12136         * ira.c (update_equiv_regs): Likewise.
12137
12138         * ipa.c (cgraph_node_set_new): Likewise.
12139         (cgraph_node_set_add): Likewise.
12140         (varpool_node_set_new): Likewise.
12141         (varpool_node_set_add): Likewise.
12142
12143         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
12144         (duplicate_ipa_jump_func_array): Likewise.
12145         (ipa_read_node_info): Likewise.
12146
12147         * ipa-cp.c (ipcp_create_replace_map): Likewise.
12148
12149         * integrate.c (get_hard_reg_initial_val): Likewise.
12150
12151         * gimple.c (gimple_alloc_stat): Likewise.
12152         (gimple_build_omp_for): Likewise.
12153         (gimple_seq_alloc): Likewise.
12154         (gimple_copy): Likewise.
12155
12156         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
12157         (gsi_insert_after_without_update): Likewise.
12158
12159         * function.c (add_frame_space): Likewise.
12160         (insert_temp_slot_address): Likewise.
12161         (assign_stack_temp_for_type): Likewise.
12162         (allocate_struct_function): Likewise.
12163         (types_used_by_var_decl_insert): Likewise.
12164
12165         * except.c (init_eh_for_function): Likewise.
12166         (gen_eh_region): Likewise.
12167         (gen_eh_region_catch): Likewise.
12168         (gen_eh_landing_pad): Likewise.
12169         (add_call_site): Likewise.
12170
12171         * emit-rtl.c (get_mem_attrs): Likewise.
12172         (get_reg_attrs): Likewise.
12173         (start_sequence): Likewise.
12174         (init_emit): Likewise.
12175
12176         * dwarf2out.c (new_cfi): Likewise.
12177         (queue_reg_save): Likewise.
12178         (dwarf2out_frame_init): Likewise.
12179         (new_loc_descr): Likewise.
12180         (find_AT_string): Likewise.
12181         (new_die): Likewise.
12182         (add_var_loc_to_decl): Likewise.
12183         (clone_die): Likewise.
12184         (clone_as_declaration): Likewise.
12185         (break_out_comdat_types): Likewise.
12186         (new_loc_list): Likewise.
12187         (loc_descriptor): Likewise.
12188         (add_loc_descr_to_each): Likewise.
12189         (add_const_value_attribute): Likewise.
12190         (tree_add_const_value_attribute): Likewise.
12191         (add_comp_dir_attribute): Likewise.
12192         (add_name_and_src_coords_attributes): Likewise.
12193         (lookup_filename): Likewise.
12194         (store_vcall_insn): Likewise.
12195         (dwarf2out_init): Likewise.
12196
12197         * dbxout.c (dbxout_init): Likewise.
12198
12199         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
12200
12201         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
12202
12203         * config/score/score7.c (score7_output_external): Likewise.
12204
12205         * config/score/score3.c (score3_output_external): Likewise.
12206
12207         * config/s390/s390.c (s390_init_machine_status): Likewise.
12208
12209         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
12210         (rs6000_init_machine_status): Likewise.
12211         (output_toc): Likewise.
12212
12213         * config/pa/pa.c (pa_init_machine_status): Likewise.
12214         (get_deferred_plabel): Likewise.
12215
12216         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
12217
12218         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
12219
12220         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
12221
12222         * config/mep/mep.c (mep_init_machine_status): Likewise.
12223         (mep_note_pragma_flag): Likewise.
12224
12225         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
12226
12227         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
12228
12229         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
12230
12231         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
12232         (i386_pe_maybe_record_exported_symbol): Likewise.
12233
12234         * config/i386/i386.c (get_dllimport_decl): Likewise.
12235         (ix86_init_machine_status): Likewise.
12236         (assign_386_stack_local): Likewise.
12237
12238         * config/frv/frv.c (frv_init_machine_status): Likewise.
12239
12240         * config/darwin.c (machopic_indirection_name): Likewise.
12241
12242         * config/cris/cris.c (cris_init_machine_status): Likewise.
12243
12244         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
12245
12246         * config/avr/avr.c (avr_init_machine_status): Likewise.
12247
12248         * config/arm/arm.c (arm_init_machine_status): Likewise.
12249
12250         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
12251         (alpha_need_linkage): Likewise.
12252         (alpha_use_linkage): Likewise.
12253
12254         * cgraph.c (cgraph_allocate_node): Likewise.
12255         (cgraph_create_edge_1): Likewise.
12256         (cgraph_create_indirect_edge): Likewise.
12257         (cgraph_add_asm_node): Likewise.
12258
12259         * cfgrtl.c (init_rtl_bb_info): Likewise.
12260
12261         * cfgloop.c (alloc_loop): Likewise.
12262         (rescan_loop_exit): Likewise.
12263
12264         * cfg.c (init_flow): Likewise.
12265         (alloc_block): Likewise.
12266         (unchecked_make_edge): Likewise.
12267
12268         * c-parser.c (c_parse_init): Likewise.
12269         (c_parse_file): Likewise.
12270
12271         * c-decl.c (bind): Likewise.
12272         (record_inline_static): Likewise.
12273         (push_scope): Likewise.
12274         (make_label): Likewise.
12275         (lookup_label_for_goto): Likewise.
12276         (finish_struct): Likewise.
12277         (finish_enum): Likewise.
12278         (c_push_function_context): Likewise.
12279
12280         * bitmap.c (bitmap_element_allocate): Likewise.
12281         (bitmap_gc_alloc_stat): Likewise.
12282
12283         * alias.c (record_alias_subset): Likewise.
12284         (init_alias_analysis): Likewise.
12285
12286 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
12287
12288         * fold-const.c (fold_comparison): Remove redundant parenthesis.
12289         * tree-inline.c (expand_call_inline): Pass translated return value of
12290         cgraph_inline_failed_string to diagnostic function.
12291
12292 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
12293             Shujing Zhao  <pearly.zhao@oracle.com>
12294
12295         PR c/37724
12296         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
12297         implicit bad conversions is initialization.
12298         (error_init): Use gmsgid instead of msgid for argument name and change
12299         the call for error.
12300         (pedwarn_init): Use gmsgid instead of msgid for argument name and
12301         change the call for pedwarn.
12302         (warning_init): Use gmsgid instead of msgid for argument name and
12303         change the call for warning.
12304
12305 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
12306
12307         * config/mips/mips-protos.h (mips_print_operand): Delete.
12308         (mips_print_operand_address): Delete.
12309         * config/mips/mips.h (mips_print_operand_punct): Delete.
12310         (PRINT_OPERAND): Delete.
12311         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12312         (PRINT_OPERAND_ADDRESS): Delete.
12313         * config/mips/mips.c (mips_print_operand_punct): Make static.
12314         (mips_print_operand_address): Make static.
12315         (mips_print_operand): Make static.  Call
12316         mips_print_operand_punct_valid_p.
12317         (mips_print_operand_punct_valid_p): New function.
12318         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12319         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12320
12321 2010-06-07  Jan Hubicka  <jh@suse.cz>
12322
12323         PR middle-end/44454
12324         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
12325         are allocated.
12326
12327 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
12328
12329         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
12330         name of RECORD.
12331
12332 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12333
12334         * doc/sourcebuild.texi (Effective-Target Keywords, Other
12335         attributes): Document gas.
12336
12337 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
12338
12339         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
12340         <TYPE_LEA>: Split instruction.
12341         <default>: Remove alternative 2 handling.
12342         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
12343         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
12344         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
12345
12346         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
12347         (ashift_zext lea splitter): Use DImode for multiplication.
12348
12349         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
12350         to generate addition.
12351
12352 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
12353
12354         * common.opt (fira-verbose): Use Var.
12355         (fpcc-struct-return): Use Init instead of VarExists.
12356         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
12357         toplev.c.
12358         * flags.h (flag_signed_char, flag_short_enums,
12359         flag_pcc_struct_return, flag_ira_verbose,
12360         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
12361         * toplev.c (flag_detailed_statistics, flag_signed_char,
12362         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
12363         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
12364         * toplev.h (flag_crossjumping, flag_if_conversion,
12365         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
12366         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
12367         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
12368         flag_cprop_registers, time_report, flag_ira_loop_pressure,
12369         flag_ira_coalesce, flag_ira_move_spills,
12370         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
12371
12372 2010-06-07  Jan Hubicka  <jh@suse.cz>
12373
12374         * df-core.c (df_analyze_problem): Do verification after allocation.
12375
12376         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
12377         (df_lr_alloc): Initialize problem data; move bitmaps to
12378         lr_bitmaps obstack.
12379         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
12380         (df_lr_verify_solution_start): Do not initialize problem data;
12381         allocate bitmaps in lr_bitmaps.
12382         (df_lr_verify_solution_end): Do not free problem data.
12383
12384 2010-06-07  Jan Hubicka  <jh@suse.cz>
12385
12386         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
12387         if caller is noreturn.
12388         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
12389         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
12390         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
12391         * ipa-pure-const.c (check_decl): Add IPA parameter.
12392         (state_from_flags): New function.
12393         (better_state, worse_state): New functions.
12394         (check_call): When in IPA mode, do not care about callees.
12395         (check_load, check_store): Update.
12396         (check_ipa_load, check_ipa_store): New.
12397         (check_stmt): When in IPA mode, use IPA checkers.
12398         (analyze_function): Use state_from_flags.
12399         (propagate): Check indirect edges and references.
12400
12401 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
12402
12403         PR rtl-optimization/44404
12404         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
12405         of count_occurrences to see if it's safe to modify mem_insn.
12406
12407 2010-06-07  Richard Guenther  <rguenther@suse.de>
12408
12409         * gimplify.c (gimplify_cleanup_point_expr): For empty body
12410         and EH-only cleanup drop the cleanup instead of inserting it
12411         unconditionally.
12412
12413 2010-06-07  Ira Rosen  <irar@il.ibm.com>
12414
12415         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
12416         documentation.
12417         * targhooks.c (default_builtin_vectorization_cost): New function.
12418         * targhooks.h (default_builtin_vectorization_cost): Declare.
12419         * target.h (enum vect_cost_for_stmt): Define.
12420         (builtin_vectorization_cost): Change argument and comment.
12421         * tree-vectorizer.h: Remove cost model macros.
12422         * tree-vect-loop.c: Include target.h.
12423         (vect_get_cost): New function.
12424         (vect_estimate_min_profitable_iters): Replace cost model macros with
12425         calls to vect_get_cost.
12426         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
12427         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
12428         default implementation.
12429         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
12430         calls to target hook builtin_vectorization_cost.
12431         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
12432         Likewise.
12433         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
12434         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
12435         implementation to return costs.
12436         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
12437         * config/spu/spu.h: Remove vectorizer cost model macros.
12438         * config/i386/i386.h: Likewise.
12439         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
12440         a call to target hook builtin_vectorization_cost.
12441
12442 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
12443
12444         PR target/44319
12445         * config/i386/i386.c (override_options): Turn zee pass on for level 2
12446         and above and defer till target is known.
12447         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
12448         turn off otherwise.
12449
12450 2010-05-25  Jan Hubicka  <jh@suse.cz>
12451
12452         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
12453         (df_compact_blocks): Likewise.
12454         * df.h (struct df): Turn hardware_regs_used,
12455         regular_block_artificial_uses, eh_block_artificial_uses,
12456         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
12457         bitmap_head.
12458         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
12459         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
12460         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
12461         df_scan_blocks, df_insn_delete, df_insn_rescan,
12462         df_insn_rescan_debug_internal, df_insn_rescan_all,
12463         df_process_deferred_rescans, df_process_deferred_rescans,
12464         df_notes_rescan, df_get_call_refs, df_get_call_refs,
12465         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
12466         df_record_entry_block_defs, df_record_exit_block_uses,
12467         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
12468         df_scan_verify): Update.
12469
12470 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
12471
12472         PR c++/44188
12473         * c-common.c (is_typedef_decl): Move this definition ...
12474         * tree.c (is_typedef_decl): ... here.
12475         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
12476         * c-common.h (is_typedef_decl): Move this declaration ...
12477         * tree.h (is_typedef_decl): ... here.
12478         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
12479         * dwarf2out.c (is_naming_typedef_decl): New function.
12480         (gen_tagged_type_die): Split out of ...
12481         (gen_type_die_with_usage): ... this function. When an anonymous
12482         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
12483         is emitted for the typedef.
12484         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
12485         anonymous tagged types.
12486
12487 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12488
12489         PR c/20000
12490         * c-decl.c (grokdeclarator): Delete warning.
12491
12492 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
12493
12494         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
12495         newly built CALL_EXPR.
12496         * tree-profile.c (tree_profiling): Don't profile functions produced
12497         for built-in stuff.
12498
12499 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
12500
12501         PR bootstrap/44427
12502         PR bootstrap/44428
12503         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
12504         endianness-independent.
12505
12506 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
12507
12508         * c-common.c: Move to c-family/.
12509         * c-common.def: Likewise.
12510         * c-common.h: Likewise.
12511         * c-cppbuiltin.c: Likewise.
12512         * c-dump.c: Likewise.
12513         * c-format.c: Likewise.
12514         * c-format.h : Likewise.
12515         * c-gimplify.c: Likewise.
12516         * c-lex.c: Likewise.
12517         * c-omp.c: Likewise.
12518         * c.opt: Likewise.
12519         * c-opts.c: Likewise.
12520         * c-pch.c: Likewise.
12521         * c-ppoutput.c: Likewise.
12522         * c-pragma.c: Likewise.
12523         * c-pragma.h: Likewise.
12524         * c-pretty-print.c: Likewise.
12525         * c-pretty-print.h: Likewise.
12526         * c-semantics.c: Likewise.
12527         * stub-objc.c: Likewise.
12528
12529         * gengtype.c (get_file_langdir): Special-case files in c-family/.
12530         (get_output_file_with_visibility): Fix name for c-common.h.
12531         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
12532
12533         * c-tree.h: Update include path for moved files.
12534         * c-lang.c: Likewise.
12535         * c-lang.h: Likewise.
12536         * c-parser.c: Likewise.
12537         * c-convert.c: Likewise.
12538         * c-decl.c: Likewise.
12539         * c-objc-common.c: Likewise.
12540         * configure.ac: Make sure c-family/ exists in the build directory.
12541         * configure: Regenerate.
12542         * Makefile.in: Update paths for moved files.  Regroup files per
12543         location and update dependencies.  Move generated_files down after
12544         ALL_GTFILES_H.
12545
12546         * config/spu/spu-c.c: Update paths for moved files.
12547         * config/mep/mep-pragma.c: Likewise.
12548         * config/darwin-c.c: Likewise.
12549         * config/i386/msformat-c.c: Likewise.
12550         * config/i386/i386-c.c: Likewise.
12551         * config/avr/avr-c.c: Likewise.
12552         * config/sol2-c.c: Likewise.
12553         * config/ia64/ia64-c.c: Likewise.
12554         * config/rs6000/rs6000-c.c: Likewise.
12555         * config/arm/arm.c: Likewise.
12556         * config/arm/arm-c.c: Likewise.
12557         * config/h8300/h8300.c: Likewise.
12558         * config/v850/v850-c.c: Likewise.
12559
12560         * config/t-darwin: Fix dependencies for moved files.
12561         * config/t-sol2: Fix dependencies for moved files.
12562         * config/mep/t-mep: Fix dependencies for moved files.
12563         * config/ia64/t-ia64: Fix dependencies for moved files.
12564         * config/rs6000/t-rs6000: Fix dependencies for moved files.
12565         * config/v850/t-v850: Fix dependencies for moved files.
12566         * config/v850/t-v850e: Fix dependencies for moved files.
12567
12568         * config/m32c/m32c-pragma.c
12569
12570         * po/exgettext: Look in c-family/ also.
12571
12572 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
12573
12574         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
12575         (mark_control_dependent_edges_necessary): Call it instead of marking
12576         the last statement manually.
12577         (propagate_necessity): Likewise.
12578
12579 2010-06-05  Jan Hubicka  <jh@suse.cz>
12580
12581         * basic-block.h (compute_dominance_frontiers): Updated.
12582         (compute_idf): Likewise.
12583
12584         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
12585         for dominance frontiers.
12586         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
12587         (insert_updated_phi_nodes_for): Likewise.
12588         (update_ssa): Likewise.
12589         * cfganal.c (compute_dominance_frontiers_1): Likewise.
12590         (compute_dominance_frontiers): Likewise.
12591         (compute_idf): Likewise.
12592         * df-problems.c (df_md_local_compute): Likewise.
12593
12594 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
12595
12596         * target.h (struct gcc_target): Add memory_move_cost field.
12597         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
12598         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
12599         * targhooks.c (default_memory_move_cost): New function.
12600         * targhooks.h (default_memory_move_cost): Declare function.
12601         * reload.h (memory_move_cost): Declare.
12602         (memory_move_secondary_cost): Change type of 'in' argument to bool.
12603         * reginfo.c (memory_move_cost): New function.
12604         (memory_move_secondary_cost): Change type of 'in' argument to bool.
12605         * ira.h (ira_memory_move_cost): Update comment.
12606         * ira.c (ira_memory_move_cost): Update comment.
12607         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
12608         with memory_move_cost.
12609         * postreload.c (reload_cse_simplify_set): (Ditto.).
12610         * reload1.c (choose_reload_regs): (Ditto.).
12611         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
12612         (MEMORY_MOVE_COST):  Revise documentation.
12613
12614         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
12615         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
12616         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
12617         type of 'in' argument to bool.
12618         (TARGET_MEMORY_MOVE_COST): Define.
12619
12620 2010-06-05  Jan Hubicka  <jh@suse.cz>
12621
12622         * ipa-pure-const.c (propagate): Fix typo in handling of functions
12623         that cannot return.  Be more careful when merging the results with
12624         previously known ones.
12625
12626 2010-06-05  Matthias Klose  <doko@ubuntu.com>
12627
12628         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
12629         function to add the -iplugindir option.
12630         (find_plugindir_spec_function): Add new declaration and function.
12631         (static_spec_func): Use it for "find-plugindir".
12632
12633 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
12634
12635         PR c++/44361
12636         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
12637         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
12638         statement expression.
12639
12640 2010-06-05  Jan Hubicka  <jh@suse.cz>
12641
12642         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
12643         (df_rd_problem_data): Convert sparse_invalidated_by_call,
12644         dense_invalidated_by_call to bitmap head.
12645         (df_rd_alloc, df_rd_bb_local_compute_process_def,
12646         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
12647         df_rd_start_dump, df_lr_verify_transfer_functions,
12648         df_live_verify_transfer_functions, df_chain_create_bb,
12649         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
12650         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
12651         df_simulate_one_insn_forwards, df_md_alloc,
12652         df_md_bb_local_compute_process_def,
12653         df_md_bb_local_compute_process_def, df_md_local_compute,
12654         df_md_transfer_function df_md_free): Update.
12655
12656 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
12657
12658         PR c/44322
12659         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
12660         target type for ADDR_EXPR; require no changes to qualifiers except
12661         for function types.
12662         * c-tree.h (c_build_type_variant): Remove.
12663
12664 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
12665
12666         * genautomata.c (get_excl_set): Do work per element, not per char.
12667         (check_presence_pattern_sets): Similar.
12668         (check_absence_pattern_sets): Similar.
12669
12670 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
12671
12672         * genautomata.c (curr_state_pass_num): Delete.
12673         (min_issue_delay_pass_states): Delete.
12674         (min_issue_delay): Delete.
12675         (initiate_min_issue_delay_pass_states): Delete.
12676         (output_min_issue_delay_table): Compute min_issue_delay_vect
12677         using a breadth-first search variant.
12678         (output_tables): Don't call initiate_min_issue_delay_pass_states.
12679
12680 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
12681
12682         PR boostrap/44421
12683         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
12684         (df_byte_lr_bb_local_compute): Likewise.
12685
12686 2010-06-03  Jason Merrill  <jason@redhat.com>
12687
12688         Implement noexcept operator (5.3.7)
12689         * c-common.c (c_common_reswords): Add noexcept.
12690         * c-common.h (enum rid): Add RID_NOEXCEPT.
12691
12692 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
12693
12694         * config/darwin-driver.c (darwin_default_min_version): Use
12695         GCC-specific formats in diagnostics.
12696         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
12697         diagnostics.
12698         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
12699         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
12700         eval_spec_function, handle_braces, process_brace_body, main,
12701         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
12702         getenv_spec_function, compare_version_strings,
12703         version_compare_spec_function): Use GCC-specific formats in
12704         diagnostics.
12705
12706 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
12707
12708         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
12709         that operand 0 and operand 1 are equal.
12710         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
12711         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
12712         and operand 1 are equal.
12713         <default>: Ditto.  Remove ??? comment.
12714         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
12715         and operand 1 are equal.
12716         <default>: Ditto.  Remove ??? comment.
12717         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
12718         are equal.
12719         (*add<mode>_4) <default>: Ditto.
12720         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
12721
12722 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
12723
12724         * config/i386/i386-protos.h (ix86_print_operand): Declare.
12725         * config/i386/i386.c (ix86_print_operand): Make non-static.
12726         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
12727         * output.h (output_operand): Declare.
12728         * final.c (output_operand): Make non-static.
12729
12730 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
12731
12732         PR rtl-optimization/44013
12733         * sched-deps.c (add_dependence_list_and_free): Don't free lists
12734         when processing debug insns.
12735
12736         PR debug/41371
12737         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
12738         recursing.  Check that recursion is bounded.  Rename inner var
12739         to avoid hiding incoming argument.
12740
12741 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
12742
12743         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
12744         operands[2] == 255.
12745         (*addqi_3): Ditto.
12746         (*addqi_4): Ditto.
12747         (*addqi_5): Ditto.
12748         (*addqi_ext_1_rex64): Ditto.
12749         (*addqi_ext_1): Ditto.
12750
12751         (*addqi_4): Check for incdec_operand in QImode.
12752
12753         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
12754         using SWI mode iterator.
12755         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
12756         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
12757         mode iterator.
12758         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
12759         using SWI mode iterator.
12760
12761 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12762
12763         PR c/25880
12764         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
12765         * c-format.c (gcc_diag_flag_specs): Add hash.
12766         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
12767         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
12768         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
12769         pp_c_cv_qualifiers. Handle qualifiers spelling here.
12770         (pp_c_type_qualifier_list): Call the function above.
12771         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
12772         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
12773         (WARN_FOR_QUALIFIERS): New macro.
12774         (convert_for_assignment): Use it.
12775
12776 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
12777
12778         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
12779
12780 2010-06-04  Jan Hubicka  <jh@suse.cz>
12781
12782         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
12783         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
12784         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
12785         DF_BYTE_LR_OUT): Update for embedded bitmaps.
12786         * fwprop.c (single_def_use_enter_block): Likewise.
12787         * ddg.c (create_ddg_dep_from_intra_loop_link,
12788         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
12789         * loop-iv.c (latch_dominating_def): Likewise.
12790         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
12791         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
12792         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
12793         df_rd_transfer_function, df_rd_top_dump,
12794         df_rd_bottom_dump): Update.
12795         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
12796         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
12797         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
12798         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
12799         df_lr_verify_solution_start, df_lr_verify_solution_end,
12800         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
12801         df_live_free_bb_info, df_live_alloc, df_live_reset,
12802         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
12803         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
12804         df_live_verify_solution_start, df_live_verify_solution_end,
12805         df_live_verify_transfer_functions, df_chain_create_bb,
12806         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
12807         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
12808         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
12809         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
12810         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
12811         df_byte_lr_transfer_function, df_byte_lr_top_dump,
12812         df_byte_lr_bottom_dump, df_create_unused_note,
12813         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
12814         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
12815         df_md_transfer_function, df_md_init, df_md_confluence_0,
12816         df_md_confluence_n,
12817         df_md_top_dump, df_md_bottom_dump): Update.
12818         (struct df_lr_problem_data): Embedd bitmap headers.
12819
12820 2010-06-04  Jan Hubicka  <jh@suse.cz>
12821
12822         * dce.c (dce_process_block): Do not re-scan already marked
12823         instructions.
12824
12825 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
12826
12827         PR rtl-optimization/39871
12828         PR rtl-optimization/40615
12829         PR rtl-optimization/42500
12830         PR rtl-optimization/42502
12831         * ira.c (init_reg_equiv_memory_loc: New function.
12832         (ira): Call it twice.
12833         * reload.h (calculate_elim_costs_all_insns): Declare.
12834         * ira-costs.c: Include "reload.h".
12835         (regno_equiv_gains): New static variable.
12836         (init_costs): Allocate it.
12837         (finish_costs): Free it.
12838         (ira_costs): Call calculate_elim_costs_all_insns.
12839         (find_costs_and_classes): Take estimated elimination costs
12840         into account.
12841         (ira_adjust_equiv_reg_cost): New function.
12842         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
12843         * reload1.c (init_eliminable_invariants, free_reg_equiv,
12844         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
12845         (elim_bb): New static variable.
12846         (reload): Move code out of here into init_eliminable_invariants and
12847         free_reg_equiv.  Call them.
12848         (calculate_elim_costs_all_insns): New function.
12849         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
12850         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
12851         but call note_reg_elim_costly if we turned a valid memory address
12852         into an invalid one.
12853         * Makefile.in (ira-costs.o): Depend on reload.h.
12854
12855 2010-06-04  Julian Brown  <julian@codesourcery.com>
12856
12857         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
12858         for pool ranges.
12859
12860 2010-06-04  Richard Guenther  <rguenther@suse.de>
12861
12862         PR lto/41584
12863         * cgraph.h (struct varpool_node): Add lto_file_data field.
12864         * lto-cgraph.c (input_varpool_node): Initialize it.
12865
12866 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
12867
12868         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
12869         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
12870         predicate in "type" attribute calculation.
12871         (*addsi_1_zext): Ditto.
12872         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
12873         (*addsi_2_zext): Ditto.
12874         (*add<mode>_3): Ditto.
12875         (*addsi_3_zext): Ditto.
12876         (*add<mode>_5): Ditto.
12877
12878 2010-06-03  Jan Hubicka  <jh@suse.cz>
12879
12880         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
12881         of bitmap_bit_p.
12882         * cfganal.c (compute_dominance_frontiers_1): Likewise.
12883
12884 2010-06-03  Jan Hubicka  <jh@suse.cz>
12885
12886         * df-problems.c (df_create_unused_note, df_note_bb_compute):
12887         micro-optimize the checks when to add new note.
12888
12889 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
12890
12891         * final.c (output_asm_insn): Call
12892         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
12893         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
12894         (output_address): Call targetm.asm_out.print_operand_address.
12895         Update comments.
12896         * target.h (struct gcc_target): Add print_operand,
12897         print_operand_address, and print_operand_punct_valid_p fields.
12898         * targhooks.h (default_print_operand): Declare.
12899         (default_print_operand_address): Declare.
12900         (default_print_operand_punct_valid_p): Declare.
12901         * targhooks.c (default_print_operand): Define.
12902         (default_print_operand_address): Define.
12903         (default_print_operand_punct_valid_p): Define.
12904         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
12905         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
12906         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
12907         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
12908         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
12909         * vmsdbgout.c (addr_const_to_string): Update comment.
12910         * config/i386/i386.c (print_operand): Rename to...
12911         (ix86_print_operand): ...this.  Make static.
12912         (print_operand_address): Rename to...
12913         (ix86_print_operand_address): ...this.  Make static.  Call
12914         ix86_print_operand instead of PRINT_OPERAND.
12915         (ix86_print_operand_punct_valid_p): New function.
12916         (TARGET_PRINT_OPERAND): Define.
12917         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12918         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12919         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
12920         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12921         (PRINT_OPERAND): Delete.
12922         (PRINT_OPERAND_ADDRESS): Delete.
12923         * config/i386/i386-protos.h (print_operand): Delete prototype.
12924         (print_operand_address): Delete prototype.
12925
12926 2010-06-03  Richard Guenther  <rguenther@suse.de>
12927
12928         PR tree-optimization/44403
12929         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
12930         Preserve pointer qualifiers.
12931         (vect_create_data_ref_ptr): Likewise.
12932
12933 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
12934
12935         PR c++/44294
12936         * defaults.h (MAX_FIXED_MODE_SIZE): New.
12937
12938         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
12939
12940 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
12941
12942         PR debug/44375
12943         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
12944         return false if merging the bbs would lead to goto_locus
12945         location being lost from the IL.
12946
12947 2010-06-03  Jan Hubicka  <jh@suse.cz>
12948             Jakub Jelinek  <jakub@redhat.com>
12949
12950         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
12951         set->regs[i] is NULL or has just one entry.
12952
12953 2010-06-03  Jan Hubicka  <jh@suse.cz>
12954
12955         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
12956         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
12957
12958 2010-06-03  Paul Brook  <paul@codesourcery.com>
12959
12960         * config/arm/arm.c (FL_TUNE): Define.
12961         (arm_default_cpu, arm_cpu_select): Remove.
12962         (all_cores): Populate core field.
12963         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
12964         (arm_find_cpu): New function.
12965         (arm_handle_option): Lookup cpu/architecture names.
12966         (arm_override_options): Cleanup mcpu/march/mtune handling.
12967         (arm_file_start): Ditto.
12968
12969 2010-06-03  Alan Modra  <amodra@gmail.com>
12970
12971         PR target/44169
12972         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
12973         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
12974         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
12975         (rs6000_emit_load_toc_table): Likewise.
12976
12977 2010-06-02  Jan Hubicka  <jh@suse.cz>
12978
12979         * passes.c (init_optimization_passes): Put ipa reference
12980         after ipa pure-const.
12981
12982 2010-06-02  Jan Hubicka  <jh@suse.cz>
12983
12984         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
12985         calls_read_all and calls_write_all.
12986         (get_reference_optimization_summary): Fix formatting.
12987         (is_proper_for_analysis): Check that decl is not readonly.
12988         (propagate_bits): Check CONST/PURE/noreturn flags.
12989         (ipa_init): Move all_module_statics to optimization_summary_obstack.
12990         (analyze_function): Ignore indirect edges.
12991         (copy_global_bitmap): For all module statics, do nothing.
12992         (generate_summary): Do not print calls_read_all/calls_write_all.
12993         (read_write_all_from_decl): Take node as argument; check
12994         cgraph_node_cannot_return.
12995         (propagate): Reorganize read_all/write_all computation;
12996         check indirect edges; check ecf flags; use all_module_statics
12997         in the results; do not free all_module_statics.
12998         (stream_out_bitmap): Handle all_module_statics.
12999         (ipa_reference_write_optimization_summary): Likewise; use
13000         varpool/cgraph encoders to get boundaries.
13001         (ipa_reference_read_optimization_summary): Read in all_module_statics;
13002         use it when possible.
13003
13004 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13005
13006         PR target/44218
13007         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
13008         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
13009
13010         * doc/extend.texi (powerpc builtins): Document vec_recip,
13011         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
13012
13013         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
13014         (rs6000_emit_swrsqrt): Ditto.
13015         (rs6000_emit_swdivsf): Delete.
13016         (rs6000_emit_swdivdf): Ditto.
13017         (rs6000_emit_swrsqrtsf): Ditto.
13018
13019         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
13020         describe the reciprocal estimate support for each type.
13021         (recip_options): Map -mrecip=<opt> into option bits.
13022         (gen_2arg_fn_t): New typedef for binary rtx gen function.
13023         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
13024         reciprocal estimate instructions.
13025         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
13026         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
13027         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
13028         cost information if -mdebug=cost or -mdebug=reg.
13029         (rs6000_override_options): Set -mrecip-precision for power6, and
13030         power7 machines.  If -mvsx or -mdfp, enable various options that
13031         came in previous instruction set ISAs, unless the option was
13032         explicitly disabled by the command line option.  Parse
13033         -mrecip=<opt> options.
13034         (rs6000_builtin_vectorized_function): Add support for vectorizing
13035         the reciprocal estimate builtins and expansions.
13036         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
13037         (bdesc_2arg): Add reciprocal estimate builtins.
13038         (bdesc_1arg): Add reciprocal square root estimate builtins.
13039         (rs6000_expand_builtin): Rewrite to use a switch statement,
13040         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
13041         (rs6000_init_builtins): Create declarations for reciprocal
13042         estimate builtins.
13043         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
13044         sized, prefer traditional floating point registers, if integer
13045         vector types, prefer altivec registers.  Don't actually look at
13046         the memory address any more.
13047         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
13048         builtins.
13049         (rs6000_load_constant_and_splat): New helper function to load up
13050         the constant for reciprocal estimate instructions.
13051         (rs6000_emit_madd): New helper function for generating
13052         multiply/add type instructions, based on the current switches.
13053         (rs6000_emit_msub): Ditto.
13054         (rs6000_emit_mnsub): Ditto.
13055         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
13056         replace a divide with a reciprocal estimate and fixup, adding
13057         support for machines with high precision and vectors.
13058         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
13059         low precision machines.
13060         (rs6000_emit_swdiv): New common function to be called to replace a
13061         division with reciprocal estimate and fixup.
13062         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
13063         for double and vector types.  Add support for high precision machines.
13064
13065         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
13066         the reciprocal estimate instructions can be generated.
13067         (TARGET_FRE): Ditto.
13068         (TARGET_FRSQRTES): Ditto.
13069         (TARGET_FRSQRTE): Ditto.
13070         (RS6000_RECIP_*): New macros for reciprocal estimate support.
13071
13072         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
13073         square root estimate on vectors.
13074         (re<mode>2): New insn for reciprocal division estimate on vectors.
13075
13076         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
13077         New builtin.
13078         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
13079         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
13080         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
13081         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
13082         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
13083         (RS6000_BUILTIN_RSQRT): Ditto.
13084         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
13085         floating point builtin.
13086
13087         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
13088         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
13089         __RECIP_PRECISION__ based on the command line switches.
13090         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
13091
13092         * config/rs6000/rs6000.opt (-mrecip): Document add support for
13093         replacing division instructions with reciprocal estimate and fixup.
13094         (-mrecip=<opt>): New option.
13095         (-mrecip-precision): Ditto.
13096
13097         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
13098         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
13099         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
13100         precision scalar.
13101
13102         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
13103         (UNSPEC_VREFP): Ditto.
13104         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
13105         conterparts with regard to support of -mno-fused-madd and -ffast-math.
13106         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
13107         reciprocal estimate instructions to be generated.
13108         (altivec_vrefp): Ditto.
13109
13110         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
13111         estimate support.
13112         (rreg): New mode attribute for reciprocal estimate support.
13113         (recip<mode>3): New insn for division using reciprocal estimate
13114         and fixup builtins.
13115         (divide define_split): New define_split to convert floating point
13116         division to use reciprocal estimate if the user used the
13117         appropriate options and the split is run when we can add new
13118         pseudo registers for the fixup.
13119         (rsqrt<mode>2): New insn for reciprocal square root support.
13120         (recipsf3): Move into recip<mode>3.
13121         (recipdf3): Ditto.
13122         (fres): Use TARGET_FRES.
13123         (rsqrtsf2): Move into rsqrt<mode>2.
13124         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
13125         (copysignsf3): Add support for VSX.
13126         (fred): Use TARGET_FRE.
13127         (fred_fpr): Ditto.
13128         (rsqrtdf_internal1): New function for frsqrte instruciton.
13129
13130         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
13131         (vec_rsqrt): Ditto.
13132
13133 2010-06-03  Richard Guenther  <rguenther@suse.de>
13134
13135         PR middle-end/44291
13136         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
13137         (set_user_assembler_libfunc): Likewise.
13138
13139 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
13140
13141         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
13142         defaults.h.
13143         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
13144         to defaults.h
13145         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
13146         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
13147         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
13148         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
13149         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
13150         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
13151         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
13152         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
13153         * defaults.h: Updated for above mentioned changes.
13154
13155 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
13156
13157         * c-common.c: Remove header include of tm_p.h.
13158         * Makefile.in (c-common.o): Remove TM_P_H dependency.
13159
13160 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
13161
13162         * tree.h (struct tree_decl_map): New type.
13163         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
13164         (tree_decl_map_hash): New prototype.
13165         (debug_expr_for_decl, value_expr_for_decl): Change into
13166         tree_decl_map hashtab from tree_map.
13167         (init_ttree): Adjust initialization.
13168         (tree_decl_map_hash): New function.
13169         (decl_debug_expr_lookup, decl_debug_expr_insert,
13170         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
13171
13172 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13173
13174         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
13175         linker emulations.
13176         * configure: Regenerate.
13177         * config.in: Regenerate.
13178
13179         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
13180         (X86_64_EMULATION): Define.
13181         (TARGET_LD_EMULATION): Use them.
13182
13183         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
13184         (SPARC64_EMULATION): Define.
13185         (LINK_ARCH_SPEC): Use them.
13186
13187 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
13188
13189         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
13190         smallest_mode_for_size for computing the precision types of new
13191         graphite IVs.  Do not call lang_hooks.types.type_for_size.
13192
13193 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
13194
13195         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
13196         information.
13197         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
13198
13199 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
13200
13201         PR middle-end/44363
13202         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
13203         return false instead.
13204
13205 2010-06-02  Jan Hubicka  <jh@suse.cz>
13206
13207         PR middle-end/44295
13208         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
13209         create new cgraph node to check callee.
13210
13211 2010-06-02  Richard Guenther  <rguenther@suse.de>
13212
13213         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
13214
13215 2010-06-02  Richard Guenther  <rguenther@suse.de>
13216
13217         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
13218         (lto_wrapper_cleanup): ... this.  Do not exit.
13219         (fatal): Adjust.  Exit here.
13220         (fatal_perror): Likewise.
13221         (fatal_signal): New function.
13222         (main): Set up signal handlers to cleanup temporary files.
13223         * Makefile.in (lto-wrapper.o): Adjust dependencies.
13224
13225 2010-06-02  Richard Guenther  <rguenther@suse.de>
13226
13227         PR tree-optimization/44377
13228         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
13229
13230 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13231
13232         * config/s390/2097.md (z10_fhex): Remove insn reservation.
13233         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
13234         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
13235         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
13236         instruction.
13237         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
13238
13239 2010-06-02  Jan Hubicka  <jh@suse.cz>
13240
13241         * bitmap.c (bitmap_descriptor): Add search_iter.
13242         (bitmap_find_bit): Increment it.
13243         (print_statistics): Print it.
13244
13245 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
13246
13247         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
13248         instead of gimple_build_call_vec.  Delete unnecessary local variable.
13249
13250 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
13251
13252         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
13253         change from yesterday.
13254
13255 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
13256
13257         * c-ada-spec.c: Clean up redundant includes.
13258
13259 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
13260
13261         * gimplify.c: Do not include except.h and optabs.h.
13262         (gimplify_body): Do not initialize RTL profiling.
13263         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
13264         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
13265         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
13266         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
13267         langhooks.h.
13268
13269         * tree-pretty-print.h: Include pretty-print.h.
13270         * gimple-pretty-print.h: Include pretty-print.h.
13271
13272         * tree-pretty-print.c: Do not include diagnostic.h.
13273         * tree-vrp.c: Likewise.
13274         * tree-tailcall.c: Likewise
13275         * tree-scalar-evolution.c: Likewise
13276         * tree-ssa-dse.c: Likewise
13277         * tree-chrec.c: Likewise
13278         * tree-ssa-sccvn.c: Likewise
13279         * tree-ssa-copyrename.c: Likewise
13280         * tree-nomudflap.c: Likewise
13281         * tree-call-cdce.c: Likewise
13282         * tree-stdarg.c: Likewise
13283         * tree-ssa-math-opts.c: Likewise
13284         * tree-nrv.c: Likewise
13285         * tree-ssa-sink.c: Likewise
13286         * tree-browser.c: Likewise
13287         * tree-ssa-loop-ivcanon.c: Likewise
13288         * tree-ssa-loop.c: Likewise
13289         * tree-parloops.c: Likewise
13290         * tree-ssa-address.c: Likewise
13291         * tree-ssa-ifcombine.c: Likewise
13292         * tree-if-conv.c: Likewise
13293         * tree-data-ref.c: Likewise
13294         * tree-affine.c: Likewise
13295         * tree-ssa-phiopt.c: Likewise
13296         * tree-ssa-coalesce.c: Likewise
13297         * tree-ssa-pre.c: Likewise
13298         * tree-ssa-live.c: Likewise
13299         * tree-predcom.c: Likewise
13300         * tree-ssa-forwprop.c: Likewise
13301         * tree-ssa-dce.c: Likewise
13302         * tree-ssa-ter.c: Likewise
13303         * tree-ssa-loop-prefetch.c: Likewise
13304         * tree-optimize.c: Likewise
13305         * tree-ssa-phiprop.c: Likewise
13306         * tree-object-size.c: Likewise
13307         * tree-outof-ssa.c: Likewise
13308         * tree-ssa-structalias.c: Likewise
13309         * tree-switch-conversion.c: Likewise
13310         * tree-ssa-reassoc.c: Likewise
13311         * tree-ssa-operands.c: Likewise
13312         * tree-vectorizer.c: Likewise
13313         * tree-vect-data-refs.c: Likewise
13314         * tree-vect-generic.c: Likewise
13315         * tree-vect-stmts.c: Likewise
13316         * tree-vect-patterns.c: Likewise
13317         * tree-vect-slp.c: Likewise
13318         * tree-vect-loop.c: Likewise
13319         * tree-ssa-loop-ivopts.c: Likewise
13320         * tree-ssa-loop-im.c: Likewise
13321         * tree-ssa-loop-niter.c: Likewise
13322         * tree-ssa-loop-unswitch.c: Likewise
13323         * tree-ssa-loop-manip.c: Likewise
13324         * tree-ssa-loop-ch.c: Likewise
13325         * tree-dump.c: Likewise
13326         * tree-complex.c: Likewise
13327
13328         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
13329         * tree-ssa-uninit.c: Likewise
13330         * tree-ssa-threadupdate.c: Likewise
13331         * tree-ssa-uncprop.c: Likewise
13332         * tree-ssa-ccp.c: Likewise
13333         * tree-ssa-dom.c: Likewise
13334         * tree-ssa-propagate.c: Likewise
13335         * tree-ssa-alias.c: Likewise
13336         * tree-dfa.c: Likewise
13337         * tree-cfgcleanup.c: Likewise
13338         * tree-sra.c: Likewise
13339         * tree-ssa-copy.c: Likewise
13340         * tree-ssa.c: Likewise
13341         * tree-profile.c: Likewise
13342         * tree-cfg.c: Likewise
13343         * tree-ssa-threadedge.c: Likewise
13344         * tree-vect-loop-manip.c: Likewise
13345
13346         * tree-inline.c: Do not include diagnostic.h and expr.h.
13347         Include rtl.h.
13348         (copy_decl_for_dup_finish): Do not use NULL_RTX.
13349
13350         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
13351         * tree-loop-distribution.c: Likewise.
13352
13353 2010-06-01  Jan Hubicka  <jh@suse.cz>
13354
13355         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
13356
13357 2010-06-01  Jan Hubicka  <jh@suse.cz>
13358
13359         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
13360         remove return value.
13361         (split_bbs_on_noreturn_calls) .... here.
13362         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
13363         * tree-flow.h (fixup_noreturn_call): New.
13364
13365 2010-06-01  Jan Hubicka  <jh@suse.cz>
13366
13367         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
13368
13369 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
13370
13371         * tree.h (build_nt_call_list): Delete.
13372         * tree.c (build_nt_call_list): Delete.
13373
13374 2010-06-01  Jan Hubicka  <jh@suse.cz>
13375
13376         * fwprop.c: Make emit-rtl.h include last.
13377         * rtlanal.c: Include emit-rtl.h.
13378         * genautomata.c: Output emit-rtl include into insn-automata.c
13379         * df-scan.c: Include emit-rtl.h.
13380         * haifa-sched.c: Indlude emit-rtl.h.
13381         * mode-switching.c: Indlude emit-rtl.h.
13382         * graph.c: Indlude emit-rtl.h.
13383         * sel-sched.c: Include emit-rtl.h.
13384         * sel-sched-ir.c: Include emit-rtl.h.
13385         * ira-build.c: Include emit-rtl.h.
13386         * emit-rtl.c (first_insn, last_insn): Remove defines.
13387         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
13388         Move to emit-rtl.h.
13389         (set_new_first_and_last_insn, get_last_insn_anywhere,
13390         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
13391         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
13392         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
13393         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
13394         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
13395         Use accessor functions.
13396         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
13397          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
13398         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
13399         mem_expr_equal_p): Move here from rtl.h.
13400         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
13401         Move here from emit-rtl.c; make inline.
13402         * cfglayout.h: Include emit-rtl.h.
13403         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
13404          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
13405         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
13406         mem_expr_equal_p, get_insns, set_first-insn,
13407         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
13408         * reg-stack.c: Include emit-rtl.h.
13409         * dce.c: Likewise.
13410
13411 2010-06-01  Jan Hubicka  <jh@suse.cz>
13412
13413         * cgraph.h (tree_function_versioning): Update prototype.
13414         (cgraph_function_versioning): Update prototype.
13415         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
13416         bitmap.
13417         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
13418         (cgraph_materialize_clone, save_inline_function_body): Update use of
13419         tree_function_versioning.
13420         * tree-inline.c (copy_bb): Look for previous copied block to link
13421         after; fix debug output.
13422         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
13423         (copy_body): Likewise.
13424         (expand_call_inline): Update use of copy_body.
13425         (tree_function_versioning): Update use of copy body; accept
13426         blocks_to_copy and new_entry.
13427
13428 2010-06-01  Jan Hubicka  <jh@suse.cz>
13429
13430         * gegenrtl.c: Remove unnecesary prototypes.
13431         (gendecl): Remove.
13432         (gendef): Produce static inline.
13433         (gencode): Remove.
13434         (main): Do not decode parameters; generate header only.
13435         * Makefile.in (genrtl.c): Remove.
13436
13437 2010-06-01  Jan Hubicka  <jh@suse.cz>
13438
13439         * tree-switch-conversion.c (build_one_array): Make it readonly.
13440
13441 2010-06-01  Richard Guenther  <rguenther@suse.de>
13442
13443         * optabs.c (init_optabs): Guard all accesses to reinit.
13444         * ipa-pure-const.c (propagate): Fix another typo.
13445         * opts.c (common_handle_option): Split assignment to bool.
13446         * c-opts.c (c_common_handle_option): Likewise.
13447
13448 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
13449             Matthew Gingell  <gingell@adacore.com>
13450
13451         * doc/invoke.texi: Mention -fdump-ada-spec.
13452         * tree-dump.c (dump_files): Add ada-spec.
13453         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
13454         * tree-pass.h (tree_dump_index): Add TDI_ada.
13455         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
13456         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
13457         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
13458         * c-decl.c: Include c-ada-spec.h.
13459         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
13460         functions.
13461         (c_write_global_declarations): Add handling of -fdump-ada-spec.
13462         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
13463         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
13464         * c-ada-spec.h, c-ada-spec.c: New files.
13465
13466 2010-06-01  Richard Guenther  <rguenther@suse.de>
13467
13468         PR lto/43853
13469         * ipa-pure-const.c (get_function_state): Hand back varying state
13470         if we do not have one.
13471         (has_function_state): New function.
13472         (duplicate_node_data): Adjust.
13473         (remove_node_data): Likewise.
13474         (pure_const_write_summary): Likewise.
13475         (propagate): Likewise.  Fix typo.
13476
13477 2010-06-01  Jan Hubicka  <jh@suse.cz>
13478
13479         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
13480         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
13481         (execute_all_ipa_transforms): Do not play with the states.
13482
13483 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
13484
13485         * config/arm/t-linux-androideabi: New.
13486         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
13487
13488 2010-06-01  Jan Hubicka  <jh@suse.cz>
13489
13490         * tree-inline.c (estimate_num_insns): For stdarg functions look
13491         into call statement to count cost of argument passing.
13492
13493 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
13494
13495         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
13496         argument for fprintf.
13497         (ix86_output_addr_diff_elt): Likewise.
13498         (x86_function_profiler): Likewise.
13499         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
13500         (LPREFIX): Likewise.
13501         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
13502
13503 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
13504
13505         PR target/44338
13506         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
13507         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
13508         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
13509         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
13510         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
13511         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
13512         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
13513         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
13514         TARGET_FUSED_MADD.
13515
13516 2010-05-31  Jan Hubicka  <jh@suse.cz>
13517
13518         * tree.h (tree_range_check_failed): Declare noreturn.
13519
13520 2010-05-31  Jan Hubicka  <jh@suse.cz>
13521
13522         * gimple.c (gimple_call_builtin_p): New function.
13523         * gimple.h (gimple_call_builtin_p): Declare.
13524         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
13525         to exit.
13526         (execute_warn_function_return): BUILT_IN_RETURN is return.
13527         (split_critical_edges): Return edges are not critical.
13528         (is_ctrl_altering_stmt): Builtin_in_return is altering.
13529         (gimple_verify_flow_info): Handle built_in_return.
13530         (execute_warn_function_return): Handle built_in_return.
13531         * ipa-pure-const.c (check_call): Ignore builtin_return.
13532
13533 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
13534
13535         PR middle-end/44337
13536         * expr.c (expand_assignment): Don't store anything for out-of-bounds
13537         array accesses with non-MEM.
13538
13539         PR tree-optimization/44182
13540         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
13541         newly needs to end a bb is followed by debug stmts, instead return
13542         true from the function at the end.
13543         (maybe_move_debug_stmts_to_successors): New function.
13544         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
13545
13546 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
13547
13548         PR target/44161
13549         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
13550
13551 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
13552
13553         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
13554         for nested functions in non-optimized compilation.
13555
13556 2010-05-31  Richard Guenther  <rguenther@suse.de>
13557
13558         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
13559
13560 2010-05-30  Jan Hubicka  <jh@suse.cz>
13561
13562         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
13563
13564 2010-05-30  Richard Guenther  <rguenther@suse.de>
13565
13566         PR lto/42975
13567         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
13568         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
13569         no longer needed.
13570
13571 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
13572
13573         * config/darwin.c (output_objc_section_asm_op): Add comment.
13574         (name_needs_quotes): Add '_' to list of valid comment chars.
13575         (machopic_output_function_base_name): Remove unneeded quotes.
13576         (darwin_encode_section_info): Adjust asm whitespace.
13577         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
13578         (ASM_OUTPUT_LOCAL): Ditto.
13579         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
13580         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
13581         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
13582
13583 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
13584
13585         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
13586         RS6000_OUTPUT_BASENAME unconditionally.
13587         (rs6000_output_function_epilogue): Likewise.
13588
13589 2010-05-30  Jan Hubicka  <jh@suse.cz>
13590
13591         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
13592         nodes.
13593
13594 2010-05-30  Richard Guenther  <rguenther@suse.de>
13595
13596         * tree-cfg.c (verify_gimple_assign_single): Implement
13597         verification for COND_EXPR rhs.
13598
13599 2010-05-30  Jan Hubicka  <jh@suse.cz>
13600
13601         * cgraph.h (cgraph_dump_file): Declare.
13602         * cgraphunit.c (cgraph_dump_file): Export.
13603         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
13604
13605 2010-05-30  Jan Hubicka  <jh@suse.cz>
13606
13607         * dwarf2out.c (reference_to_unused,
13608         premark_types_used_by_global_vars_helper): Avoid creation of new
13609         varpool nodes.
13610
13611 2010-05-30  Jan Hubicka  <jh@suse.cz>
13612
13613         * cgraph.h (cgraph_node_cannot_return,
13614         cgraph_edge_cannot_lead_to_return): New functions.
13615         * cgraph.c (cgraph_node_cannot_return,
13616         cgraph_edge_cannot_lead_to_return): Use them.
13617         * ipa-pure-const.c (pure_const_names): New static var.
13618         (check_call): Handle calls not leading to return.
13619         (pure_const_read_summary): Dump info read.
13620         (propagate): Dump info about propagation process; ignore side effects
13621         of functions not leading to exit; fix handling of pure functions.
13622
13623 2010-05-30  Jan Hubicka  <jh@suse.cz>
13624
13625         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
13626         for tail call epilogues.
13627
13628 2010-05-30  Jan Hubicka  <jh@suse.cz>
13629
13630         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
13631         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
13632         dump files.
13633
13634 2010-05-29  Jan Hubicka  <jh@suse.cz>
13635
13636         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
13637         node; remove references in node we no longer keep in cgrpah but need
13638         body of.
13639
13640 2010-05-29  Jan Hubicka  <jh@suse.cz>
13641
13642         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
13643
13644 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13645
13646         PR target/44165
13647         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
13648
13649 2010-05-29  Jan Hubicka  <jh@suse.cz>
13650
13651         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
13652         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
13653         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
13654         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
13655         debug_names_replaced_by, debug_update_ssa): Likewise.
13656         * sbitmap.c (debug_sbitmap): Likewise.
13657         * genrecog.c (debug_decision, debug_decision_list): Likewise.
13658         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
13659         debug_tree_chain): Likewise.
13660         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
13661         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
13662         * optabs.c (debug_optab_libfuncs): Likewise.
13663         (verify_loop_closed_ssa): Likewise.
13664         * value-prof.c (verify_histograms): Likewise.
13665         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
13666         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
13667         * cfghooks.c (verify_flow_info): Likewise.
13668         * fold-const.c (debug_fold_checksum): Likewise.
13669         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
13670         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
13671         Likewise.
13672         * omega.c (debug_omega_problem): Likewise.
13673         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
13674         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
13675         * dominance.c (verify_dominators, debug_dominance_info,
13676         debug_dominance_tree): Likewise.
13677         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
13678         * df_regno_debug, df_ref_debug,
13679         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
13680         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
13681         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
13682         * sel-sched.c (debug_state): Likewise.
13683         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
13684         Likewise.
13685         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
13686         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
13687         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
13688         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
13689         Likewise.
13690         * c-pretty-print.c (debug_c_tree): Likewise.
13691         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
13692         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
13693         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
13694         * ebitmap.c (debug_ebitmap): Likewise.
13695         * function.c (debug_find_var_in_block_tree): Likewise.
13696         * print-rtl.c (debug_rtx): Likewise.
13697         (debug_rtx_count): Likewise.
13698         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
13699         * stor-layout.c (debug_rli): Likewise.
13700         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
13701         * tree-data-ref.c (debug_data_references,
13702         debug_data_dependence_relations, debug_data_reference,
13703         debug_data_dependence_relation, debug_rdg_vertex,
13704         debug_rdg_component, debug_rdg): Likewise.
13705         * tree-affine.c (debug_aff): Likewise.
13706         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
13707         Likewise.
13708         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
13709         * emit-rtl.c (verify_rtl_sharing): Likewise.
13710         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
13711         debug_value_expressions): Likewise.
13712         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
13713         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
13714         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
13715         * cfglayout.c (verify_insn_chain): Likewise.
13716         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
13717         debug_clast_stmt, debug_generated_program): Likewise.
13718         * ggc-page.c (debug_print_page_list): Likewise.
13719         * tree-ssa-ter.c (debug_ter): Likewise.
13720         * graphite-dependences.c (debug_pddr): Likewise.
13721         * sched-deps.c (debug_ds): Likewise.
13722         * tree-ssa.c (verify_ssa): Likewise.
13723         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
13724         debug_scattering_functions, debug_iteration_domains, debug_pdr,
13725         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
13726         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
13727         * tree-inline.c (debug_find_tree): Likewise.
13728         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
13729         debug_ppl_powerset_matrix): Likewise.
13730         * var-tracking.c (debug_dv): Likewise.
13731         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
13732         * cfgloop.c (verify_loop_structure): Likewise.
13733         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
13734         * c-common.c (verify_sequence_points): Likewise.
13735         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
13736         debug_candidates, debug_rgn_dependencies): Likewise.
13737         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
13738         * debug_constraint_graph, debug_solution_for_var,
13739         debug_sa_points_to_info): Likewise.
13740         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
13741         Likewie.
13742         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
13743         debug_loops, debug_loop, debug_loop_num): Likewise.
13744         * passes.c (debug_pass): Likewise.
13745         (dump_properties): Likewise; add cfglayout property.
13746         (debug_properties): Likewise.
13747         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
13748         * varpool.c (debug_varpool): Likewise.
13749         * regcprop.c (debug_value_data): Likewise.
13750         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
13751         debug_immediate_uses_for): Likewise.
13752
13753 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
13754
13755         PR bootstrap/44315
13756         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
13757         Filter out insn-flags.h.
13758
13759 2010-05-29  Jan Hubicka  <jh@suse.cz>
13760
13761         * cgraph.h (struct varpool_node_set_def,
13762         struct cgraph_node_set_def): Remove unused AUX pointer.
13763         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
13764         VEC_empty macro.
13765
13766 2010-05-29  Jan Hubicka  <jh@suse.cz>
13767
13768         PR middle-end/44324
13769         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
13770
13771 2010-05-29  Richard Guenther  <rguenther@suse.de>
13772
13773         * lto-streamer.c (cached_bp): New global variable.
13774         (bitpack_create): Return the cached bitpack, if available.
13775         (bitpack_delete): Clear and cache the bitpack, if appropriate.
13776         (bp_pack_value): Remove redundant asserts.
13777
13778 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
13779
13780         PR middle-end/44306
13781         * tree-if-conv.c (is_true_predicate): New.
13782         (is_predicated): Use is_true_predicate.
13783         (add_to_predicate_list): Same.  Do not use unshare_expr.
13784         (add_to_dst_predicate_list): Same.
13785
13786 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
13787
13788         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
13789         field on edges.
13790         (predicate_bbs): Same.
13791         (clean_predicate_lists): Same.
13792         (find_phi_replacement_condition): Do not AND the predicate from
13793         edge->aux.
13794
13795 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
13796
13797         PR bootstrap/44315
13798         * Makefile.in (build/gencondmd.o): Add a missing `\'.
13799
13800 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13801
13802         PR target/44261
13803         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
13804         (negdf2): Adjust expander pattern and use negdf2_slow.
13805         (negsf2): Likewise.
13806
13807 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
13808
13809         * basic-block.h (struct control_flow_graph): Move last_label_uid field
13810         up.
13811         * df.h (struct df_base_ref): Move regno field up.
13812         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
13813         * expr.h (struct separate_ops): Move location field up.
13814         * optabs.h (struct optab_d): Move libcall_basename field down.
13815         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
13816         * config/i386/i386.h (struct machine_function): Convert call_abi field
13817         into a bitfield.  Move cfa field to the end of the structure.
13818
13819 2010-05-29  Jan Hubicka  <jh@suse.cz>
13820
13821         * varpool.c (varpool_get_node): Fix lookup.
13822
13823 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
13824
13825         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
13826         RTL specific prototypes with #ifdef RTX_CODE.
13827         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
13828         * config/spu/t-spu-elf: Fix dependencies.
13829
13830         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
13831
13832 2010-05-29  Mike Stump  <mikestump@comcast.net>
13833
13834         PR bootstrap/44315
13835         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
13836         TM_H when building to avoid dependency loops.
13837
13838 2010-05-29  Jan Hubicka  <jh@suse.cz>
13839
13840         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
13841         refs and body; not the whole node for masters of materialized clones.
13842
13843 2010-05-29  Mike Stump  <mikestump@comcast.net>
13844
13845         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
13846
13847 2010-05-29  Jan Hubicka  <jh@suse.cz>
13848
13849         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
13850         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
13851         use of clone_function_name.
13852         * cgraph.h (cgraph_create_virtual_clone,
13853         cgraph_function_versioning): update prototypes.
13854         (clone_function_name): Declare.
13855         * ipa-cp.c (ipcp_insert_stage): Update call of
13856         cgraph_create_virtual_clone.
13857         * omp-low.c (create_omp_child_function_name): Use
13858         cgraph_create_virtual_clone.
13859         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
13860         (cgraph_function_versioning): Take SUFFIX argument; produce new name
13861         and make decl local.
13862
13863 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
13864
13865         * vec.h: Include statistics.h
13866         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
13867         with VEC_H.
13868
13869 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
13870
13871         * c-lex.c: Do not include c-tree.h.
13872         * c-pretty-print.c: Likewise.
13873         * c-opts.c: Likewise.
13874         * c-gimplify.c: Likewise.
13875         * c-common.c: Likewise.
13876         * c-dump.c: Likewise.  Include c-common.h.
13877
13878 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
13879
13880         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
13881         before including diagnostic-core.h.
13882         (c_cpp_error): New prototype moved from c-tree.h.
13883         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
13884         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
13885         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
13886         (c_cpp_error): Prototype moved to c-common.h.
13887         * Makefile.in: Update dependency for C_COMMON_H.
13888
13889 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
13890
13891         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
13892         * c-common.c (c_register_addr_space): Remove here.
13893         * c-decl.c (c_register_addr_space): Re-add here.
13894
13895 2010-05-28  Mike Stump  <mikestump@comcast.net>
13896
13897         * config/darwin-c.c: Remove c-tree.h include.
13898
13899 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
13900
13901         * gcc.c: Include diagnostic.h.
13902         (error_count): Remove.  All users changed to use errorcount.
13903         (programname): Remove.  All users changed to use progname.
13904         (fancy_abort, internal_error, fatal_error, error, warning, inform,
13905         fnotice): Remove.
13906         (execute): Don't include "Internal error" and bug reporting
13907         information in argument of internal_error call.
13908         (process_command): Don't increment error_count after calling
13909         perror_with_name.
13910         (input_filename): Rename to gcc_input_filename.  All users
13911         changed.
13912         (main): Call diagnostic_initialize.  Register delete_temp_files
13913         with atexit.  Use seen_error to test for errors.
13914         * gcc.h: Include diagnostic-core.h.
13915         (fatal_error, error, warning): Remove.
13916         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
13917         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
13918         (gcc.o): Update dependencies.
13919
13920 2010-05-28  Jeff Law  <law@redhat.com>
13921
13922         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
13923         functions.
13924         * ira.h (ira_bad_reload_regno): Declare
13925         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
13926
13927         * ira-color.c (update_curr_costs): Free updated hard reg costs.
13928         (ira_reassign_conflict_allocnos): Remove bogus asserts.
13929         (allocno_reload_assign): Likewise.
13930
13931 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
13932
13933         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
13934         build1_stat.
13935
13936 2010-05-28  Richard Guenther  <rguenther@suse.de>
13937
13938         PR lto/44312
13939         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
13940         Stream fixed-point constants mode.
13941         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
13942         and TYPE_PRECISION.
13943         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
13944         Stream fixed-point constants mode.
13945         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
13946         and TYPE_PRECISION.
13947
13948 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
13949
13950         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
13951         only place it was called from.
13952         (number_of_latch_executions): Do not return chrec_dont_know when the
13953         may_be_zero is a runtime condition: instead, return a COND_EXPR
13954         including the may_be_zero condition.
13955         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
13956         of nb_iterations.
13957         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
13958         COND_EXPRs.
13959
13960 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
13961
13962         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
13963         generate COND_EXPRs for degenerate_phi_result.
13964
13965 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
13966
13967         PR middle-end/44293
13968         * tree-if-conv.c (if_convertible_loop_p): Check the
13969         if-convertibility of phi nodes in non predicated BBs.
13970
13971 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
13972
13973         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
13974
13975 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
13976
13977         PR driver/15303
13978         * gcc.c (inform, warning, inform): New functions.
13979         (fatal_ice): Rename to internal_error; change cmsgid parameter to
13980         gmsgid.  All callers changed.
13981         (notice): Rename to fnotice; add parameter fp.  All callers changed.
13982         (fatal_error): Rename to fatal_signal.  All users changed.
13983         (fatal): Rename to fatal_error; change cmsgid parameter to
13984         gmsgid.  All callers changed.
13985         (process_command): Use warning instead of error for warnings.
13986         (end_going_arg): Don't use _() around argument of error.
13987         (do_spec_1): Use inform for message from %n specs.  Use warning
13988         instead of error for warnings.
13989         (main): Use inform for comparison messages.  Use warning for
13990         message about unused linker input.
13991         (error): Increment error_count.  Print "error: ".
13992         * gcc.h (fatal): Change to fatal_error.
13993         (warning): Declare.
13994         * config/darwin-driver.c (darwin_default_min_version): Use warning
13995         instead of fprintf for warnings.
13996         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
13997
13998 2010-05-28  Julian Brown  <julian@codesourcery.com>
13999
14000         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
14001         (*thumb2_addsi3_compare0_scratch): New.
14002         * config/arm/constraints.md (Pv): New.
14003         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
14004         for ARM mode only.
14005         (*addsi3_compare0_scratch): Likewise.
14006
14007 2010-05-28  Jan Hubicka  <jh@suse.cz>
14008
14009         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
14010         check.
14011         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
14012         only on local statics.
14013
14014 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
14015
14016         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
14017
14018 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
14019
14020         PR bootstrap/44314
14021         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
14022         (OPTION_GLIBC): Define.
14023
14024 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
14025
14026         PR debug/41048
14027         * dwarf2out.c (double_int_type_size_in_bits): New function.
14028         (round_up_to_align): Change first argument and return value to
14029         double_int.
14030         (field_byte_offset): Work internally on double_ints.
14031
14032         PR target/43636
14033         * builtins.c (expand_movstr): Use a temporary pseudo instead
14034         of target even when target is not NULL and not const0_rtx, but
14035         fails movstr predicate.
14036         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
14037
14038 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
14039
14040         * final.c (rest_of_clean_state): Use %m in errors instead of
14041         strerror (errno).
14042         * gengtype.c (read_input_list, close_output_files): Use xstrerror
14043         instead of strerror.
14044         * toplev.c (process_options): Use %m in errors instead of strerror
14045         (errno).
14046         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
14047         (errno).
14048
14049 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
14050
14051         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
14052         (ix86_canonical_va_list_type): Make static.  Add declaration.
14053         (ix86_enum_va_list): Make static.  Reindent.
14054         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
14055         (ix86_canonical_va_list_type): Ditto.
14056         (ix86_enum_va_list): Ditto.
14057
14058 2010-05-28  Richard Guenther  <rguenther@suse.de>
14059
14060         * lto-wrapper.c (run_gcc): With -save-temps generate a
14061         user-visible ltrans filename.  Fixup ltrans unit numbering.
14062
14063 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
14064
14065         * c-common.c (c_common_nodes_and_builtins): Replace use
14066         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
14067         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
14068         to ix86_enum_va_list.
14069         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
14070         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
14071         (TARGET_ENUM_VA_LIST_P): Add hook description.
14072         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
14073         * target.h (gcc_target): Add enum_va_list hook.
14074
14075         PR bootstrap/44299
14076         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
14077         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
14078         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
14079
14080 2010-05-28  Alan Modra  <amodra@gmail.com>
14081
14082         PR target/44266
14083         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
14084         emit_library_call machinery to set up __tls_get_addr calls.
14085
14086 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14087
14088         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
14089
14090 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
14091
14092         Revert fix for PR c++/44188
14093         * c-common.c (is_typedef_decl): Revert the moving of  this
14094         definition ...
14095         * tree.c (is_typedef_decl): ... here.
14096         (typdef_variant_p): Revert the moving of this  definition
14097         here from gcc/cp/tree.c.
14098         * c-common.h (is_typedef_decl): Revert the moving of this
14099         declaration ...
14100         * tree.h (is_typedef_decl): ... here.
14101         (typedef_variant_p): Revert the moving of this  declaration here
14102         from gcc/cp/cp-tree.h
14103         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
14104         (gen_tagged_type_die): Revert the splitting out of ...
14105         (gen_type_die_with_usage): ... this function. Revert the anonymous
14106         tagged type handling.
14107         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
14108         typedefs naming anonymous tagged types.
14109
14110 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
14111
14112         * config/rs6000/rs6000-modes.def (PSImode): Delete.
14113
14114 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
14115
14116         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
14117         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
14118         throughout.
14119         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
14120         "xer" to "ca".
14121         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
14122         XER_REGS to CA_REGS throughout.
14123         * config/rs6000/rs6000.h: Same.
14124         (ADDITIONAL_REGISTER_NAMES): Add "xer".
14125         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
14126         that mode_iterator "P" is the size for arithmetic carries as well.
14127         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
14128
14129 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
14130
14131         PR bootstrap/44255
14132         * combine.c (struct rtx_subst_pair): Define unconditionally.
14133         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
14134         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
14135         Call make_compound_operation on pair->to.
14136         (propagate_for_debug): Don't call make_compound_operation here.
14137         Always use simplify_replace_fn_rtx.
14138
14139 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
14140
14141         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
14142         * config/xtensa/xtensa.c (override_options): Check
14143           TARGET_FORCE_NO_PIC and set flag_pic.
14144         * config/xtensa/xtensa.opt: Document -mforce-no-pic
14145
14146 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
14147
14148         PR bootstrap/44299
14149         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
14150         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
14151
14152 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
14153
14154         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
14155         toplev.h.
14156         * diagnostic.c: Don't include toplev.h.
14157         (progname): Define.  Moved from toplev.c.
14158         (seen_error): New function.
14159         * diagnostic.h: Include diagnostic-core.h.
14160         (diagnostic_t, emit_diagnostic): Don't declare here.
14161         * toplev.c (progname): Move to toplev.c.
14162         (emit_debug_global_declarations, compile_file, finalize,
14163         do_compile, toplev_main): Use seen_error.
14164         * toplev.h: Include diagnostic-core.h.
14165         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
14166         internal_error, warning, warning_at, error, error_n, error_at,
14167         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
14168         verbatim, fnotice, progname): Move to diagnostic-core.h.
14169         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
14170         (expand_builtin_expect): Use seen_error.
14171         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
14172         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
14173         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
14174         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
14175         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
14176         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
14177         errorcount for errors.
14178         * c-opts.c (c_common_finish): Use seen_error.
14179         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
14180         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
14181         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
14182         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
14183         (get_coverage_counts): Use seen_error.
14184         * dwarf2out.c (dwarf2out_finish): Use seen_error.
14185         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
14186         gimplify_body): Use seen_error.
14187         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
14188         * ipa-pure-const.c (gate_pure_const): Use seen_error.
14189         * ipa-reference.c (gate_reference): Use seen_error.
14190         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
14191         * lambda-code.c: Include diagnostic-core.h instead of
14192         diagnostic.h.
14193         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
14194         * lto-compress.c: Include diagnostic-core.h instead of
14195         diagnostic.h.
14196         * lto-section-in.c: Include diagnostic-core.h instead of
14197         diagnostic.h.
14198         * lto-streamer-out.c: Include diagnostic-core.h instead of
14199         diagnostic.h.
14200         * lto-streamer.c: Include diagnostic-core.h instead of
14201         diagnostic.h.
14202         (gate_lto_out): Use seen_error.
14203         * matrix-reorg.c: Include diagnostic-core.h instead of
14204         diagnostic.h.
14205         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
14206         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
14207         (gate_expand_omp, lower_omp_1): Use seen_error.
14208         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
14209         (rest_of_decl_compilation, rest_of_type_compilation,
14210         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
14211         * tree-cfg.c (label_to_block_fn): Use seen_error.
14212         * tree-inline.c (optimize_inline_calls): Use seen_error.
14213         * tree-mudflap.c (mudflap_finish_file): Use
14214         seen_error.
14215         * tree-optimize.c (gate_all_optimizations,
14216         gate_all_early_local_passes, gate_all_early_optimizations): Use
14217         seen_error.
14218         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
14219         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
14220         (varpool_remove_unreferenced_decls,
14221         varpool_assemble_pending_decls): Use seen_error.
14222         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
14223         (TOPLEV_H, DIAGNOSTIC_H): Update.
14224         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
14225         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
14226         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
14227         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
14228         coverage.o, lambda-code.o): Update dependencies.
14229
14230 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
14231
14232         PR c++/44188
14233         * c-common.c (is_typedef_decl): Move this definition ...
14234         * tree.c (is_typedef_decl): ... here.
14235         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
14236         * c-common.h (is_typedef_decl): Move this declaration ...
14237         * tree.h (is_typedef_decl): ... here.
14238         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
14239         * dwarf2out.c (is_naming_typedef_decl): New function.
14240         (gen_tagged_type_die): Split out of ...
14241         (gen_type_die_with_usage): ... this function. When an anonymous
14242         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
14243         is emitted for the typedef.
14244         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
14245         anonymous tagged types.
14246
14247 2010-05-27  Jason Merrill  <jason@redhat.com>
14248
14249         * print-tree.c (debug_vec_tree): New fn.
14250         (print_vec_tree): New fn.
14251         * tree.h: Declare them.
14252         * gdbinit.in (pvt): New command.
14253
14254         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
14255
14256         * gdbinit.in (pdd): New command.
14257
14258 2010-05-27  Jan Hubicka  <jh@suse.cz>
14259
14260         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
14261         (update_caller_keys): Return early if there are no callers;
14262         only update fibheap when decresing the key.
14263         (update_callee_keys): Avoid recursion.
14264         (decide_inlining_of_small_functions): When badness does not match;
14265         re-insert into fibheap.
14266
14267 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
14268
14269         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
14270         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
14271         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
14272         (ALL_HOST_OBJS): Now a union of the above two.
14273         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
14274         all files in ALL_HOST_FRONTEND_OBJS.
14275         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
14276
14277         * c-common.c: Pretend to be a backend file by undefining
14278         IN_GCC_FRONTEND (still need rtl.h here).
14279
14280 2010-05-27  Jan Hubicka  <jh@suse.cz>
14281
14282         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
14283         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
14284
14285 2010-05-27  Jan Hubicka  <jh@suse.cz>
14286
14287         * sched-ebb.c: Rename struct deps to struct deps_desc.
14288         * ddg.c: Likewise.
14289         * sel-sched-ir.c: Likewise.
14290         * sched-deps.c: Likewise.
14291         * sched-int.h: Likewise.
14292         * sched-rgn.c: Likewise.
14293
14294 2010-05-27  Jon Beniston  <jon@beniston.com>
14295
14296         PR 43726
14297         * config/lm32/lm32.h: Remove definition of
14298         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
14299
14300 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
14301
14302         PR lto/44230
14303         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
14304
14305 2010-05-27  Richard Guenther  <rguenther@suse.de>
14306
14307         PR tree-optimization/44284
14308         * tree-vect-stmts.c (vectorizable_assignment): Handle
14309         sign-changing conversions as simple copy.
14310
14311 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14312
14313         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
14314         Bionic C library.
14315         (__gthread_active_p): Check for pthread_create if compiling against
14316         Bionic C library.
14317
14318 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14319
14320         Support compilation for Android platform.  Reimplement -mandroid.
14321
14322         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
14323         (*android*): Set ANDROID_DEFAULT.
14324         (arm*-*-linux*): Include linux-android.h.
14325         (arm*-*-eabi*): Don't include previous -mandroid implementation.
14326         * config/arm/eabi.h: Remove, move Android-specific parts ...
14327         * config/linux-android.h: ... here.  New file.
14328         * config/arm/eabi.opt: Rename to ...
14329         * config/linux-android.opt: ... this.
14330         (mandroid): Allow -mno-android option.  Initialize based on
14331         ANDROID_DEFAULT.
14332         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
14333         Move logic to corresponding LINUX_TARGET_* macros.
14334         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
14335         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
14336         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
14337         Android definitions.
14338         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
14339         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
14340         Document.
14341
14342 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14343
14344         Add support for Bionic C library
14345
14346         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
14347         macro.
14348         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
14349         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
14350
14351         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
14352         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
14353         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
14354         to support multiple C libraries.  Handle Bionic.
14355         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
14356         (BIONIC_DYNAMIC_LINKER64): Define.
14357         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
14358         Update.
14359         (TARGET_HAS_SINCOS): Enable for Bionic.
14360
14361         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
14362         the last option specified on command line take effect.
14363         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
14364         (mbionic): New.
14365         (mglibc, muclibc): Update.
14366
14367         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
14368         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
14369         DEFAULT_LIBC.
14370
14371         * doc/invoke.texi (-mglibc, -muclibc): Update.
14372         (-mbionic): Document.
14373
14374 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14375
14376         * c-common.h (c_register_addr_space): Add prototype.
14377         (ADDR_SPACE_KEYWORD): Remove.
14378         * c-common.c (c_register_addr_space): New function.
14379         (c_addr_space_name): Reimplement.
14380         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
14381
14382         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
14383         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
14384
14385         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
14386         Remove TARGET_ADDR_SPACE_KEYWORDS.
14387
14388 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
14389
14390         * input.c: New file.
14391         * input.h (main_input_filename): Move declaration to toplev.h.
14392         * toplev.c (input_location, line_table): Move to input.c
14393         * toplev.h (main_input_filename): Move declaration from input.h.
14394         * tree.c (expand_location): Move to input.c.
14395         * Makefile.in (OBJS-common): Add input.o.
14396         (input.o): Add dependencies.
14397
14398 2010-05-27  Richard Guenther  <rguenther@suse.de>
14399
14400         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
14401         for non-existant files.
14402         (fork_execute): Mark args_name file as deleted.
14403
14404 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
14405
14406         PR bootstrp/44287
14407         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
14408         (narrow_signed_type): Likewise.
14409
14410 2010-05-26  Jan Hubicka  <jh@suse.cz>
14411
14412         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
14413         edge only when checking is enabled; check using former_clone_of;
14414         check inline clones too.
14415         (cgraph_materialize_clone): Record former_clone_of pointer.
14416         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
14417         combining redirections; dump args_to_skip bitmap
14418         (cgraph_materialize_all_clones): Do no redirection here.
14419         * ipa-inline.c (inline_transform): Do redirection here.
14420         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
14421         cheking only).
14422
14423 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
14424
14425         * config/avr/avr-c.c: Do not include regs.h.
14426         Include cpplib.h for cpp_define and tree.h for c-common.h.
14427         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
14428         * config/avr/t-avr: Fix dependencies for avr-c.o.
14429
14430 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
14431
14432         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
14433         string instead of SYMBOL_REF rtx.
14434         * rtl.h (set_stack_check_libfunc): Move prototype from here...
14435         * libfuncs.h: ...to here.  Adjust for explow.c change.
14436
14437 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
14438
14439         * pretty-print.c: Don't include ggc.h.
14440         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
14441         (identifier_to_locale): Use them for allocation.
14442         * pretty-print.h (identifier_to_locale_alloc,
14443         identifier_to_locale_free): Declare.
14444         * toplev.c (alloc_for_identifier_to_locale): New.
14445         (general_init): Set identifier_to_locale_alloc and
14446         identifier_to_locale_free.
14447         * Makefile.in (pretty-print.o): Update dependencies.
14448
14449 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
14450
14451         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
14452         pointer types if they have different alignment or mode.
14453
14454 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
14455
14456         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
14457         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14458         * config/sparc/sparc-protos.h (function_value): Remove declaration.
14459         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
14460         sparc_function_value_regno_p): New functions.
14461         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14462         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14463         (function_value): Rename to...
14464         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
14465         argument to 'outgoing'.
14466         (function_arg_record_value, function_arg_union_value,
14467         function_arg_vector_value): Update comment.
14468
14469 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
14470
14471         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
14472         (fde_needed_for_eh_p): New predicate.
14473         (output_call_frame_info): Use it throughout to decide whether FDEs
14474         are needed for EH purpose.
14475         (dwarf2out_begin_prologue): Reorder assignments.
14476
14477 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14478
14479         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
14480         special case loop->header.
14481         (is_predicated): New.
14482         (if_convertible_loop_p): Call it.
14483
14484 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14485
14486         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
14487         iterator in parameter.  Do not generate code during the analysis.
14488         (tree_if_convert_cond_stmt): Removed.
14489         (tree_if_convert_stmt): Removed.
14490         (predicate_bbs): New.
14491         (if_convertible_loop_p): Call predicate_bbs.
14492         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
14493         now contains all the analysis part.
14494
14495 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14496
14497         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
14498         statements in the analysis part.
14499         (tree_if_convert_stmt): Update comment.
14500         (remove_conditions_and_labels): New.
14501         (combine_blocks): Call remove_conditions_and_labels.
14502         (tree_if_conversion): Update comment.
14503
14504 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14505
14506         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
14507         than 2 predecessors or more than 2 successors.
14508
14509 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14510
14511         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
14512         of loops in which the data dependence analysis fails.
14513
14514 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14515
14516         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
14517         CDI_POST_DOMINATORS.
14518         (tree_if_conversion): Same.
14519
14520 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14521
14522         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
14523
14524 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14525
14526         * tree-if-conv.c: Update copyright years.  Fix comments.
14527         Fix indentation.
14528
14529 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
14530
14531         * builtin-types.def (BT_INT128): New primitive type.
14532         (BT_UINT128): Likewise.
14533         * c-common.c (c_common_r): Add __int128 keyword.
14534         (c_common_type_for_size): Handle __int128.
14535         (c_common_type_for_mode): Likewise.
14536         (c_common_signed_or_unsigned_type): Likewise.
14537         (c_common_nodes_and_builtins): Add builtin type
14538         if target supports 128-bit integer scalar.
14539         * c-common.h (enum rid): Add RID_INT128.
14540         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
14541         if target supports 128-bit integer scalar.
14542         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
14543         (finish_declspecs): Likewise.
14544         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
14545         (c_token_starts_declspecs): Likewise.
14546         (c_parser_declspecs): Likewise.
14547         (c_parser_attributes): Likewise.
14548         (c_parser_objc_selector): Likewise.
14549         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
14550         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
14551         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
14552         * tree.c (make_or_reuse_type): Likewise.
14553         (make_unsigned_type): Likewise.
14554         (build_common_tree_nodes_2): Likewise.
14555         * tree.h (enum integer_type_kind): Add itk_int128 and
14556         itk_unsigned_int128.
14557         (int128_integer_type_node): New define.
14558         (int128_unsigned_type_node): New define.
14559         * doc/extend.texi: Add documentation about __int128 type.
14560
14561 2010-05-26  Richard Guenther  <rguenther@suse.de>
14562
14563         * tree-ssa-sccvn.c (copy_nary): Adjust.
14564         (copy_phis): Rename to ...
14565         (copy_phi): ... this.  Adjust.
14566         (copy_references): Rename to ...
14567         (copy_reference): ... this.  Adjust.
14568         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
14569         result into the valid table.
14570
14571 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
14572
14573         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
14574         insn-config.h, insn-codes.h, recog.h, and optabs.h.
14575
14576 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14577
14578         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
14579
14580 2010-05-26  Richard Guenther  <rguenther@suse.de>
14581
14582         * opts.c (common_handle_option): Handle OPT_Ofast.
14583
14584 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
14585
14586         * diagnostic.c: Don't include opts.h.
14587         (permissive_error_option): Define.
14588         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
14589         for classify_diagnostic.  Don't use memset for
14590         classify_diagnostic.  Initialize new and recently added fields.
14591         (diagnostic_classify_diagnostic): Use context->n_opts instead of
14592         N_OPTS.
14593         (diagnostic_report_diagnostic): Pass context parameter to
14594         diagnostic_report_warnings_p.  Use option_enabled and option_name
14595         hooks from context.
14596         (emit_diagnostic): Use permissive_error_option.
14597         (permerror): Likewise.
14598         * diagnostic.h: Don't include options.h.
14599         (struct diagnostic_context): Add n_opts, opt_permissive,
14600         inhibit_warnings, warn_system_headers, option_enabled and
14601         option_name fields.  Change classify_diagnostic to a pointer.
14602         * opts-diagnostic.h: New file.
14603         * opts.c: Include opts-diagnostic.h.
14604         (common_handle_option): Set global_dc fields for -Wfatal-errors,
14605         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
14606         (option_name): New function.
14607         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
14608         (c_common_handle_option): Set global_dc->permissive for
14609         -fpermissive.
14610         * c-common.c (c_cpp_error): Save and restore
14611         global_dc->warn_system_headers, not variable warn_system_headers.
14612         * toplev.c: Include opts-diagnostic.h.
14613         (general_init): Update call to diagnostic_initialize.  Set
14614         global_dc->show_column, global_dc->option_enabled and
14615         global_dc->option_name.
14616         (process_options): Don't set global_dc fields here.
14617         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
14618         (diagnostic.o, opts.o, toplev.o): Update dependencies.
14619
14620 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
14621
14622         * config/picochip/picochip.md (movsi): Split a movsi from a
14623         const after reload.
14624
14625 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14626
14627         * ggc-zone.c: Update copyright year.
14628         (poison_region): Mark memory for Valgrind as undefined before
14629         memset () call and inaccessible afterwards.
14630         (ggc_pch_total_size): Change type of i to int.
14631
14632 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14633
14634         * ggc-common.c (ggc_free_overhead): Allow empty slot.
14635
14636 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14637
14638         * ggc-common.c: Update copyright year.
14639         (ggc_rlimit_bound): Remove prototype.  Compile only if
14640         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
14641         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
14642         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
14643         (ggc_min_heapsize_heuristic): Likewise.
14644
14645 2010-05-26  Richard Guenther  <rguenther@suse.de>
14646
14647         PR rtl-optimization/44164
14648         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
14649         no-common access-path disambiguation.
14650         (indirect_ref_may_alias_decl_p): Adjust.
14651         (indirect_refs_may_alias_p): Likewise.
14652         (refs_may_alias_p_1): Likewise.
14653
14654 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
14655
14656         * c-typeck.c: Do not include expr.h.
14657
14658 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
14659
14660         * rtl.h (decl_default_tls_model): Move prototype from here...
14661         * output.h: ...to here.
14662         * c-decl.c: Do not include rtl.h.
14663         * c-pragma.c: Likewise.
14664         * c-parser.c: Likewise.
14665         * c-gimplify.c: Likewise.  And also not hard-reg-set.
14666         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
14667         FIXME note for it.  Add a FIXME note for expr.h.
14668         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
14669         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
14670         defined.
14671
14672 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
14673
14674         PR target/44199
14675         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
14676         or total_size is larger than red zone size for non-V4 ABI, emit a
14677         stack_tie resp. frame_tie insn before stack pointer restore.
14678         * config/rs6000/rs6000.md (frame_tie): New insn.
14679
14680 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
14681
14682         * function.h (struct function): Add can_throw_non_call_exceptions bit.
14683         * lto-streamer-in.c (input_function): Stream it in.
14684         * lto-streamer-out.c (output_function): Stream it out.
14685         * function.c (allocate_struct_function): Set it.
14686         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
14687         for flag_non_call_exceptions.
14688         * cfgbuild.c (control_flow_insn_p): Likewise.
14689         (make_edges): Likewise.
14690         * cfgexpand.c (expand_stack_alignment): Likewise.
14691         * combine.c (distribute_notes): Likewise.
14692         * cse.c (cse_extended_basic_block): Likewise.
14693         * except.c (insn_could_throw_p): Likewise.
14694         * gcse.c (simple_mem): Likewise.
14695         * ipa-pure-const.c (check_call): Likewise.
14696         (check_stmt ): Likewise.
14697         * lower-subreg.c (lower-subreg.c): Likewise.
14698         * optabs.c (emit_libcall_block): Likewise.
14699         (prepare_cmp_insn): Likewise.
14700         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
14701         * postreload.c (rest_of_handle_postreload): Likewise.
14702         * reload1.c (reload_as_needed): Likewise.
14703         (emit_input_reload_insns): Likewise.
14704         (emit_output_reload_insns): Likewise.
14705         (fixup_abnormal_edges): Likewise.
14706         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
14707         * store-motion.c (find_moveable_store): Likewise.
14708         * tree-eh.c (stmt_could_throw_p): Likewise.
14709         (tree_could_throw_p): Likewise.
14710         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
14711         * config/arm/arm.c (arm_expand_prologue): Likewise.
14712         (thumb1_expand_prologue): Likewise.
14713         * config/rx/rx.md (cbranchsf4): Likewise.
14714         (cmpsf): Likewise.
14715         * config/s390/s390.c (s390_emit_prologue): Likewise.
14716         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
14717         (inline_forbidden_into_p): New predicate.
14718         (expand_call_inline): Use it to forbid inlining.
14719         (tree_can_inline_p): Likewise.
14720
14721 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
14722
14723         * config/i386/i386-c.c: Do not include rtl.h.
14724         * config/i386/t-i386: Update dependencies.
14725
14726 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
14727
14728         * attribs.c: Do not include rtl.h.
14729         * Makefile.in: Update dependencies.
14730
14731 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
14732
14733         * double-int.h (double_int_and): New.
14734         * combine.c (try_combine): Clean up, use double_int_* and
14735         immed_double_int_const functions.
14736
14737 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14738
14739         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
14740         stderr to /dev/null instead of grep -q.
14741         * configure: Regenerate.
14742
14743 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
14744
14745         * Makefile.in (EXCEPT_H): Fix typo.
14746
14747 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
14748
14749         * ira-build.c (update_conflict_hard_reg_costs): New.
14750         (ira_build): Call update_conflict_hard_reg_costs.
14751
14752 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
14753
14754         PR debug/41371
14755         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
14756         ENABLE_CHECKING.
14757         (intersect_loc_chains): Walk the s2var's loc_chain together
14758         with s1node chain as long as the locations are equal, don't
14759         call find_loc_in_1pdv in that case.
14760
14761         PR debug/42801
14762         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
14763         (copy_bind_expr): ... instead of here.
14764         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
14765         if the block hasn't been remapped.
14766         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
14767         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
14768
14769 2010-05-25  Richard Guenther  <rguenther@suse.de>
14770
14771         PR middle-end/44069
14772         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
14773         out-of-bounds array accesses.
14774
14775 2010-05-25  Richard Guenther  <rguenther@suse.de>
14776
14777         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
14778         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
14779         (run_gcc): Re-organize to make cleanup easier.
14780
14781 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14782
14783         * config/s390/s390.c (optimization_options): Fix and move the
14784         flag_prefetch_loop_arrays override ...
14785         (override_options): ... here.
14786
14787 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
14788
14789         * diagnostic.c: Don't include plugin.h.
14790         (diagnostic_report_diagnostic): Don't handle plugins specially
14791         here.  Pass context to internal_error callback.
14792         * diagnostic.h (struct diagnostic_context): Add context parameter
14793         to internal_error callback.
14794         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
14795         * plugin.h (struct diagnostic_context): Declare.
14796         (warn_if_plugins, plugins_internal_error_function): Declare.
14797         * toplev.c (general_init): Set global_dc->internal_error.
14798         * Makefile.in (diagnostic.o): Update dependencies.
14799
14800 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
14801
14802         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
14803         * config/rs6000/t-darwin64: New.
14804         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
14805         build crt2.
14806
14807 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
14808
14809         PR 44203
14810         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
14811         match the original (and intended) behaviour before r159557.  This
14812         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
14813         in two ways.
14814
14815 2010-05-25  Richard Guenther  <rguenther@suse.de>
14816
14817         * doc/invoke.texi: Document -Ofast.
14818         * target.h (struct gcc_target): Add handle_ofast.
14819         * target-def.h (TARGET_HANDLE_OFAST): Add.
14820         (TARGET_INITIALIZER): Adjust.
14821         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
14822         * common.opt (Ofast): Add.
14823
14824 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
14825
14826         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
14827         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
14828
14829 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
14830
14831         PR target/43610
14832         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
14833         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
14834         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
14835         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
14836
14837 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
14838
14839         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
14840         DW_OP_minus with negated offset instead of DW_OP_plus.
14841         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
14842
14843 2010-05-25  Wei Guozhi  <carrot@google.com>
14844
14845         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
14846         tst instruction and a new alternative.
14847         * config/arm/constraints.md (Pu): New constraint.
14848
14849 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
14850
14851         * function.c (assign_stack_local_1): Initialize variable
14852         to avoid warning when bootstrapping at -O3.
14853
14854 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
14855
14856         * configure.ac (all_lang_makefiles): Remove everything related to it.
14857         * configure: Regenerate.
14858         * Makefile.in: Fix reference to ada Make-lang.in.
14859         Remove support for LANG_MAKEFILES.
14860
14861 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
14862             Sandra Loosemore  <sandra@codesourcery.com>
14863
14864         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
14865         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
14866         description.  Add arm_neon_fp16_ok.
14867         (Add Options): Add arm_neon and arm_neon_fp16.
14868
14869 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
14870
14871         * diagnostic.c: Don't include flags.h.
14872         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
14873         context parameters.  Check flags in the context passed as a parameter.
14874         (diagnostic_build_prefix): Add context parameter.  Check
14875         show_column flag in context.
14876         (diagnostic_action_after_output): Check fatal_errors flag in context.
14877         (diagnostic_report_current_module): Check show_column flag in context.
14878         (default_diagnostic_starter): Update call to
14879         diagnostic_build_prefix.
14880         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
14881         (emit_diagnostic): Pass context to permissive_error_kind.
14882         (permerror): Pass context to permissive_error_kind.
14883         * diagnostic.h (struct diagnostic_context): Add show_column,
14884         pedantic_errors, permissive and fatal_errors fields.
14885         (diagnostic_build_prefix): Update prototype.
14886         * langhooks.c
14887         * toplev.c (process_options): Set flags in global_dc from
14888         flag_show_column, flag_pedantic_errors, flag_permissive,
14889         flag_fatal_errors.
14890         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
14891         to diagnostic_build_prefix.
14892         * Makefile.in (diagnostic.o): Update dependencies.
14893
14894 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
14895
14896         * config/i386/ia32intrin.h (__crc32q): Define only if
14897         __SSE4_2__ is defined.
14898
14899 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
14900
14901         PR target/44132
14902         PR middle-end/43602
14903         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
14904         DECL_VISIBILITY_SPECIFIED.
14905         (emutls_decl): Set DECL_PRESERVE_P and copy
14906         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
14907         (emutls_finalize_control_var): New callback.
14908         (emutls_finish): Finalize emutls control variables.
14909         * toplev.c (compile_file): Move the call to emutls_finish ()
14910         before varpool_assemble_pending_decls ().
14911
14912 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
14913
14914         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
14915         added to the preprocessor condition.
14916
14917 2010-05-24  Paul Brook  <paul@codesourcery.com>
14918
14919         * gengtype-lex.l: Add HARD_REG_SET.
14920         * expr.c (expand_expr_real_1): Record writes to hard registers.
14921         * function.c (rtl_data): Add asm_clobbers.
14922         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
14923         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
14924         Use crtl->asm_clobbers.
14925
14926 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14927
14928         * doc/makefile.texi (Makefile): Mention stages 'profile'
14929         and 'feedback' for profiledbootstrap.
14930
14931 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
14932
14933         PR target/44245
14934         * config/i386/i386.c (def_builtin): Properly check
14935         OPTION_MASK_ISA_64BIT.
14936
14937 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
14938
14939         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
14940         typedefs with different but compatible types.  Allow duplicate
14941         typedefs with the same type except for pedantic non-C1X, but give
14942         warning for variably modified types.
14943         * c-typeck.c (tagged_types_tu_compatible_p,
14944         function_types_compatible_p, type_lists_compatible_p,
14945         comptypes_internal): Add parameter different_types_p; set
14946         *different_types_p for different but compatible types.  All
14947         callers changed.
14948         (comptypes_check_different_types): New.
14949         * c-tree.h (comptypes_check_different_types): Declare.
14950
14951 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
14952
14953         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
14954         * jump.c: Include basic-block.h.
14955         * profile.c: Likewise.
14956         * tree-profile.c: Likewise.
14957         * coverage.c: Likewise.
14958         * basic-block.h (optimize_function_for_size_p): Move to function.h.
14959         (optimize_function_for_speed_p): Likewise.
14960         * function.h (optimize_function_for_size_p,
14961         optimize_function_for_speed_p): Moved here from basic-block.h.
14962         * Makefile.in: Update dependencies.
14963
14964 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14965
14966         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
14967         before calling make; allow override through $MAKE.
14968         * doc/invoke.texi (Optimize Options): Document override.
14969
14970 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
14971
14972         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
14973         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14974         (rs6000_mode_dependent_address_ptr): Make static.
14975         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14976         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
14977         Remove.
14978
14979 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
14980
14981         PR target/43869
14982         * config/i386/i386.c: Make sure that the correct regparm is passed.
14983
14984 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
14985
14986         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
14987         * sbitmap.c: ...to here to internalize sbitmap element access.
14988         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
14989         Explain why basic-block.h is included.
14990         * function.h: Include tm.h for CUMULATIVE_ARGS.
14991         * Makefile.in: Update dependencies.
14992
14993 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
14994
14995         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
14996         New core types.
14997         * sbitmap.h (struct sbitmap_def): Do not typedef here.
14998         * sbitmap.c: Include sbitmap.h.
14999         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
15000         hard-reg-set.h.  Split everything related to regsets out from here...
15001         * regset.h: ...to here.  New file.
15002         * df.h: Include regset.h and sbitmap.h.
15003         * tree-flow.h: Likewise.
15004         * cfgloop.h: Likewise.
15005         * except.h: Do not include sbitmap.h.  Include hashtab.h.
15006         * cgraph.h: Include vec.h and function.h.
15007         * reload.h (struct insn_chain): Change types of live_throughout
15008         and dead_or_set from regset_head to bitmap_head.
15009         (compute_use_by_pseudos): Be defined also if regset.h is not included.
15010         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
15011         spilled_regs from regset_head to bitmap_head to avoid dependency
15012         in regset.h.
15013         * sel-sched-ir.h: Include regset.h.
15014         * reload.c: Include df.h before reload.h.
15015         * caller-save.c: Likewise.
15016         * reload1.c: Likewise.
15017         * ira.c: Likewise.
15018         (mark_elimination): Update type of r to bitmap, consistent with
15019         DF_LR_IN.
15020         * dominance.c: Include bitmap.h.
15021         * modulo-sched.c: Include df.h.
15022         * cfganal.c: Include bitmap.h and sbitmap.h.
15023         * cfgbuild.c: Include sbitmap.h.
15024         * lcm.c: Include sbitmap.h.
15025         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
15026         * domwalk.c: Include sbitmap.h, exclude ggc.h.
15027         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
15028         * cselib.c: Include bitmap.h.
15029         * tree-optimize.c: Include regset.h.
15030         * stmt.c: Include bitmap.h.
15031         * Makefile.in: Update dependencies.
15032
15033 2010-05-22  Jan Hubicka  <jh@suse.cz>
15034
15035         * cgraph.h (struct varpool_node): Add same_comdat_group.
15036         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
15037         pointer.
15038         (output_varpool): Update call of lto_output_varpool_node.
15039         (input_varpool): Read same_comdat_group pointer.
15040         (input_varpool_1): Fixup same_comdat_group pointer.
15041         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
15042         group is needed, all are.
15043         * varpool.c (varpool_remove_node): Remove node from same comdat group
15044         linklist too.
15045         (varpool_analyze_pending_decls): Walk same comdat groups.
15046
15047 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
15048
15049         * rtl.h (union rtunion_def): Remove rt_bit member.
15050         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
15051         * print-rtl (print_rtx): Do not print the member.
15052         * gengtype.c (adjust_field_rtx_def): Do not handle it.
15053         * gengenrtl.c (type_from_format): Likewise.
15054         (accessor_from_format): Likewise.
15055
15056 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
15057
15058         * dbgcnt.c: Include toplev.h instead of errors.h.
15059         * ira-emit.c: Don't include errors.h.
15060         * ira.c: Include toplev.h instead of errors.h.
15061         * lto-compress.c: Include toplev.h instead of errors.h.
15062         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
15063         ira.o, dbgcnt.o): Update dependencies.
15064
15065 2010-05-22  Richard Guenther  <rguenther@suse.de>
15066
15067         * gimple.c (gimple_types_compatible_p): Check type qualifications
15068         before merging pointer to complete and pointer to incomplete type.
15069         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
15070         we use our own resolution algorithm.  The gold linker plugin
15071         doesn't do the job we want it to do here.
15072
15073 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
15074
15075         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15076         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15077         (sparc_mode_dependent_address_p): New function.
15078
15079 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
15080
15081         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
15082
15083         * timevar.c: Do not include any core headers.
15084         (timevar_print): De-i18n-ize.
15085         (print_time): Likewise.
15086         * timevar.h (timevar_push, timevar_pop): Make inline functions.
15087
15088 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
15089
15090         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
15091         langhooks-def.h.
15092         (diagnostic_initialize): Initialize x_data not last_function.
15093         (diagnostic_report_current_function): Move to tree-diagnostic.c.
15094         (default_diagnostic_starter): Call
15095         diagnostic_report_current_module not
15096         diagnostic_report_current_function.
15097         (diagnostic_report_diagnostic): Initialize x_data not
15098         abstract_origin.
15099         (verbatim): Likewise.
15100         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
15101         x_data.
15102         (struct diagnostic_context): Change last_function to x_data.
15103         (diagnostic_auxiliary_data): Replace with
15104         diagnostic_context_auxiliary_data and
15105         diagnostic_info_auxiliary_data.
15106         (diagnostic_last_function_changed, diagnostic_set_last_function,
15107         diagnostic_report_current_function): Move to tree-diagnostic.h.
15108         (print_declaration, dump_generic_node, print_generic_stmt,
15109         print_generic_stmt_indented, print_generic_expr,
15110         print_generic_decl, debug_c_tree, dump_omp_clauses,
15111         print_call_name, debug_generic_expr, debug_generic_stmt,
15112         debug_tree_chain, default_tree_printer): Move to
15113         tree-pretty-print.h.
15114         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
15115         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
15116         gimple-pretty-print.h.
15117         * pretty-print.c: Don't include tree.h
15118         (pp_base_format): Don't handle %K here.
15119         (pp_base_tree_identifier): Move to tree-pretty-print.c.
15120         * pretty-print.h (text_info): Change abstract_origin to x_data.
15121         (pp_tree_identifier, pp_unsupported_tree,
15122         pp_base_tree_identifier): Move to tree-pretty-print.h.
15123         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
15124         tree-pretty-print.h: New files.
15125         * tree-pretty-print.c: Include tree-pretty-print.h.
15126         (percent_K_format): New.  Moved from pretty-print.c.
15127         (pp_base_tree_identifier): Move from pretty-print.c.
15128         * c-objc-common.c: Include tree-pretty-print.h.
15129         (c_tree_printer): Handle %K here.
15130         * langhooks.c: Include tree-diagnostic.h.
15131         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
15132         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
15133         (default_tree_printer): Handle %K using percent_K_format.
15134         (general_init): Use default_tree_diagnostic_starter.
15135         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
15136         (free_lang_data): Use default_tree_diagnostic_starter.
15137         * c-pretty-print.c: Include tree-pretty-print.h.
15138         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
15139         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
15140         * dwarf2out.c: Include tree-pretty-print.h.
15141         * except.c: Include tree-pretty-print.h.
15142         * gimple-pretty-print.c: Include tree-pretty-print.h and
15143         gimple-pretty-print.h.
15144         * gimplify.c: Include tree-pretty-print.h.
15145         * graphite-poly.c: Include tree-pretty-print.h and
15146         gimple-pretty-print.h.
15147         * ipa-cp.c: Include tree-pretty-print.h.
15148         * ipa-inline.c: Include gimple-pretty-print.h.
15149         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
15150         * ipa-pure-const.c: Include gimple-pretty-print.h.
15151         * ipa-struct-reorg.c: Include tree-pretty-print.h and
15152         gimple-pretty-print.h.
15153         * ipa-type-escape.c: Include tree-pretty-print.h.
15154         * print-rtl.c: Include tree-pretty-print.h.
15155         * print-tree.c: Include gimple-pretty-print.h.
15156         * sese.c: Include tree-pretty-print.h.
15157         * tree-affine.c: Include tree-pretty-print.h.
15158         * tree-browser.c: Include tree-pretty-print.h.
15159         * tree-call-cdce.c: Include gimple-pretty-print.h.
15160         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
15161         * tree-chrec.c: Include tree-pretty-print.h.
15162         * tree-data-ref.c: Include tree-pretty-print.h and
15163         gimple-pretty-print.h.
15164         * tree-dfa.c: Include tree-pretty-print.h.
15165         * tree-if-conv.c: Include tree-pretty-print.h and
15166         gimple-pretty-print.h.
15167         * tree-inline.c: Include tree-pretty-print.h.
15168         * tree-into-ssa.c: Include tree-pretty-print.h and
15169         gimple-pretty-print.h.
15170         * tree-nrv.c: Include tree-pretty-print.h.
15171         * tree-object-size.c: Include tree-pretty-print.h and
15172         gimple-pretty-print.h.
15173         * tree-outof-ssa.c: Include tree-pretty-print.h and
15174         gimple-pretty-print.h.
15175         * tree-parloops.c: Include tree-pretty-print.h and
15176         gimple-pretty-print.h.
15177         * tree-predcom.c: Include tree-pretty-print.h and
15178         gimple-pretty-print.h.
15179         * tree-scalar-evolution.c: Include tree-pretty-print.h and
15180         gimple-pretty-print.h.
15181         * tree-sra.c: Include tree-pretty-print.h.
15182         * tree-ssa-address.c: Include tree-pretty-print.h.
15183         * tree-ssa-alias.c: Include tree-pretty-print.h.
15184         * tree-ssa-ccp.c: Include tree-pretty-print.h and
15185         gimple-pretty-print.h.
15186         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
15187         * tree-ssa-copy.c: Include tree-pretty-print.h and
15188         gimple-pretty-print.h.
15189         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
15190         * tree-ssa-dce.c: Include tree-pretty-print.h and
15191         gimple-pretty-print.h.
15192         * tree-ssa-dom.c: Include tree-pretty-print.h and
15193         gimple-pretty-print.h.
15194         * tree-ssa-dse.c: Include gimple-pretty-print.h.
15195         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
15196         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
15197         * tree-ssa-live.c: Include tree-pretty-print.h and
15198         gimple-pretty-print.h.
15199         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
15200         gimple-pretty-print.h.
15201         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
15202         gimple-pretty-print.h.
15203         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
15204         gimple-pretty-print.h.
15205         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
15206         gimple-pretty-print.h.
15207         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
15208         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
15209         * tree-ssa-operands.c: Include tree-pretty-print.h and
15210         gimple-pretty-print.h.
15211         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
15212         gimple-pretty-print.h.
15213         * tree-ssa-pre.c: Include tree-pretty-print.h and
15214         gimple-pretty-print.h.
15215         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
15216         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
15217         gimple-pretty-print.h.
15218         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
15219         gimple-pretty-print.h.
15220         * tree-ssa-sink.c: Include gimple-pretty-print.h.
15221         * tree-ssa-ter.c: Include tree-pretty-print.h and
15222         gimple-pretty-print.h.
15223         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
15224         * tree-ssa.c: Include tree-pretty-print.h and
15225         gimple-pretty-print.h.
15226         * tree-stdarg.c: Include gimple-pretty-print.h.
15227         * tree-switch-conversion.c: Include gimple-pretty-print.h.
15228         * tree-tailcall.c: Include tree-pretty-print.h and
15229         gimple-pretty-print.h.
15230         * tree-vect-data-refs.c: Include tree-pretty-print.h and
15231         gimple-pretty-print.h.
15232         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
15233         gimple-pretty-print.h.
15234         * tree-vect-loop.c: Include tree-pretty-print.h and
15235         gimple-pretty-print.h.
15236         * tree-vect-patterns.c: Include gimple-pretty-print.h.
15237         * tree-vect-slp.c: Include tree-pretty-print.h and
15238         gimple-pretty-print.h.
15239         * tree-vect-stmts.c: Include tree-pretty-print.h and
15240         gimple-pretty-print.h.
15241         * tree-vectorizer.c: Include tree-pretty-print.h.
15242         * tree-vrp.c: Include tree-pretty-print.h and
15243         gimple-pretty-print.h.
15244         * value-prof.c: Include tree-pretty-print.h and
15245         gimple-pretty-print.h.
15246         * var-tracking.c: Include tree-pretty-print.h.
15247         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
15248         (tree-diagnostic.o): New dependencies.
15249         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
15250         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
15251         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
15252         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
15253         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
15254         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
15255         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
15256         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
15257         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
15258         tree-ssa-address.o, tree-ssa-loop-niter.o,
15259         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
15260         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
15261         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
15262         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
15263         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
15264         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
15265         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
15266         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
15267         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
15268         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
15269         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
15270         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
15271         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
15272         tree-switch-conversion.o, var-tracking.o, value-prof.o,
15273         cfgexpand.o, pretty-print.o): Update dependencies.
15274
15275 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
15276
15277         * tree-ssa-structalias.c: Remove tm_p.h from include.
15278
15279 2010-05-21  Jeff Law  <law@redhat.com>
15280
15281         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
15282
15283 2010-05-21  Jason Merrill  <jason@redhat.com>
15284
15285         * tree-eh.c (cleanup_is_dead_in): New.
15286         (lower_try_finally): Don't generate a dead cleanup region.
15287         (lower_cleanup): Likewise.
15288
15289 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
15290
15291         PR debug/44223
15292         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
15293         unchain each use from the cyclic next_regno_use chain first.
15294
15295 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
15296
15297         * real: Do not include gmp.h, mpfr.h, and mpc.h.
15298         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
15299         (real_value_negate, real_value_abs): New prototypes.
15300         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
15301         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
15302         new include file for interface between MPFR and REAL_VALUE_TYPE.
15303         * real.c: Include realmpfr.h.
15304         (real_arithmetic2): Remove legacy function.
15305         (real_value_negate): New.
15306         (real_value_abs): New.
15307         (mfpr_from_real, real_from_mpfr): Move from here...
15308         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
15309         * builtins.c: Include realmpfr.h.
15310         * fold-const.c: Include realmpfr.h.
15311         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
15312         (fold_negate_const): Likewise.
15313         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
15314         * toplev.c: Include realmpfr.h.
15315         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
15316         and real_value_negate.
15317         * fixed-value.c (check_real_for_fixed_mode): Likewise.
15318         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
15319         (vfp3_const_double_index): Likewise.
15320         (arm_print_operand): Likewise.
15321         * Makefile.in: Update dependencies.
15322
15323 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15324
15325         * config/s390/s390.c (override_options): Increase the default
15326         of max-completely-peel-times.
15327
15328 2010-05-21  Julian Brown  <julian@codesourcery.com>
15329             Mark Mitchell  <mark@codesourcery.com>
15330
15331         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
15332         sibling calls for Thumb-1.
15333         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
15334         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
15335         Thumb-2.
15336         (*call_insn, *call_value_insn): Don't use for Thumb-2.
15337         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
15338         for Thumb-2.
15339         (return): New expander.
15340         (*arm_return): New name for ARM return insn.
15341         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
15342
15343 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
15344
15345         * config.gcc (sparc64-*-rtems*): New target.
15346
15347 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
15348
15349         * tree.c (build_function_decl_skip_args): Fix grammar.
15350         (build_function_type_list_1): Fix typos, adjust formatting.
15351
15352 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
15353
15354         * tree.h: Include real.h and fixed-value.h as basic datatypes.
15355         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
15356         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
15357         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
15358         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
15359         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
15360         tree-pretty-print.c, tree-loop-distribution.c,
15361         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
15362         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
15363         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
15364         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
15365         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
15366         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
15367         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
15368         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
15369         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
15370         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
15371         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
15372         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
15373         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
15374         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
15375         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
15376         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
15377         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
15378         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
15379         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
15380         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
15381         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
15382         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
15383         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
15384         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
15385         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
15386         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
15387         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
15388         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
15389         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
15390         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
15391         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
15392         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
15393         config/score/score7.c, config/score/score.c, config/arm/arm.c,
15394         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
15395         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
15396         config/bfin/bfin.c: Clean up redundant includes.
15397         * Makefile.in: Update accordingly.
15398
15399 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
15400
15401         PR middle-end/44204
15402         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
15403         statement has no arguments.
15404
15405 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
15406
15407         PR/44139
15408         * varasm.c (emutls_decl): Merge attributes to new decl.
15409
15410 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
15411
15412         PR middle-end/44101
15413         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
15414         around the uniquized constructor if its type requires a conversion.
15415
15416 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
15417
15418         PR debug/44205
15419         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
15420         at -O0 goto_locus of any of the incoming edges differs from
15421         goto_locus of outgoing edge, or gimple_location of any of the
15422         labels differs.
15423
15424 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
15425
15426         * ira.c (ira_non_ordered_class_hard_regs): Define.
15427         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
15428         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
15429         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
15430         cost of unaligned hard regs when allocating multi-reg pseudos.
15431
15432 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
15433
15434         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
15435         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
15436         for TARGET_NO_FLOAT.
15437         * config/mips/mips.c (mips_file_start): Expand conditional expression
15438         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
15439         (mips_override_options): Move -mno-float override -msoft-float and
15440         -mhard-float.
15441         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
15442         Condition(TARGET_SUPPORTS_NO_FLOAT).
15443         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
15444         __mips_no_float here.
15445         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
15446         (TARGET_SUPPORTS_NO_FLOAT): Define.
15447         * config/mips/sdemtk.opt: Delete.
15448
15449 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
15450
15451         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
15452
15453 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
15454
15455         PR target/43733
15456         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
15457         * configure: Regenerate.
15458         * config.in: Regenerate.
15459         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
15460         instead of sahf only for 64bit targets.
15461
15462 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
15463
15464         PR debug/44178
15465         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
15466         setup_ref_regs for DEBUG_INSNs.
15467
15468 2010-05-20  Jan Hubicka  <jh@suse.cz>
15469
15470         PR middle-end/44197
15471         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
15472
15473 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
15474
15475         PR bootstrap/43870
15476         * df-scan.c (df_ref_compare): Stabilize sort.
15477
15478 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
15479
15480         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
15481         argument.  Don't use DW_OP_piece if offset is non-zero,
15482         put offset into second DW_OP_bit_piece argument.
15483         (dw_sra_loc_expr): Adjust callers.  For memory expressions
15484         compute offset.
15485
15486 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
15487
15488         PR target/44202
15489         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
15490         settings for 16-bit-constant "addo" alternative.
15491
15492 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
15493
15494         * config/mips/mips-dsp.md (add<DSPV:mode>3,
15495         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
15496
15497         PR target/43764
15498         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
15499         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
15500         Use it.
15501
15502 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
15503
15504         * diagnostic.c (FLOAT, FFS): Don't undefine.
15505         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
15506         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
15507         include ordering.
15508
15509 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
15510
15511         * combine.c (propagate_for_debug): Call make_compound_operation
15512         on the source value.
15513         (try_combine): When implementing a split chosen by find_split_point,
15514         either copy i2src or set it to null.  Assert that i2src is not null
15515         before substituting into CALL_INSN_FUNCTION_USAGE.
15516
15517 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
15518
15519         * double-int.h (double_int_ior): New function.
15520         * tree.h (build_int_cst_wide_type): Remove.
15521         * tree.c (build_int_cst_wide_type): Remove.
15522         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
15523         of build_int_cst_wide_type.
15524         * stor-layout.c (set_sizetype): (Ditto.).
15525         * dojump.c (do_jump): Use build_int_cstu instead of
15526         build_int_cst_wide_type.
15527
15528 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
15529
15530         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
15531         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
15532         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
15533         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
15534         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
15535         propagate the 'data' argument to copy_tree_r.
15536         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
15537         Propagate 'data' argument to walk_tree.
15538         (copy_if_shared): New function.
15539         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
15540         (unmark_visited): New function.
15541         (unshare_body): Call copy_if_shared instead of doing it manually.
15542         (unvisit_body): Call unmark_visited instead of doing it manually.
15543
15544 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
15545
15546         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
15547         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
15548         * hooks.c: Likewise.
15549         * target-def.h (TARGET_FOLD_BUILTIN): Define to
15550         hook_tree_tree_int_treep_bool_null.
15551         * target.h (struct gcc_target): Update signature of fold_builtin
15552         field.
15553         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
15554         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
15555         instead of the call expression.
15556         (fold_builtin_call_array): Pass n and argarray directly.
15557         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
15558         consing a list.
15559         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
15560         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
15561         `i' and use it in place of `arity'.
15562         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
15563         Dereference `args' directly.
15564         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
15565
15566 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15567
15568         * doc/sourcebuild.texi (Effective-Target Keywords): Document
15569         3dnow, sse3, sse2.
15570         (Directives): Document optional dg-require-effective-target
15571         selector.
15572
15573 2010-05-19  Richard Guenther  <rguenther@suse.de>
15574
15575         PR lto/44196
15576         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
15577
15578 2010-05-19  Richard Guenther  <rguenther@suse.de>
15579
15580         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
15581         * common.opt (fwhopr=): New.
15582         * opts.c (common_handle_option): Handle OPT_fwhopr.
15583         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
15584         * collect2.c (main): Match -fwhopr*.
15585         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
15586         Execute ltrans stage in parallel when jobs is bigger than 1.
15587
15588 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15589
15590         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
15591         pentiumpro on Solaris 8/x86 with Sun as.
15592         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
15593         hidden alias bug.
15594         (gcc_cv_as_ix86_quad): Check for .quad directive.
15595         * configure: Regenerate.
15596         * config.in: Regenerate.
15597         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
15598
15599 2010-05-19  Martin Jambor  <mjambor@suse.cz>
15600
15601         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
15602         also for indirect edges.  Actual printing moved...
15603         (ipa_print_node_jump_functions_for_edge): ...here.
15604         (ipa_compute_jump_functions): Renamed to
15605         ipa_compute_jump_functions_for_edge and made static.
15606         (ipa_compute_jump_functions): New function.
15607         (make_edge_direct_to_target): Check if the number of arguments on
15608         the newly direct edge is the same as the number of parametrs of
15609         the callee.
15610         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
15611         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
15612         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
15613         analysis functions unconditionally, call the new
15614         ipa_analyze_params_uses on the node instead of every edge.
15615
15616 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
15617
15618         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
15619         to tree.
15620         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
15621         also checks for a constant int vs.  non-constant but
15622         loop-invariant steps.
15623         (find_or_create_group): Change the sort algorithm to only consider
15624         steps that are constant ints.
15625         (idx_analyze_ref): Adopt code to handle a tree instead of a
15626         HOST_WIDE_INT for step.
15627         (gather_memory_references_ref): Handle tree instead of int and be
15628         prepared to see a NULL_TREE.
15629         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
15630         prefetches if the step cannot be calculated at compile time.
15631         (issue_prefetch_ref): Issue prefetches for non-constant but
15632         loop-invariant steps.
15633
15634 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
15635
15636         Revert:
15637         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
15638
15639         * tree.h (build_call_list): Remove.
15640         * tree.c (build_call_list): Remove.
15641
15642 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
15643
15644         * tree.h (build_call_list): Remove.
15645         * tree.c (build_call_list): Remove.
15646
15647 2010-05-18  Jan Hubicka  <jh@suse.cz>
15648
15649         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
15650
15651 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
15652
15653         PR rtl-optimization/43332
15654         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
15655
15656 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
15657
15658         * tree.h (build_int_cstu): Implement as static inline.
15659         * tree.c (build_int_cstu): Remove function.
15660         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
15661         sign extended.
15662
15663 2010-05-18  Richard Guenther  <rguenther@suse.de>
15664
15665         PR lto/44143
15666         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
15667         (debug): Initialize from -save-temps.
15668         (collect_execute): Print command-line when verbose.
15669         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
15670         for ltrans invocation.  Produce -dumpbase flag again.
15671         (process_args): Remove.
15672         (main): Simplify.
15673         * collect2.c (maybe_run_lto_and_relink): Only pass object
15674         files to lto-wrapper.
15675         * gcc.c (LINK_COMMAND_SPEC): Likewise.
15676
15677 2010-05-18  Jan Hubicka  <jh@suse.cz>
15678
15679         * opts.c (decode_options): Do not disable whopr at ipa_cp.
15680         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
15681
15682 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
15683
15684         PR lto/44184
15685         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
15686         in a GIMPLE_ASM.
15687         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
15688         in a GIMPLE_ASM.
15689
15690 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
15691
15692         PR debug/41371
15693         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
15694         rtx_equal_p inline.
15695
15696 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
15697
15698         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
15699         lto-macho as lto_binary_reader.
15700
15701         * darwin.c (darwin_asm_named_section): Do not add assembler comment
15702         after .section directive; just print it before the directive instead.
15703
15704 2010-05-17  Jan Hubicka  <jh@suse.cz>
15705
15706         * cgraph.c (cgraph_create_virtual_clone): Only check
15707         versionable_function_p when not in wpa and checking is enabled.
15708         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
15709         there are no more functions to materialize.
15710
15711 2010-05-17  Jan Hubicka  <jh@suse.cz>
15712
15713         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
15714         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
15715         New functions.
15716         (output_cgraph): Call output_cgraph_opt_summary.
15717         (input_cgrpah): Call input_cgraph_opt_summary.
15718         (output_cgraph_opt_summary_p, output_node_opt_summary,
15719         input_node_opt_summary, input_cgraph_opt_section): New functions.
15720         * lto-section-in.c (lto_section_name): Add cgraphopt.
15721         * tree-inline.c (tree_function_versioning): Handle parm_num.
15722         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
15723         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
15724
15725 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
15726
15727         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
15728         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
15729         the insn to prefetch ratio heuristic to loops with known trip count.
15730
15731 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
15732
15733         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
15734         (schedule_prefetches): Do not generate a prefetch if the unroll factor
15735         is far from what is required by the prefetch.
15736
15737 2010-05-17  Jan Hubicka  <jh@suse.cz>
15738
15739         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
15740         (ipcp_estimate_growth): Likewise.
15741         (ipcp_const_param_count): Likewise.
15742         (ipcp_insert_stage): Likewise.
15743         * ipa-prop.c (visit_load_for_mod_analysis): New function.
15744         (visit_store_addr_for_mod_analysis): Set used flag.
15745         (ipa_detect_param_modifications): Set used flag for SSE params;
15746         update use of walk_stmt_load_store_addr_ops.
15747         (ipa_print_node_params): Print used flag.
15748         (ipa_write_node_info): Stream used flag.
15749         (ipa_read_node_info): Likewise.
15750         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
15751         (ipa_is_param_used): New function.
15752         (lto_ipa_fixup_call_notes): Remove unused declaration.
15753
15754 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15755
15756         PR target/44074
15757         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
15758         * configure: Regenerate.
15759         * config.in: Regenerate.
15760         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
15761         !HAVE_AS_IX86_REP_LOCK_PREFIX.
15762         Don't emit whitespace.
15763         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
15764         (*rep_movsi): Likewise.
15765         (*rep_movsi_rex64): Likewise.
15766         (*rep_movqi): Likewise.
15767         (*rep_movqi_rex64): Likewise.
15768         (*rep_stosdi_rex64): Likewise.
15769         (*rep_stossi): Likewise.
15770         (*rep_stossi_rex64): Likewise.
15771         (*rep_stosqi): Likewise.
15772         (*rep_stosqi_rex64): Likewise.
15773         (*cmpstrnqi_nz_1): Use {%;} after repz.
15774         (*cmpstrnqi_nz_rex_1): Likewise.
15775         (*cmpstrnqi_1): Likewise.
15776         (*cmpstrnqi_rex_1): Likewise.
15777         (*strlenqi_1): Use {%;} after repnz.
15778         (*strlenqi_rex_1): Likewise.
15779         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
15780         (*sync_compare_and_swap<mode>): Likewise.
15781         (sync_double_compare_and_swap<mode>): Likewise.
15782         (*sync_double_compare_and_swapdi_pic): Likewise.
15783         (sync_old_add<mode>): Likewise.
15784         (sync_add<mode>): Likewise.
15785         (sync_sub<mode>): Likewise.
15786         (sync_<code><mode>): Likewise.
15787
15788 2010-05-17  Martin Jambor  <mjambor@suse.cz>
15789
15790         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
15791         otr_token and polymorphic.
15792         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
15793         (cgraph_clone_edge): Copy the above fields.
15794         * tree.c (get_binfo_at_offset): New function.
15795         * tree.h (get_binfo_at_offset): Declare.
15796         * ipa-prop.h (enum jump_func_type): Added known_type jump function
15797         type, reordered items, updated comments.
15798         (union jump_func_value): Added base_type field, reordered fields.
15799         (enum ipa_lattice_type): Moved down in the file.
15800         (struct ipa_param_descriptor): New field polymorphic.
15801         (ipa_is_param_polymorphic): New function.
15802         * ipa-prop.c: Include gimple.h and gimple-fold.h.
15803         (ipa_print_node_jump_functions): Print known type jump functions.
15804         (compute_complex_pass_through): Renamed to...
15805         (compute_complex_assign_jump_func): this.
15806         (compute_complex_ancestor_jump_func): New function.
15807         (compute_known_type_jump_func): Likewise.
15808         (compute_scalar_jump_functions): Create known type and complex ancestor
15809         jump functions.
15810         (ipa_note_param_call): New parameter polymorphic, set the corresponding
15811         flag in the call note accordingly.
15812         (ipa_analyze_call_uses): Renamed to...
15813         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
15814         variable var only in the block where it is used.
15815         (ipa_analyze_virtual_call_uses): New function.
15816         (ipa_analyze_call_uses): Likewise.
15817         (combine_known_type_and_ancestor_jfs): Likewise.
15818         (update_jump_functions_after_inlining): Implemented handling of a
15819         number of new jump function types combination.
15820         (print_edge_addition_message): Removed.
15821         (make_edge_direct_to_target): New function.
15822         (try_make_edge_direct_simple_call): Likewise.
15823         (try_make_edge_direct_virtual_call): Likewise.
15824         (update_call_notes_after_inlining): Renamed to...
15825         (update_indirect_edges_after_inlining): this.  Moved edge creation for
15826         indirect calls to try_make_edge_direct_simple_call, also calls
15827         try_make_edge_direct_virtual_call for virtual calls.
15828         (ipa_print_node_params): Changed the header message.
15829         (ipa_write_jump_function): Stream also known type jump functions.
15830         (ipa_read_jump_function): Likewise.
15831         (ipa_write_indirect_edge_info): Stream new fields in
15832         cgraph_indirect_call_info.
15833         (ipa_read_indirect_edge_info): Likewise.
15834         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
15835         GIMPLE_FOLD_H.
15836
15837 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15838
15839         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
15840
15841 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
15842
15843         * tree.h (CALL_EXPR_ARGS): Delete.
15844         (call_expr_arglist): Delete.
15845         * tree.c (call_expr_arglist): Delete.
15846         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
15847         targetm.fold_builtin.
15848         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
15849         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
15850         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
15851         arglist parameter.  Use CALL_EXPR_ARG.
15852         (picochip_expand_builtin_3op): Likewise.
15853         (picochip_expand_builtin_2opvoid): Likewise.
15854         (picochip_expand_array_get): Likewise.
15855         (picochip_expand_array_put): Likewise.
15856         (picochip_expand_array_testport): Likewise.
15857         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
15858         rather than arglist.
15859         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
15860         CALL_EXPR_ARGS.
15861         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
15862         than TREE_VALUE and TREE_CHAIN.
15863         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
15864         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
15865         the arglist.
15866
15867 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
15868
15869         PR bootstrap/42347
15870         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
15871         to have no fallthru edge.
15872
15873         PR middle-end/44102
15874         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
15875         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
15876         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
15877         add BARRIER after previous bb if needed.
15878
15879 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
15880
15881         * tree.c (build_function_type_list_1): Remove bogus assert condition.
15882
15883 2010-05-17  Alan Modra  <amodra@gmail.com>
15884
15885         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
15886         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
15887         with copy_reg rtx param.
15888         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
15889         Correct cases where code for ABI_V4 did not initialise the reg
15890         used to access frame.  Also leave frame_reg_rtx as sp for large
15891         frames that save no regs.
15892
15893 2010-05-17  Martin Jambor  <mjambor@suse.cz>
15894
15895         PR middle-end/44133
15896         * tree-sra.c (create_access_replacement): New parameter rename, mark
15897         the replaement for renaming only when it is true.
15898         (get_access_replacement): Pass true in the rename parameter of
15899         create_access_replacement.
15900         (get_unrenamed_access_replacement): New function.
15901         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
15902         replacement declaration from it.
15903
15904 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
15905
15906         * function.c (try_fit_stack_local, add_frame_space): New static
15907         functions.
15908         (assign_stack_local_1): Use them.  Look for opportunities to use
15909         space previously wasted on alignment.
15910         * function.h (struct frame_space): New.
15911         (struct rtl_data): Add FRAME_SPACE_LIST member.
15912         * reload1.c (something_was_spilled): New static variable.
15913         (alter_reg): Set it.
15914         (reload): Test it in addition to testing if the frame size changed.
15915
15916 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
15917
15918         * config/s390/s390.c: Define sane prefetch settings and activate
15919         flag_prefetch_loop_arrays on -O3.
15920         * config/s390/s390.h: Declare that read can use write prefetch.
15921
15922 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
15923
15924         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
15925         build.
15926
15927 2010-05-16  Jan Hubicka  <jh@suse.cz>
15928
15929         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
15930         function body; do not check stdarg field of struct function.
15931
15932 2010-05-16  Jan Hubicka  <jh@suse.cz>
15933
15934         * cgraph.c (dump_cgraph_node): Dump versionable flag.
15935         * cgraph.h (cgraph_local_info): Add versionable flag.
15936         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
15937         (ipcp_versionable_function_p): Use it.
15938         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
15939         versionable flag.
15940
15941 2010-05-16  Jan Hubicka  <jh@suse.cz>
15942
15943         * cgraph.c (cgraph_clone_node): Take decl argument and insert
15944         clone into hash when it is different from orig.
15945         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
15946         * cgraph.h (cgraph_clone_node): Update prototype.
15947         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
15948         (lto_cgraph_encoder_delete): Delete body map.
15949         (lto_cgraph_encoder_size): Move to header.
15950         (lto_cgraph_encoder_encode_body_p,
15951         lto_set_cgraph_encoder_encode_body): New.
15952         (lto_output_node): Do not take written_decls argument; output clone_of
15953         pointer.
15954         (add_node_to): Add include_body_argument; call
15955         lto_set_cgraph_encoder_encode_body on master of the clone.
15956         (add_references): Update use of add_node_to.
15957         (compute_ltrans_boundary): Likewise.
15958         (output_cgraph): Do not create written_decls bitmap.
15959         (input_node): Take nodes argument; stream in clone_of correctly.
15960         (input_cgraph_1): Update use of input_node.
15961         * lto-streamer-out.c (lto_output): Use encoder info to decide
15962         what bodies to output.
15963         * ipa-inline.c (cgraph_clone_inlined_nodes,
15964         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
15965         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
15966         (lto_cgraph_encoder_size): Define here.
15967         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
15968         Declare.
15969
15970 2010-05-16  Richard Guenther  <rguenther@suse.de>
15971
15972         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
15973         -fipa-type-escape.
15974         * ipa-type-escape.c (gate_type_escape_vars): Run when
15975         -fipa-struct-reorg runs.
15976         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
15977         * common.opt (fipa-type-escape): Remove.
15978
15979 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
15980
15981         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
15982         (decode_options): Likewise.
15983         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
15984
15985 2010-05-16  Jan Hubicka  <jh@suse.cz>
15986
15987         * ipa.c (function_and_variable_visibility): Also bring local all
15988         aliases.
15989
15990 2010-05-16  Richard Guenther  <rguenther@suse.de>
15991
15992         * alias.c (nonoverlapping_memrefs_p): Remove use of
15993         IPA type-escape information.
15994
15995 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
15996
15997         * c-common.c (c_common_reswords): Add _Static_assert for C.
15998         * c-parser.c (c_token_starts_declaration,
15999         c_parser_next_token_starts_declaration,
16000         c_parser_static_assert_declaration_no_semi,
16001         c_parser_static_assert_declaration): New.
16002         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
16003         Handle static assertions if static_assert_ok.
16004         (c_parser_external_declaration, c_parser_declaration_or_fndef,
16005         c_parser_compound_statement_nostart, c_parser_label,
16006         c_parser_for_statement, c_parser_objc_methodprotolist,
16007         c_parser_omp_for_loop): All callers of
16008         c_parser_declaration_or_fndef changed.
16009         (c_parser_struct_declaration): Handle static assertions.
16010         (c_parser_compound_statement_nostart): Use
16011         c_parser_next_token_starts_declaration and
16012         c_token_starts_declaration to detect start of declarations.
16013         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
16014         Likewise.
16015
16016 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
16017
16018         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
16019         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
16020         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16021         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16022         (mmix_function_outgoing_value): Rename to...
16023         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
16024         (mmix_function_value_regno_p): Make static.
16025         (mmix_libcall_value): New function.
16026         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
16027         mmix_function_value_regno_p): Remove declaration.
16028
16029 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
16030
16031         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
16032         BUILT_IN_ALLOCA if stack checking is enabled.
16033
16034 2010-05-16  Richard Guenther  <rguenther@suse.de>
16035
16036         * var-tracking.c (vars_copy_1): Inline ...
16037         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
16038         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
16039         (variable_merge_over_cur): Adjust.  Merge asserts.
16040         (variable_merge_over_src): Likewise.
16041         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
16042         (variable_post_merge_new_vals): Merge asserts.
16043         (variable_post_merge_perm_vals): Likewise.
16044         (find_mem_expr_in_1pdv): Likewise.
16045         (dataflow_set_different_value): Remove.
16046         (onepart_variable_different_p): Merge asserts.
16047         (variable_different_p): Likewise.
16048         (dataflow_set_different_1): Inline ...
16049         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
16050         (emit_notes_for_differences_1): Merge asserts.
16051
16052 2010-05-16  Richard Guenther  <rguenther@suse.de>
16053
16054         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
16055         * optabs.c (libfunc_decl_hash): Likewise.
16056         * varasm.c (emutls_decl): Likewise.
16057
16058 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
16059
16060         * c-decl.c: Don't include gimple.h.
16061         (merge_decls): Do not copy gimple_body.
16062
16063 2010-05-15  Jason Merrill  <jason@redhat.com>
16064
16065         * c.opt: Add -fnothrow-opt.
16066
16067 2010-05-15  Jan Hubicka  <jh@suse.cz>
16068
16069         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
16070         analyzed.
16071         * passes.c (ipa_write_summaries): Write all analyzed nodes.
16072
16073 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
16074
16075         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
16076         * Makefile.in: Add it.
16077         Fix all other Makefile dependencies for changes below.
16078         * tree.h: Include it instead of defining VEC primitives here.
16079         * gimple.h: Likewise.
16080         * rtl.h: Likewise.
16081         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
16082         * except.h: Include vecir.h, break dependence on tree.h.
16083
16084         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
16085         Move from here...
16086         * tree-iterator.c: ...to here.
16087         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
16088
16089         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
16090         tm_p.h.
16091         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
16092         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
16093         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
16094         tree-mudflap.h, and target.h.
16095         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
16096         predict.h, tree-inline.h, gimple.h, and langhooks.h.
16097         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
16098         Add FIXME for why gimple.h is still included (should be unnecessary
16099         since GCC 4.5 gimplification unit-at-a-time).
16100         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
16101         * c-pragma.c: Add FIXME for why function.h needs to be included just
16102         for cfun, at front-end level.
16103         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
16104         Do not include ggc.h, but include vecprim.h for VEC(char).
16105         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
16106         Explain why target.h is included.
16107         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
16108         Explain why gimple.h is included.
16109         * c-ppoutput.c: Do not include tm.h.
16110         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
16111         * c-parses.c: Explain why rtl.h is included, and that this (and only
16112         this) is also why tm.h must be included.
16113         Do not include except.h.
16114         * c-lang.c: Do not include ggc.h.
16115
16116 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
16117
16118         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
16119
16120 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
16121
16122         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
16123         unions by default if those structs and unions have no tags.  Do
16124         not condition anonymous struct and unions handling on flag_iso.
16125         Allow anonymous structs and unions for C1X.
16126         (finish_struct): Do not diagnose lack of named fields when
16127         anonymous structs and unions present for C1X.  Accept flexible
16128         array members in structure with anonymous structs or unions but no
16129         directly named fields.
16130         * doc/extend.texi (Unnamed Fields): Update.
16131
16132 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
16133
16134         * gimple.h (compare_field_offset): Rename into...
16135         (gimple_compare_field_offset): ...this.
16136         * gimple.c (compare_field_offset): Rename into...
16137         (gimple_compare_field_offset): ...this.  Compare the full access if
16138         the offset is self-referential.
16139         (gimple_types_compatible_p): Adjust for above renaming.
16140         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
16141         DECL_NONADDRESSABLE_P flag of fields before merging them.
16142
16143 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
16144
16145         * tree.h (ctor_to_list): Delete.
16146         * tree.c (ctor_to_list): Delete.
16147
16148 2010-05-15  Jan Hubicka  <jh@suse.cz>
16149
16150         * ipa-reference.c: Include toplev.h
16151         (is_proper_for_analysis): Only add to all_module_statics
16152         if it is allocated.
16153         (write_node_summary_p, stream_out_bitmap,
16154         ipa_reference_write_optimization_summary,
16155         ipa_reference_read_optimization_summary): New.
16156         (struct ipa_opt_pass_d pass_ipa_reference): Add
16157         optimization summary streaming.
16158         * lto-cgraph.c (referenced_from_this_partition_p,
16159         reachable_from_this_partition_p): New functions.
16160         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
16161         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
16162         * opts.c (decode_options): Enable ipa_reference.
16163         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
16164         * lto-streamer.h (referenced_from_this_partition_p,
16165         reachable_from_this_partition_p): Declare.
16166
16167 2010-05-15  Richard Guenther  <rguenther@suse.de>
16168
16169         PR tree-optimization/44038
16170         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
16171         taking the address of a V_C_E of a constant.
16172
16173 2010-05-14  Jan Hubicka  <jh@suse.cz>
16174
16175         * tree.h (memory_identifier_string): Remove.
16176         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
16177         (ipa_reference_global_vars_info_d): Remove statics_not_read and
16178         statics_not_written.
16179         (ipa_reference_optimization_summary_d): New structure.
16180         (ipa_reference_optimization_summary_t): New type and vector.
16181         (ipa_reference_vars_info_d): Embedd structures instead of using
16182         pointers.
16183         (reference_vars_to_consider): Remove out of GGC space.
16184         (module_statics_escape): Remove.
16185         (global_info_obstack): Rename to ...
16186         (optimization_summary_obstack): ... this one.
16187         (initialization_status_t): Remove.
16188         (memory_identifier_string): Remove.
16189         (get_reference_vars_info): Fix indenting.
16190         (set_reference_vars_info): Likewise.
16191         (get_reference_optimization_summary): New.
16192         (set_reference_optimization_summary): New.
16193         (get_global_reference_vars_info): Remove.
16194         (ipa_reference_get_read_global): Remove.
16195         (ipa_reference_get_written_global): Remove.
16196         (ipa_reference_get_not_read_global): Update.
16197         (ipa_reference_get_not_written_global): Update.
16198         (is_proper_for_analysis): Outlaw addressable.
16199         (propagate_bits): Update for new datastructures.
16200         (analyze_variable): Remove.
16201         (init_function_info): Update for new datastructures.
16202         (clean_function_local_data): Remove.
16203         (clean_function): Remove.
16204         (copy_global_bitmap): Use optimizations_summary_obstack.
16205         (duplicate_node_data): Duplicate optimization summary only.
16206         (remove_node_data): Remove optimization summary only.
16207         (generate_summary): Do not analyze variables; do not compute
16208         module_statics_escape; do not prune solutions by it.
16209         (read_write_all_from_decl): Fix typos in comments.
16210         (propagate): Doscover readonly and nonaddressable first;
16211         update for new datastructures; share global bitmaps.
16212         * ipa-reference.h (ipa_reference_get_read_global,
16213         ipa_reference_get_written_global): Remove.
16214         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
16215         * Makefile.in: Remove ipa-refereference from GT files.
16216
16217 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
16218
16219         PR debug/44112
16220         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
16221         for all SYMBOL_REF_DECLs.
16222
16223 2010-05-14  Jan Hubicka  <jh@suse.cz>
16224
16225         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
16226         (varpool_all_refs_explicit_p): New inline function.
16227         * ipa-reference.c: Update comment.
16228         (module_statics_written): Remove.
16229         (get_static_decl): Remove.
16230         (ipa_init): Do not initialize module_statics_written.
16231         (analyze_function): Likewise.
16232         (generate_summary): Likewise; do not compute module_statics_readonly
16233         and do not update variable flags.
16234         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
16235         * ipa.c: Inlucde flags.h
16236         (cgraph_local_node_p): New.
16237         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
16238         promote functions to local.
16239         (ipa_discover_readonly_nonaddressable_vars): New function.
16240         (function_and_variable_visibility): Use cgraph_local_node_p.
16241         * varpool.c (varpool_finalize_decl): Set force_output for
16242         DECL_PRESERVE_P vars.
16243
16244 2010-05-14  Jan Hubicka  <jh@suse.cz>
16245
16246         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
16247
16248 2010-05-14  Richard Guenther  <rguenther@suse.de>
16249
16250         PR tree-optimization/44119
16251         * tree-ssa-pre.c (eliminate): Properly mark replacement of
16252         a PHI node necessary.
16253
16254 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
16255
16256         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
16257
16258 2010-05-14  Jason Merrill  <jason@redhat.com>
16259
16260         PR c++/44127
16261         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
16262         (gimple_call_set_nothrow): New.
16263         * gimple.c (gimple_build_call_from_tree): Call it.
16264         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
16265
16266         PR c++/44127
16267         * gimplify.c (gimplify_seq_add_stmt): No longer static.
16268         * gimple.h: Declare it.
16269         * gimple.c (gimple_build_eh_filter): No ops.
16270
16271 2010-05-14  Jan Hubicka  <jh@suse.cz>
16272
16273         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
16274         nodes already in queue.
16275         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
16276         re-enqueueing node.
16277
16278 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
16279
16280         PR debug/44136
16281         * cfgexpand.c (expand_debug_expr): If non-memory op0
16282         has BLKmode, return NULL.
16283
16284 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
16285
16286         * config.gcc: Add support for --with-cpu option for bdver1.
16287         * config/i386/i386.h (TARGET_BDVER1): New macro.
16288         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
16289         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
16290         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
16291         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
16292         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
16293         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
16294         (processor_type): Add PROCESSOR_BDVER1.
16295         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
16296         processor_type in config/i386/i386.h.
16297         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
16298         movaps <reg, reg> instead of movapd <reg, reg> when replacing
16299         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
16300         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
16301         to emit packed xor instead of packed double/packed integer
16302         xor for SSE and AVX when moving a zero value.
16303         * config/i386/sse.md: Add check for
16304         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
16305         movapd/movdqa for SSE and AVX.
16306         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
16307         single logical operations i.e and, or and xor instead of packed double
16308         logical operations for SSE and AVX.
16309         * config/i386/i386-c.c (ix86_target_macros_internal):
16310         Add PROCESSOR_BDVER1.
16311         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
16312         (has_fma4, has_xop): New.
16313         * config/i386/i386.c (bdver1_cost): New variable.
16314         (m_BDVER1): New macro.
16315         (m_AMD_MULTIPLE): Add m_BDVER1.
16316         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
16317         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
16318         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
16319         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
16320         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
16321         x86_tune_sse_partial_reg_dependency,
16322         x86_tune_sse_unaligned_load_optimal,
16323         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
16324         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
16325         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
16326         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
16327         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
16328         Enable/disable for bdver1.
16329         (processor_target_table): Add bdver1_cost.
16330         (cpu_names): Add bdver1.
16331         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
16332          processor_alias_table.
16333         (ix86_expand_vector_move_misalign): Change.
16334         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
16335         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
16336         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
16337         of movupd/movdqu for SSE and AVX.
16338         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
16339         (ix86_tune_adjust_cost): Add code for bdver1.
16340         (standard_sse_constant_opcode): Add check for
16341         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
16342         of packed double xor for SSE and AVX.
16343
16344 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
16345
16346         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
16347         result to unsigned.
16348
16349 2010-05-14  Tristan Gingold  <gingold@adacore.com>
16350
16351         * toplev.c (default_debug_hooks): Remove this variable.
16352         (process_options): Remove assignments to default_debug_hooks.
16353
16354 2010-05-14  Martin Jambor  <mjambor@suse.cz>
16355
16356         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
16357         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
16358         * langhooks.h (struct lang_hooks_for_decls): Removed field
16359         fold_obj_type_ref.
16360         * tree.c (free_lang_data): Remove assignment to
16361         lang_hooks.fold_obj_type_ref.
16362         * tree.def (OBJ_TYPE_REF): Update comment.
16363
16364 2010-05-14  Richard Guenther  <rguenther@suse.de>
16365
16366         PR tree-optimization/44124
16367         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
16368
16369 2010-05-14  Alan Modra  <amodra@gmail.com>
16370
16371         PR target/44075
16372         * config/rs6000/rs6000.c (struct machine_function): Reorder
16373         fields for better packing.  Add lr_save_state.
16374         (rs6000_ra_ever_killed): Return lr_save_state if set.
16375         (rs6000_emit_eh_reg_restore): Set lr_save_state.
16376
16377 2010-05-13  Jan Hubicka  <jh@suse.cz>
16378
16379         * varpool.c (decide_is_variable_needed): Drop code checking
16380         TREE_SYMBOL_REFERENCED.
16381
16382 2010-05-13  Jan Hubicka  <jh@suse.cz>
16383
16384         * final.c (output_addr_const): Do not call mark_decl_referenced.
16385         * cgraphunit.c (process_function_and_variable_attributes): Use
16386         mark_needed_node dirrectly.
16387         (assemble_thunk): Do not call mark_decl_referenced.
16388
16389 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
16390
16391         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
16392
16393 2010-05-13  Jeff Law  <law@redhat.com>
16394
16395         * ira-conflicts.c (print_allocno_conflicts): New function broken out
16396         from...
16397         (print_conflicts): Call print_allocno_conflicts.
16398
16399 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
16400
16401         PR debug/44104
16402         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
16403         if it is NULL.
16404
16405 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
16406
16407         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
16408         t-mingw-w64 or t-mingw-w32 for multilib configuration.
16409         * config/i386/t-mingw-w32: New.
16410         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
16411
16412 2010-05-13  Martin Jambor  <mjambor@suse.cz>
16413
16414         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
16415         gimple-fold.c).
16416         * gimple-fold.c (get_base_binfo_for_type): New function.
16417         (gimple_get_relevant_ref_binfo): Likewise.
16418         (gimple_fold_obj_type_ref_known_binfo): Likewise.
16419         (gimple_fold_obj_type_ref): Likewise.
16420         (fold_gimple_call): Simplify condition for folding virtual calls
16421         and call gimple_fold_obj_type_ref.
16422         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
16423         (gimple_fold_obj_type_ref_known_binfo): Likewise.
16424
16425 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
16426
16427         * config/rs6000/rs6000-protos.h
16428         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
16429         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
16430         (rs6000_debug_mode_dependent_address)
16431         (rs6000_mode_dependent_address_ptr): Likewise.
16432
16433 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
16434
16435         PR debug/43983
16436         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
16437         by SRA.
16438         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
16439         * tree-sra.c (create_access_replacement): Call unshare_expr before
16440         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
16441         * dwarf2out.c: Include tree-flow.h.
16442         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
16443         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
16444         Handle DW_OP_bit_piece.
16445         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
16446         construct_piece_list, adjust_piece_list): New functions.
16447         (add_var_loc_to_decl): Handle SRA optimized variables.
16448         Adjust for var_loc_note to loc field renaming.
16449         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
16450         in VAR_LOCATION note.
16451         (new_loc_descr_op_bit_piece): New function.
16452         (dw_sra_loc_expr): New function.
16453         (dw_loc_list): Use it.  Don't handle the last range after the
16454         loop, handle it inside of the loop.  Adjust for var_loc_note
16455         to loc field renaming.
16456         (add_location_or_const_value_attribute): Only special case
16457         single entry loc lists if loc is NOTE_P.  Adjust for
16458         var_loc_note to loc field renaming.
16459         (dwarf2out_var_location): Don't set newloc->var_loc_note
16460         and newloc->next here.
16461
16462 2010-05-12  Jan Hubicka  <jh@suse.cz>
16463
16464         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
16465         flag.
16466         * cgraph.h (cgraph_only_called_directly_p,
16467         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
16468         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
16469         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
16470         (assemble
16471         * ipa.c (cgraph_remove_unreachable_nodes): Use
16472         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
16473         flags.
16474         * tree-inline.c (copy_bb): Check address_taken flag.
16475         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
16476         externally_visible flag.
16477
16478 2010-05-12  Jason Merrill  <jason@redhat.com>
16479
16480         PR bootstrap/44048
16481         PR target/44099
16482         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
16483         * sdbout.c (plain_type_1): Likewise.
16484         * dwarf2out.c (is_base_type): Likewise.
16485         (gen_type_die_with_usage): Likewise.  Generate
16486         DW_TAG_unspecified_type for any LANG_TYPE.
16487
16488 2010-05-12  Jan Hubicka  <jh@suse.cz>
16489
16490         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
16491         indrect edges too.
16492         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
16493         (cgraph_clone_edge): Update.
16494         (cgraph_node_remove_callees): Remove indirect calls too.
16495         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
16496         (cgraph_create_indirect_edge): Update prototype.
16497         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
16498         is_proper_for_analysis.
16499         (add_new_function, visited_nodes, function_insertion_hook_holder,
16500         get_local_reference_vars_info, mark_address_taken, mark_address,
16501         mark_load, mark_store, check_asm_memory_clobber, check_call,
16502         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
16503         (ipa_init): Do not initialize visited_nodes;
16504         function_insertion_hook_holder.
16505         (analyze_variable): Rewrite.
16506         (analyze_function): Rewrite.
16507         (copy_local_bitmap): Remove.
16508         (duplicate_node_dat): Do not duplicate local info.
16509         (generate_summary): Simplify to only walk cgraph.
16510         (write_node_summary_p, ipa_reference_write_summary,
16511         ipa_reference_read_summary): Remove.
16512         (propagate): Do not remove function insertion;
16513         generate summary.
16514         (pass_ipa_reference): NULLify summary handling fields.
16515         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
16516         (input_edge): Input ecf_flags.
16517         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
16518         (update_indirect_edges_after_inlining): Ignore edges with unknown
16519         param.
16520
16521 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
16522
16523         * implicit-zee.c: New file.
16524         * tree-pass.h (pass_implicit_zee): Declare.
16525         * passes.c (init_optimization_passes): Add zee pass.
16526         * common.opt (fzee): New flag.
16527         * timevar.def (TV_ZEE): Define.
16528         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
16529         and beyond.
16530         * Makefile.in (implicit-zee.o): Add new build file.
16531
16532 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
16533             Nathan Froyd  <froydnj@codesourcery.com>
16534
16535         * c-common.c (sync_resolve_params): Remove write-only variable.
16536
16537 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
16538
16539         * target.h (struct gcc_target): Add mode_dependent_address_p field.
16540         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
16541         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
16542         * targhooks.c (default_mode_dependent_address_p): New function.
16543         * targhooks.h (default_mode_dependent_address_p): Declare function.
16544         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
16545         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
16546         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
16547         target hook. Change return type to bool.
16548         * recog.h (mode_dependent_address_p): Change return type to bool.
16549
16550 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
16551             Nathan Froyd  <froydnj@codesourcery.com>
16552
16553         * tree-mudflap.c (build_function_type_0, build_function_type_1,
16554         build_function_type_2, build_function_type_3): Remove.
16555         (mudflap_init): Use build_function_type_list.
16556
16557 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
16558             Nathan Froyd  <froydnj@codesourcery.com>
16559
16560         * coverage.c (build_fn_info_value): Call build_constructor instead of
16561         build_constructor_from_list.
16562         (build_ctr_info_value): Likewise.
16563         (build_gcov_info): Likewise.
16564
16565 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
16566
16567         * tree.c (build_constructor): Compute TREE_CONSTANT for the
16568         resultant constructor.
16569         (build_constructor_single): Don't set TREE_CONSTANT.
16570         (build_constructor_from_list): Don't compute TREE_CONSTANT.
16571
16572 2010-05-12  Jan Hubicka  <jh@suse.cz>
16573
16574         * cgraph.h (struct varpool_node): Add aux.
16575         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
16576         * varpool.c (varpool_remove_node): Do not remove initializer.
16577         (varpool_reset_queue): Export.
16578         (varpool_finalize_decl): Volatile vars are forced to be output.
16579         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
16580         replaced decl.
16581         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
16582         process_references, varpool_can_remove_if_no_refs): New functions.
16583         (cgraph_remove_unreachable_nodes): Handle variables too.
16584
16585 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
16586
16587         PR target/44088
16588         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
16589
16590 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
16591
16592         PR middle-end/44085
16593         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
16594         change value of ORT_TASK.
16595         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
16596         (omp_notice_threadprivate_variable): New function.
16597         (omp_notice_variable): Call it for threadprivate variables.
16598         If enclosing ctx is a task, print enclosing task rather than
16599         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
16600         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
16601         if task has untied clause.
16602
16603         PR debug/42278
16604         * dwarf2out.c (base_type_die): Don't add name attribute here.
16605         (modified_type_die): Instead of sizetype use
16606         its underlying original type.  If a DW_TAG_base_type doesn't
16607         have name added, add __unknown__.
16608         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
16609         always call force_type_die instead.
16610
16611 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
16612
16613         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
16614         for __stack_chk_guard.
16615
16616 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
16617
16618         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
16619         don't call start_source_file debug hook here...
16620         (finish_options): ... but here, after outputting predefined and
16621         command line defines and undefs.
16622
16623         PR middle-end/44071
16624         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
16625         no fallthru edge.
16626         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
16627         optimizing away empty bb with no successors, move over its
16628         footer chain to fallthru predecessor.
16629         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
16630         (rtl_split_edge): For asm goto call patch_jump_insn even if
16631         splitting fallthru edge.
16632
16633         PR c++/44059
16634         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
16635         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
16636         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
16637         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
16638         on DW.ref.* decls.
16639
16640         PR c++/44062
16641         * c-parser.c (c_parser_expression): Mark LHS of a comma
16642         expression as read if it is a decl, handled component or
16643         COMPOUND_EXPR with that on the RHS.
16644         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
16645         if it is a decl or handled component.
16646
16647 2010-05-11  Jan Hubicka  <jh@suse.cz>
16648
16649         * lto-symtab.c (lto_symtab_free): New function.
16650         * lto-streamer.h (lto_symtab_free): Declare.
16651
16652 2010-05-11  Jan Hubicka  <jh@suse.cz>
16653
16654         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
16655         that if function is needed it is reachable.
16656         (lto_output_node): See if it the function is reachable or referenced.
16657         (output_cgraph): Update call of lto_output_node.
16658         * lto-streamer.h (reachable_from_other_partition_p): Declare.
16659
16660 2010-05-11  Jan Hubicka  <jh@suse.cz>
16661
16662         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
16663         Mark as used.
16664
16665 2010-05-11  Jan Hubicka  <jh@suse.cz>
16666
16667         PR tree-optimize/44063
16668         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
16669         queue.
16670         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
16671         limits.
16672         (estimate_function_body_sizes): Compute sizes even when disregarding.
16673
16674 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
16675
16676         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
16677
16678 2010-05-11  Jan Hubicka  <jh@suse.cz>
16679
16680         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
16681         into every boundary.
16682
16683 2010-05-11  Jan Hubicka  <jh@suse.cz>
16684
16685         * matrix-reorg.c (matrix_reorg): Rebuild edges.
16686
16687 2010-05-11  Jan Hubicka  <jh@suse.cz>
16688
16689         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
16690         lto_streamer_cache_delete): Put nodes into heap.
16691         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
16692         heap.
16693
16694 2010-05-11  Jan Hubicka  <jh@suse.cz>
16695
16696         * cgraphbuild.c (cgraph_rebuild_references): New.
16697         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
16698         out extern inlines.
16699         * cgraph.h (cgraph_rebuild_references): Declare.
16700         * tree-inline.c (tree_function_versioning): Use it.
16701         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
16702
16703 2010-05-11  Jan Hubicka  <jh@suse.cz>
16704
16705         * cgraph.c: Include ipa-utils.h
16706         (cgraph_create_virtual_clone): Update references.
16707         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
16708
16709 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
16710
16711         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
16712         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
16713         cache size.
16714
16715 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
16716
16717         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
16718
16719 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
16720
16721         * gcc.c (execute): For -### don't quote arguments that
16722         contain just alphanumerics and _/-. characters.
16723         * doc/invoke.texi: Document that change for -###.
16724
16725         PR debug/44023
16726         * df-problems.c (struct dead_debug): Add to_rescan field.
16727         (dead_debug_init): Clear to_rescan field.
16728         (dead_debug_finish): Rescan all debug insns in to_rescan
16729         bitmap and free the bitmap.
16730         (dead_debug_insert_before): Instead of rescanning debug insns
16731         immediately queue their rescanning until dead_debug_finish.
16732         (df_note_bb_compute): After dead_debug_add do continue instead
16733         of break.
16734
16735 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
16736
16737         PR debug/44028
16738         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
16739         clear also INSN_REG_USE_LIST.
16740
16741 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16742
16743         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
16744
16745 2010-05-10  Jan Hubicka  <jh@suse.cz>
16746
16747         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
16748         commited change.
16749
16750 2010-05-10  Jan Hubicka  <jh@suse.cz>
16751
16752         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
16753         Allocate encoders.
16754         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
16755         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
16756         (lto_streamer_cache_create): Init alloc pool.
16757         (lto_streamer_cache_delete): Free alloc pool.
16758         * lto-streamer.h: Include alloc pool.
16759         (lto_streamer_cache_d): Use alloc pool.
16760         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
16761
16762 2010-05-10  Jan Hubicka  <jh@suse.cz>
16763
16764         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
16765         * cgraphbuild.c: Include except.h
16766         (record_type_list, record_eh_tables): New function.
16767         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
16768
16769 2010-05-10  Jan Hubicka  <jh@suse.cz>
16770
16771         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
16772         __frame_dummy_init_array_entry, force_to_data): Attribute as used
16773         rather than unused.
16774
16775 2010-05-10  Michael Matz  <matz@suse.de>
16776
16777         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
16778         (can_reassociate_p): Use FLOAT_TYPE_P.
16779         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
16780         (vect_force_simple_reduction): ... this.
16781         * tree-parloops.c (gather_scalar_reductions): Use
16782         vect_force_simple_reduction.
16783         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
16784         vect_is_simple_reduction, add modify argument, if true rewrite
16785         "a-b" into "a+(-b)".
16786         (vect_is_simple_reduction, vect_force_simple_reduction): New
16787         functions.
16788         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
16789
16790 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
16791             Vladimir Makarov  <vmakarov@redhat.com>
16792
16793         PR rtl-optimization/44012
16794         * ira-build.c (remove_unnecessary_allocnos): Nullify
16795         regno_allocno_map of the removed allocno.
16796
16797 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16798
16799         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
16800         to /dev/null.
16801         * configure: Regenerate.
16802
16803 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16804
16805         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
16806         unused.
16807         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
16808         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
16809         support in Sun ld.
16810         * configure: Regenerate.
16811
16812 2010-05-10  Richard Guenther  <rguenther@suse.de>
16813
16814         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
16815         marked if the entry identifier is marked.
16816
16817 2010-05-10  Richard Guenther  <rguenther@suse.de>
16818
16819         * c-common.c (struct c_common_attributes): Add fnspec attribute.
16820         (handle_fnspec_attribute): New function.
16821         * gimple.h (gimple_call_return_flags): Declare.
16822         (gimple_call_arg_flags): Likewise.
16823         * gimple.c (gimple_call_arg_flags): New function.
16824         (gimple_call_return_flags): Likewise.
16825         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
16826         New argument flags.
16827         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
16828         return value flags.
16829         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
16830         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
16831         main work to ...
16832         (make_heapvar_for): ... this new function.
16833         (handle_rhs_call): Handle fnspec attribute argument specifiers.
16834         (handle_lhs_call): Likewise.
16835         (find_func_aliases): Adjust.
16836
16837 2010-05-10  Richard Guenther  <rguenther@suse.de>
16838
16839         PR tree-optimization/44050
16840         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
16841
16842 2010-05-10  Wei Guozhi  <carrot@google.com>
16843
16844         PR target/42879
16845         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
16846
16847 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
16848
16849         PR c/10676
16850         * c-typeck.c (lookup_field): Take a type directly.  Update
16851         recursive calls.
16852         (build_component_ref): Update call to lookup_field.
16853         (set_init_label): Use lookup_field to find initialized field.
16854         Handle returned list of fields like a sequence of designators.
16855
16856 2010-05-09  Richard Guenther  <rguenther@suse.de>
16857
16858         PR middle-end/44024
16859         * fold-const.c (tree_single_nonzero_warnv_p): Properly
16860         handle &FUNCTION_DECL.
16861
16862 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
16863
16864         PR c/4784
16865         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
16866         structures and unions recursively.
16867         (detect_field_duplicates): Move duplicate detection with a hash to
16868         detect_field_duplicates_hash.  Always use a hash if anonymous
16869         structures or unions are present.
16870         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
16871         give errors.
16872
16873 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
16874
16875         PR target/44046
16876         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
16877         detect Atom, Core 2 and Core i7.
16878
16879 2010-05-09  Richard Guenther  <rguenther@suse.de>
16880
16881         * gcc.c (store_arg): Handle temporary file deletion for
16882         joined arguments.
16883
16884 2010-05-09  Richard Guenther  <rguenther@suse.de>
16885
16886         PR middle-end/44043
16887         * ipa-inline.c (estimate_function_body_sizes): Return after
16888         disregarding inline limits.
16889
16890 2010-05-09  Richard Guenther  <rguenther@suse.de>
16891
16892         * gcc.c (store_arg): Revert last change.
16893
16894 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
16895
16896         PR middle-end/28685
16897         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
16898         (optimize_ops_list): Call it.
16899
16900 2010-05-08  Richard Guenther  <rguenther@suse.de>
16901
16902         PR tree-optimization/44030
16903         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
16904         NECESSARY flag if we propagate from a inserted expression.
16905
16906 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
16907
16908         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
16909         domain types as equal if they are both PLACEHOLDER_EXPRs.
16910
16911 2010-05-08  Richard Guenther  <rguenther@suse.de>
16912
16913         * lto-wrapper.c (run_gcc): Remove linker output from
16914         command line for LTRANS invocation.
16915
16916 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
16917
16918         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
16919         lto-macho as lto_binary_reader.
16920         * target.h (struct gcc_target): New hooks lto_start and lto_end.
16921         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
16922         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
16923         in lto_start and lto_end calls.
16924         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
16925         magic numbers.
16926         (scan_prog_file): Update is_elf_or_coff call.
16927         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
16928
16929         * collect2.c (main): Fix enum comparison.
16930
16931         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
16932         Add prototypes.
16933         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
16934         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
16935         and TARGET_ASM_LTO_END.
16936         * darwin.c: Include obstack.h and lto-streamer.h.
16937         (lto_section_names_offset, lto_section_names_obstack,
16938         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
16939         global variables.
16940         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
16941         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
16942         to a temporary file.
16943         (darwin_asm_lto_end): New function.  Restore asm_out_file.
16944         (darwin_asm_named_section): For LTO sections, replace the name with
16945         the offset of the section name in a string table, and build this
16946         table.
16947         (darwin_file_start): Initialize global vars for LTO support.
16948         (darwin_file_end): If output to asm_out_file was redirected, append it
16949         to the proper asm_out_file here.  Add the section names section.
16950
16951 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
16952
16953         * c-pragma.c (pending_weak_d, pending_weak): New.
16954         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
16955         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
16956         handle_pragma_weak): Update the uses of pending_weaks.
16957
16958 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16959
16960         PR documentation/44016
16961         * doc/standards.texi (Standards): Link to unversioned
16962         cxx0x_status.html page.
16963
16964 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
16965
16966         PR target/43708
16967         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
16968         in addition to TREE_USED, to avoid "set but unused" warnings.
16969
16970 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
16971
16972         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
16973         (is_loop_prefetching_profitable): Do not insert prefetches
16974         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
16975         times the prefetch ahead distance.
16976
16977 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
16978
16979         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
16980         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
16981         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
16982         the unroll_factor.
16983
16984 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
16985
16986         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
16987         a diagnostic info when the insn-to-mem ratio is too small.
16988
16989 2010-05-07  Richard Guenther  <rguenther@suse.de>
16990
16991         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
16992         the linker plugin.
16993         (store_arg): Queue temp_filename for deletion instead of
16994         the whole argument.
16995
16996 2010-05-07  Richard Guenther  <rguenther@suse.de>
16997
16998         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
16999         (run_gcc): Handle LTRANS phase invocation.
17000         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
17001
17002 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
17003
17004         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
17005         this is also meaningful on PARM_DECLs and RESULT_DECLs.
17006
17007 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17008
17009         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
17010
17011 2010-05-07  Richard Guenther  <rguenther@suse.de>
17012
17013         PR tree-optimization/44020
17014         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
17015         code when PRE is not yet initialized.
17016
17017 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17018
17019         * config/mips/dbxmdebug.h: Remove.
17020         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
17021
17022 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
17023
17024         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
17025         with null pointer and also warn about ordered comparison of zero with
17026         pointer if -Wextra.
17027
17028 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17029
17030         * graphite-blocking.c
17031         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
17032         * graphite-clast-to-gimple.c
17033         (clast_to_gcc_expression): Same.
17034         (precision_for_value): Same.
17035         (precision_for_interval): Same.
17036         (gcc_type_for_interval): Same.
17037         (graphite_create_new_guard): Same.
17038         (compute_bounds_for_level): Same.
17039         (graphite_create_new_loop_guard): Same.
17040         * graphite-interchange.c
17041         (build_linearized_memory_access): Same.
17042         (pdr_stride_in_loop): Same.
17043         (memory_strides_in_loop_1): Same.
17044         (memory_strides_in_loop): Same.
17045         (extend_scattering): Same.
17046         (psct_scattering_dim_for_loop_depth): Same.
17047         (pbb_number_of_iterations): Same.
17048         * graphite-poly.h
17049         (debug_iteration_domains): Same.
17050         * graphite-ppl.c
17051         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17052         (ppl_set_inhomogeneous_gmp): Same.
17053         (ppl_strip_loop): Same.
17054         (ppl_lexico_compare_linear_expressions): Same.
17055         (ppl_read_polyhedron_matrix): Same.
17056         (ppl_max_for_le_pointset): Same.
17057         * graphite-ppl.h
17058         (ppl_read_polyhedron_matrix): Same.
17059         (tree_int_to_gmp): Same.
17060         (gmp_cst_to_tree): Same.
17061         (ppl_set_inhomogeneous): Same.
17062         (ppl_set_inhomogeneous_tree): Same.
17063         (ppl_set_coef): Same.
17064         (ppl_set_coef_tree): Same.
17065         * graphite-sese-to-poly.c
17066         (build_pbb_scattering_polyhedrons): Same.
17067         (build_scop_scattering): Same.
17068         (scan_tree_for_params_right_scev): Same.
17069         (scan_tree_for_params): Same.
17070         (find_params_in_bb): Same.
17071         (find_scop_parameters): Same.
17072         (add_upper_bounds_from_estimated_nit): Same.
17073         (build_loop_iteration_domains): Same.
17074         (add_condition_to_domain): Same.
17075         (pdr_add_memory_accesses): Same.
17076
17077 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17078
17079         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
17080         CLooG's value_* macros to their respective mpz_* counterparts.
17081         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
17082         (graphite_create_new_loop_guard): Same.
17083         * graphite-interchange.c (build_linearized_memory_access): Same.
17084         (pdr_stride_in_loop): Same.
17085         (memory_strides_in_loop_1): Same.
17086         (1st_interchange_profitable_p): Same.
17087         * graphite-poly.c (extend_scattering): Same.
17088         (psct_scattering_dim_for_loop_depth): Same.
17089         (pbb_number_of_iterations): Same.
17090         (pbb_number_of_iterations_at_time): Same.
17091         * graphite-poly.h (new_1st_loop): Same.
17092         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
17093         (oppose_constraint): Same.
17094         (insert_constraint_into_matrix): Same.
17095         (ppl_set_inhomogeneous_gmp): Same.
17096         (ppl_set_coef_gmp): Same.
17097         (ppl_strip_loop): Same.
17098         (ppl_lexico_compare_linear_expressions): Same.
17099         (ppl_max_for_le_pointset): Same.
17100         (ppl_min_for_le_pointset): Same.
17101         (ppl_build_realtion): Same.
17102         * graphite-ppl.h (gmp_cst_to_tree): Same.
17103         (ppl_set_inhomogeneous): Same.
17104         (ppl_set_inhomogeneous_tree): Same.
17105         (ppl_set_coef): Same.
17106         (ppl_set_coef_tree): Same.
17107         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
17108         (build_scop_scattering): Same.
17109         (add_value_to_dim): Same.
17110         (scan_tree_for_params_right_scev): Same.
17111         (scan_tree_for_params_int): Same.
17112         (scan_tree_for_params): Same.
17113         (find_params_in_bb): Same.
17114         (find_scop_parameters): Same.
17115         (add_upper_bounds_from_estimated_nit): Same.
17116         (build_loop_iteration_domains): Same.
17117         (create_linear_expr_from_tree): Same.
17118         (add_condition_to_domain): Same.
17119         (pdr_add_memory_accesses): Same.
17120
17121 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
17122             Jason Merrill  <jason@redhat.com>
17123
17124         * c-common.c (c_common_reswords): Add nullptr.
17125         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
17126         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
17127         (gen_type_die_with_usage): Likewise.
17128         * dbxout.c (dbxout_type): Likewise.
17129         * sdbout.c (plain_type_1): Likewise.
17130
17131 2010-05-06  Jason Merrill  <jason@redhat.com>
17132
17133         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
17134         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
17135         ret appropriately.
17136         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
17137
17138         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
17139         stripping WITH_SIZE_EXPR.
17140         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
17141         change.
17142
17143 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17144
17145         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
17146         list of obsolete configurations.
17147         Disabled check for obsolete configurations.
17148         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
17149         Removed support for previous versions.
17150         * config/mips/iris.h: Removed.
17151         * config/mips/iris5.h: Removed.
17152         * config/mips/iris6.h: Merged old iris.h contents.
17153         (TARGET_IRIX): Removed.
17154         (DRIVER_SELF_SPECS): Removed mabi=32.
17155         (IDENT_ASM_OP): Removed undef.
17156         (STARTFILE_SPEC): Removed mabi=32.
17157         (ENDFILE_SPEC): Likewise.
17158         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
17159         (MACHINE_TYPE): Update for IRIX 6.5.
17160         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
17161         TARGET_IRIX by TARGET_IRIX6.
17162         (mips_file_start): Likewise.
17163         (mips_output_external): Remove IRIX 5/6 O32 support.
17164         (mips_output_function_prologue): Likewise.
17165         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
17166         TARGET_IRIX6.
17167         (TARGET_CPU_CPP_BUILTINS): Likewise.
17168         (TARGET_IRIX): Removed.
17169         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
17170         (MULTILIB_DIRNAMES): Removed 32.
17171         (MULTILIB_OSDIRNAMES): Removed ../lib.
17172         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
17173         (Specific, mips-sgi-irix5): Document removal.
17174         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
17175         Remove references to older IRIX 6 releases and the O32 ABI.
17176
17177 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
17178
17179         PR bootstrap/43994
17180         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
17181         instead of DF_REF_REAL_REG.
17182
17183 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
17184
17185         PR target/43888
17186         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
17187         handling to still return true for x64 targets.
17188
17189 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
17190
17191         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
17192
17193 2010-05-06  Jan Hubicka  <jh@suse.cz>
17194
17195         PR tree-optimization/43791
17196         * ipa-inline.c (update_caller_keys): Remove bogus
17197         disregard_inline_limits check.
17198
17199 2010-05-06  Michael Matz  <matz@suse.de>
17200
17201         PR tree-optimization/43984
17202         * tree-ssa-pre.c (inserted_phi_names): Remove.
17203         (inserted_exprs): Change to bitmap.
17204         (create_expression_by_pieces): Set bits, don't append to vector.
17205         (insert_into_preds_of_block): Don't handle inserted_phi_names.
17206         (eliminate): Don't look at inserted_phi_names, remove deleted
17207         insns from inserted_exprs.
17208         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
17209         (init_pre, fini_pre): Allocate and free bitmaps.
17210         (execute_pre): Insert insns on edges before elimination.
17211
17212 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
17213
17214         * tree.c (initializer_zerop): Handle STRING_CST.
17215
17216 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17217
17218         PR 40989
17219         * doc/invoke.texi (Wimplicit): Document as C only.
17220         * opts.c (common_handle_option): Add argument kind.
17221         (handle_option): Rename as read_cmdline_option. Factor out code to...
17222         (handle_option): ... here. New.
17223         (handle_options): Rename as read_cmdline_options.
17224         (decode_options): Update call.
17225         (set_option): Use option index instead of option pointer. Classify
17226         diagnostics correctly.
17227         (enable_warning_as_error): Call handle_option.
17228         * opts.h (set_option): Update declaration.
17229         (handle_option): Declare.
17230         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
17231         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
17232         * c-opts.c (set_Wimplicit): Delete.
17233         (c_family_lang_mask): New static constant.
17234         (c_common_handle_option): Add argument kind. Use handle_option
17235         instead of set_Wimplicit.
17236         (c_common_post_options): warn_implicit and warn_implicit_int
17237         are disabled by default.
17238         * c-common.c (warn_implicit): Do not define here.
17239         * c-common.h (warn_implicit): Do not declare here.
17240         (c_common_handle_option): Update declaration.
17241         * lto-opts.c (lto_reissue_options): Update call to set_option.
17242
17243 2010-05-06  Richard Guenther  <rguenther@suse.de>
17244
17245         PR tree-optimization/43571
17246         * domwalk.c (walk_dominator_tree): Walk the dominator
17247         sons in more optimal order.
17248
17249 2010-05-06  Richard Guenther  <rguenther@suse.de>
17250
17251         PR tree-optimization/43934
17252         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
17253         (stmt_cost): Likewise.
17254         (extract_true_false_args_from_phi): New helper.
17255         (determine_max_movement): For PHI nodes verify we can hoist them
17256         and compute their cost.
17257         (determine_invariantness_stmt): Handle PHI nodes.
17258         (move_computations_stmt): Likewise.  Hoist PHI nodes in
17259         if-converted form using COND_EXPRs.
17260         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
17261         (tree_ssa_lim): Likewise.
17262         * tree-flow.h (tree_ssa_lim): Adjust prototype.
17263         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
17264
17265 2010-05-06  Richard Guenther  <rguenther@suse.de>
17266
17267         PR tree-optimization/43987
17268         * tree-ssa-structalias.c (could_have_pointers): For possibly
17269         address-taken variables force pointers to be recorded.
17270         (create_variable_info_for_1): Likewise.
17271         (push_fields_onto_fieldstack): Pass in wheter all fields
17272         must have pointers.
17273         (find_func_aliases): Query types instead of vars whether
17274         they contain pointers where appropriate.
17275
17276 2010-05-06  Jan Hubicka  <jh@suse.cz>
17277
17278         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
17279         (record_reference, mark_address, mark_load, mark_store): Record
17280         references.
17281         (record_references_in_initializer): Update call of record_references.
17282         (rebuild_cgraph_edges): Remove all references before rebuiding.
17283         * cgraph.c (cgraph_create_node): Clear ref list.
17284         (cgraph_remove_node): Remove references.
17285         (dump_cgraph_node): Dump references.
17286         (cgraph_clone_node): Clone references.
17287         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
17288         (struct cgraph_node, varpool_node): Add ref_lst.
17289         * ipa-ref.c: New file.
17290         * ipa-ref.h: New file.
17291         * ipa-ref-inline.h: New file.
17292         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
17293         (referenced_from_other_partition_p): New function.
17294         (lto_output_varpool_node): Take set arugment; call
17295         referenced_from_other_partition.
17296         (lto_output_ref): New.
17297         (add_references): New.
17298         (output_refs): New.
17299         (output_cgraph): Compute boundary based on references; output refs.
17300         (output_varpool): Accept cgraph_node_set argument.
17301         (input_ref): New.
17302         (input_refs): New.
17303         (input_cgraph): Call input_refs.
17304         * lto-section-in.c (lto_section_name): Add refs.
17305         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
17306         (ipa-ref.o): New file.
17307         * varpool.c (varpool_node): Clear ipa ref list.
17308         (varpool_remove_node): Remove references.
17309         (dump_varpool_node): Dump references.
17310         (varpool_assemble_decl): Only compile finalized ones.
17311         (varpool_extra_name_alias): Initialize ref list.
17312         * lto-streamer.c (lto-get_section_name): Add .refs section.
17313         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
17314         (referenced_from_other_partition_p): Declared.
17315
17316 2010-05-06  Ira Rosen  <irar@il.ibm.com>
17317
17318         PR tree-optimization/43901
17319         * tree-vect-stmts.c (vectorizable_call): Assert that vector
17320         type is not NULL if it's transformation phase, and return
17321         FALSE if it's analysis.
17322         (vectorizable_conversion, vectorizable_operation,
17323         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
17324
17325 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
17326
17327         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
17328         Delete.
17329         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
17330         New define.
17331         * config/mips/mips-protos.h
17332         (mips_small_register_classes_for_mode_p): Delete prototype.
17333
17334 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
17335
17336         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
17337         * config/arm/arm.c (multiple_operation_profitable_p,
17338         compute_offset_order): New static functions.
17339         (load_multiple_sequence, store_multiple_sequence): Use them.
17340         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
17341         memory offsets, not register numbers.
17342         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
17343
17344 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
17345
17346         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
17347         (get_pending_sizes, put_pending_size, put_pending_sizes):
17348         Update the uses of pending_sizes.
17349         * c-decl.c (store_parm_decls): Likewise.
17350         * c-tree.h (struct c_arg_info): Likewise.
17351         * tree.h: Update the prototype for get_pending_sizes and
17352         put_pending_sizes.
17353
17354 2010-05-05  Jason Merrill  <jason@redhat.com>
17355
17356         PR debug/43370
17357         * c-common.c (handle_aligned_attribute): Respect
17358         ATTR_FLAG_TYPE_IN_PLACE.
17359
17360         PR testsuite/43758
17361         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
17362         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
17363         (TARGET_INITIALIZER): Use it.
17364         * c-common.c (attribute_takes_identifier_p): Call it.
17365         * c-common.h: Update prototype.
17366         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
17367         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
17368
17369 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
17370
17371         PR debug/43950
17372         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
17373         DW_ID_down_case for Fortran compilation units.
17374
17375 2010-05-05  Jan Hubicka  <jh@suse.cz>
17376
17377         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
17378         handle aliases.
17379
17380 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
17381
17382         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
17383         a variable-sized RESULT_DECL.
17384
17385 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
17386
17387         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
17388
17389 2010-05-05  Jason Merrill  <jason@redhat.com>
17390
17391         PR c++/43787
17392         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
17393         returns GS_OK.
17394         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
17395
17396 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
17397             Jakub Jelinek  <jakub@redhat.com>
17398
17399         PR debug/43478
17400         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
17401         (dead_debug_init, dead_debug_finish): New functions.
17402         (dead_debug_add, dead_debug_insert_before): Likewise.
17403         (df_note_bb_compute): Initialize a dead_debug object, add dead
17404         debug uses to it, insert debug bind insns before death insns,
17405         reset debug insns that refer to pending uses at the end.
17406         * rtl.h (make_debug_expr_from_rtl): New prototype.
17407         * varasm.c (make_debug_expr_from_rtl): New function.
17408
17409 2010-05-05  Jan Hubicka  <jh@suse.cz>
17410
17411         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
17412         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
17413         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
17414         lto_varpool_encoder_deref, lto_varpool_encoder_size,
17415         lto_varpool_encoder_encode_initializer_p,
17416         lto_set_varpool_encoder_encode_initializer): New functions.
17417         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
17418         call output_varpool.
17419         (input_varpool_node): Do not always set analyzed.
17420         (input_cgraph_1): Return vector of cgraph nodes.
17421         (input_varpool_1): Return vector of varpools.
17422         (input_cgraph): Free the vectors.
17423         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
17424         output only initializers needed.
17425         (lto_output): Only call output_cgraph.
17426         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
17427         * lto-section-out.c (lto_new_out_decl_state): Initialize
17428         state->varpool_node_encoder.
17429         * lto-streamer.h (lto_varpool_encoder_d): New.
17430         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
17431         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
17432         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
17433         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
17434         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
17435         Declare.
17436         (output_varpool, input_varpool): Remove declarations.
17437
17438 2010-05-05  Jan Hubicka  <jh@suse.cz>
17439
17440         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
17441         with body can prevail.
17442
17443 2010-05-05  Jan Hubicka  <jh@suse.cz>
17444
17445         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
17446         size.
17447
17448 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
17449
17450         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
17451
17452         * gengtype.h (erro_at_line): Constify pos argument.
17453
17454         * gengtype.c: Include hashtab.h.
17455         (enum gc_used): Document GC_MAYBE_POINTED_TO.
17456         (error_at_line): Constify pos argument.
17457         (do_typedef): Initialize p->opt field.
17458         (get_file_gtfilename): Fix comment typo.
17459         (struct walk_type_data): Constify line field.
17460         (get_output_file_for_structure): New function.
17461         (write_local_func_for_structure): Constify orig_s argument.
17462         Use get_output_file_for_structure.
17463         (write_func_for_structure): Use get_output_file_for_structure.
17464         (INDENT): New define.
17465         (dump_pair, dump_type, dump_type_list, dump_typekind)
17466         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
17467         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
17468         functions.
17469         (seen_types): New variable.
17470         (main): New variable do_dump.  Process "-d" command line option.
17471         Call dump_everything if dump requested.
17472
17473 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
17474
17475         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
17476         in a temporary instead of invoking the macro multiple times.
17477         (track_expr_p): Likewise.
17478
17479 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
17480
17481         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
17482         per new semantics.
17483         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
17484         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
17485         conditions for printing notes.
17486         * common.opt (-Wcoverage-mismatch): Allow negative, default to
17487         true, update documentation.
17488         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
17489
17490 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
17491
17492         PR c/43981
17493         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
17494         on dimen.
17495
17496 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
17497
17498         PR target/43799
17499         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
17500         (*sse_prologue_save_insn1): Likewise.
17501         (SSE prologue save splitter): Likewise.
17502
17503 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
17504
17505         * tree.c (free_lang_data_in_one_sizepos): New inline function.
17506         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
17507         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
17508         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
17509         all decls.  Call it on DECL_FIELD_OFFSET of fields.
17510         (find_decls_types_r): Follow DECL_VALUE_EXPR.
17511         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
17512
17513 2010-05-04  Martin Jambor  <mjambor@suse.cz>
17514
17515         * tree-sra.c (build_access_from_expr_1): The first parameter type
17516         changed to simple tree.
17517         (build_access_from_expr): Likewise, gsi parameter was eliminated.
17518         (scan_assign_result): Renamed to assignment_mod_result, enum elements
17519         renamed as well.
17520         (build_accesses_from_assign): Removed all parameters except for a
17521         simple gimple statement.  Now returns a simple bool.
17522         (scan_function): All non-analysis parts moved to separate functions
17523         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
17524         parameters and updated both callers.
17525         (sra_modify_expr): Removed parameter data.
17526         (sra_modify_function_body): New function.
17527         (perform_intra_sra): Call sra_modify_function_body to modify the
17528         function body.
17529         (replace_removed_params_ssa_names): Parameter data changed into
17530         adjustments vector.
17531         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
17532         changed the parameter dont_convert to convert with the opposite
17533         meaning.
17534         (sra_ipa_modify_assign): Parameter data changed into adjustments
17535         vector, return value changed to bool.
17536         (ipa_sra_modify_function_body): New function.
17537         (sra_ipa_reset_debug_stmts): Updated a comment.
17538         (modify_function): Use ipa_sra_modify_function_body to modify function
17539         body.
17540
17541 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
17542
17543         PR middle-end/43671
17544         * alias.c (true_dependence): Handle the same VALUE in x and mem.
17545         (canon_true_dependence): Likewise.
17546         (write_dependence_p): Likewise.
17547
17548 2010-05-04  Jan Hubicka  <jh@suse.cz>
17549
17550         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
17551         * cgraphbuild.c: Include ipa-utils.h
17552         (record_reference_ctx): New struct.
17553         (record_reference): Simplify to work on initializers; not statements.
17554         (mark_address, mark_load, mark_store): New.
17555         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
17556         walk PHI nodes too.
17557         (record_references_in_initializer): Update use of record_reference.
17558         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
17559         walk PHI nodes too.
17560
17561 2010-05-04  Jan Hubicka  <jh@suse.cz>
17562
17563         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
17564         node will be removed anyway.
17565         (lto_varpool_replace_node): Allow also unanalyzed nodes;
17566         relink aliases of node into prevailing node.
17567         * varpool.c (varpool_remove_node): Remove aliases properly;
17568         when removing node, remove all its aliases too; remove DECL_INITIAL
17569         of removed node; ggc_free the varpool node.
17570
17571 2010-05-04  Richard Guenther  <rguenther@suse.de>
17572
17573         PR tree-optimization/43879
17574         * tree-ssa-structalias.c (alias_get_name): Use
17575         DECL_ASSEMBLER_NAME if available.
17576         (create_function_info_for): Return the varinfo node.
17577         (ipa_pta_execute): Associate same-body aliases and extra names
17578         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
17579
17580 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
17581
17582         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
17583
17584 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
17585
17586         PR bootstrap/43964
17587         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
17588         only if HONOR_REG_ALLOC_ORDER is not defined.
17589
17590 2010-05-04  Richard Guenther  <rguenther@suse.de>
17591
17592         PR tree-optimization/43949
17593         * tree-vrp.c (extract_range_from_binary_expr): Only handle
17594         TRUNC_MOD_EXPR.
17595
17596 2010-04-26  Jason Merrill  <jason@redhat.com>
17597
17598         * c.opt (-fstrict-enums): New.
17599         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
17600
17601 2010-05-03  David Ung  <davidu@mips.com>
17602             James E. Wilson  <wilson@codesourcery.com>
17603
17604         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
17605         emit the trap instruction before the divide for TUNE_74K.
17606
17607 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
17608
17609         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
17610         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
17611         based on the above, for new target hook.
17612
17613         * hooks.c (hook_bool_mode_true): New generic hook.
17614         * hooks.h (hook_bool_mode_true): Add prototype.
17615
17616         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
17617         target hook.
17618         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
17619         target hook, set to hook_bool_mode_false.
17620         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
17621         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
17622         with targetm.small_register_classes_for_mode_p.
17623         (find_reusable_reload): Likewise.
17624         (combine_reloads): Likewise.
17625         * reload1.c (reload_as_needed): Likewise.
17626         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
17627         * ifcvt.c (noce_process_if_block, check_cond_move_block,
17628         dead_or_predicable): Likewise.
17629         * regmove.c (optimize_reg_copy_1): Likewise.
17630         * calls.c (prepare_call_address): Likewise.
17631         (precompute_register_parameters): Likewise.
17632
17633         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
17634         hook definition.
17635         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
17636         implementation of the hook that considers all register classes
17637         small except for SH64.
17638         (sh_override_options): Use the new hook.
17639         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
17640         Add prototype.
17641
17642         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
17643         hook definition.
17644         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
17645         implementation of the hook that considers all register classes
17646         small for THUMB1.
17647         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
17648         Add prototype.
17649
17650         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
17651         hook definition.
17652         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
17653         implementation of the hook that considers all register classes
17654         small for MIPS16.
17655         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
17656         Add prototype.
17657
17658         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
17659         hook definition.
17660         * config/m32c/m32c.h: Likewise.
17661         * config/pdp11/pdp11.h: Likewise.
17662         * config/avr/avr.h: Likewise.
17663         * config/xtensa/xtensa.h: Likewise.
17664         * config/m68hc11/m68hc11.h: Likewise.
17665         * config/mn10300/mn10300.h: Likewise.
17666         * config/mcore/mcore.h: Likewise.
17667         * config/h8300/h8300.h: Likewise.
17668         * config/bfin/bfin.h: Likewise.
17669
17670         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
17671         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
17672
17673 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
17674
17675         * double-int.h (tree_to_double_int): Remove macro.
17676         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
17677         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
17678         (tree_to_double_int): New function.
17679         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
17680         Move ...
17681         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
17682
17683 2010-05-03  Richard Guenther  <rguenther@suse.de>
17684
17685         PR tree-optimization/43971
17686         * tree-ssa-structalias.c (get_constraint_for_1): Fix
17687         constraints in the !flag_delete_null_pointer_checks case.
17688
17689 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
17690
17691         PR debug/43972
17692         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
17693         result mode matches original rtl mode.
17694
17695 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
17696
17697         PR target/43888
17698         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
17699
17700 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
17701
17702         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
17703         when processing flag options.
17704
17705 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
17706
17707         * gcov-iov.c (main): Change format string placeholder
17708         from %#08x to 0x%08x.
17709         * genchecksum.c (dosum): Change format string placeholder
17710         from %#02x to 0x%02x.
17711
17712 2010-05-02  Richard Guenther  <rguenther@suse.de>
17713
17714         PR tree-optimization/43879
17715         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
17716
17717 2010-05-02  Bruno Haible  <bruno@clisp.org>
17718
17719         * doc/extend.texi (Function Attributes): Fix a typo.
17720
17721 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
17722
17723         Revert:
17724         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
17725         placeholder from 0x%x to %#x.
17726         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
17727         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
17728         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
17729         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
17730         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
17731         * config/i386/i386.c (ix86_target_string): Ditto.
17732         * config/i386/i386.c (output_pic_addr_const): Ditto.
17733         (print_operand): Ditto.
17734
17735 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
17736
17737         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
17738         placeholder from 0x%x to %#x.
17739         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
17740         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
17741         (ASM_OUTPUT_DEBUG_DATA): Ditto.
17742         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
17743         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
17744         * optc-gen.awk: Ditto.
17745         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
17746         (HOST_WIDE_INT_PRINT_HEX): Ditto.
17747         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
17748         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
17749
17750 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
17751
17752         * target.h (struct calls): Add function_value_regno_p field.
17753         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
17754         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
17755         * targhooks.c (default_function_value_regno_p): New function.
17756         * targhooks.h (default_function_value_regno_p): Declare function.
17757         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
17758         * builtins.c. (apply_result_size): (Ditto.).
17759         * combine.c. (likely_spilled_retval_p): (Ditto.).
17760         * mode-switching.c. Include 'target.h'.
17761         (create_pre_exit): Use function_value_regno_p hook.
17762         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
17763         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
17764         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
17765
17766         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
17767         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
17768         (ix86_function_value_regno_p): Declare as static, change argument
17769         type to const unsigned int.
17770         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
17771
17772 2010-05-01  Richard Guenther  <rguenther@suse.de>
17773
17774         PR tree-optimization/43949
17775         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
17776         types.
17777         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
17778
17779 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
17780
17781         * rtl.h (CONST_DOUBLE_P): Define.
17782         (rtx_to_double_int): Declare.
17783         * emit-rtl.c (rtx_to_double_int): New function.
17784         * dwarf2out.c (insert_double): New function.
17785         (loc_descriptor, add_const_value_attribute): Clean up, use
17786         rtx_to_double_int and insert_double functions.
17787
17788 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
17789
17790         * doc/extend.texi (Inline): Add missing return keyword to examples.
17791         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
17792         "command-line".
17793
17794 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
17795
17796         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
17797         the variable part of the offset as well.  Use highest_pow2_factor for
17798         all alignment checks.
17799
17800 2010-04-30  Richard Guenther  <rguenther@suse.de>
17801
17802         PR tree-optimization/43879
17803         * tree-ssa-structalias.c (type_could_have_pointers): Functions
17804         can have pointers.
17805
17806 2010-04-30  Jan Hubicka  <jh@suse.cz>
17807
17808         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
17809         varpool.
17810         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
17811
17812 2010-04-30  Jan Hubicka  <jh@suse.cz>
17813
17814         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
17815         New.
17816         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
17817         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
17818         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
17819         cgraph_node_set_needs_ltrans_p): Remove.
17820
17821 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
17822
17823         * sdbout.c: Include vec.h, do not include varray.h.
17824         (deferred_global_decls, sdbout_global_decl,
17825         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
17826         * toplev.c: Do not include varray.h.
17827         (dump_memory_report): Do not dump VARRAY statistics.
17828         * gengtype.c (open_base_file): Ignore varray.h.
17829         * Makefile.in: Update for abovementioned changes.
17830         Remove all traces of varray.c and varray.h.
17831         * varray.c: Remove file.
17832         * varray.h: Remove file.
17833
17834 2010-04-30  Jan Hubicka  <jh@suse.cz>
17835
17836         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
17837         references.
17838
17839 2010-04-30  Jan Hubicka  <jh@suse.cz>
17840
17841         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
17842         needed.
17843
17844 2010-04-30  Richard Guenther  <rguenther@suse.de>
17845
17846         * tree-ssa-structalias.c (get_constraint_for_1): Generate
17847         constraints for CONSTRUCTOR.
17848
17849 2010-04-30  Richard Guenther  <rguenther@suse.de>
17850
17851         PR lto/43946
17852         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
17853         first after all lowering passes.
17854
17855 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
17856
17857         * toplev.c: Include varray.h for statistics dumping.
17858         * tree.h: Do not declare varray_head_tag.
17859         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
17860         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
17861         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
17862         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
17863         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
17864         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
17865         c-common.c, c-common.h, reg-stack.c, basic-block.h,
17866         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
17867         include varray.h.
17868         * Makefile.in: Update for abovementioned changes.
17869
17870 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
17871
17872         PR debug/43942
17873         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
17874
17875 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
17876
17877         * config/picochip/picochip.c (picochip_legitimize_address): Define.
17878         Use this function to do machine-specific conversion.
17879         (picochip_legitimize_reload_address): Likewise.
17880         (picochip_legitimate_address_p): Check valid base register only if
17881         strict.
17882         (picochip_check_conditional_copy): Check for modw only if opnd is
17883         register.
17884         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
17885         to call the function in c.
17886         * config/picochip/picochip-protos.h
17887         (picochip_legitimize_reload_address): Define.
17888         * config/picochip/picochip.md (supported_compare1): Define.
17889
17890 2010-04-30  Jan Hubicka  <jh@suse.cz>
17891
17892         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
17893         (cgraph_global_info): Remove inlined.
17894         (LTO_cgraph_tag_names): Remove.
17895         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
17896         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
17897         simplify cgraph tags and document.
17898         (lto_output_node): Use only LTO_cgraph_unavail_node and
17899         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
17900         for_functions_valid, global info, process and output flags.
17901         (input_overwrite_node): Initialize estimated stack size and
17902         estimated growth.  Do not read flags we no longer store.
17903         (input_node): Likewise do not read info no longer stored.
17904         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
17905         flag.
17906
17907 2010-04-30  Richard Guenther  <rguenther@suse.de>
17908
17909         PR tree-optimization/43879
17910         * tree-ssa-structalias.c (get_constraint_for_1): Properly
17911         handle non-zero initializers.
17912
17913 2010-04-30  Richard Guenther  <rguenther@suse.de>
17914
17915         * builtins.c (fold_builtin_1): Delete free (0).
17916
17917 2010-04-29  Jan Hubicka  <jh@suse.cz>
17918
17919         * gengtype.c (open_base_files): Add lto-streamer.h
17920         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
17921         (pass_ipa_cp): GGC collect.
17922         * toplev. (compile_file): Do not output symbols.
17923         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
17924         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
17925         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
17926         * lto-section-in.c: Include ggc.h
17927         (lto_new_in_decl_state): Alloc in GGC.
17928         (lto_delete_in_decl_state): Likewise.
17929         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
17930         Collect.
17931
17932 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
17933
17934         PR target/42895
17935         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
17936         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
17937         (HONOR_REG_ALLOC_ORDER): Describe new macro.
17938         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
17939         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
17940         account only if HONOR_REG_ALLOC_ORDER is not defined.
17941         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
17942         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
17943
17944 2010-04-29  Jon Grant  <04@jguk.org>
17945
17946         * collect2.c (vflag): Change type from int to bool.
17947         (debug): Likewise.
17948         (helpflag): New global bool.
17949         (main): Set vflag and debug with boolean, not integer truth values.
17950         Accept new "--help" option and output usage text if found.
17951         * collect2.h (vflag): Update prototype.
17952         (debug): Likewise.
17953
17954 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
17955
17956         PR bootstrap/43936
17957         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
17958
17959 2010-04-29  Richard Guenther  <rguenther@suse.de>
17960
17961         PR bootstrap/43935
17962         * plugin.h (invoke_plugin_callbacks): Annotate arguments
17963         with ATTRIBUTE_UNUSED.
17964
17965 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
17966
17967         PR target/43921
17968         * config/i386/i386.c (get_some_local_dynamic_name): Replace
17969         INSN_P with NONDEBUG_INSN_P.
17970         (distance_non_agu_define): Likewise.
17971         (distance_agu_use): Likewise.
17972
17973 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
17974
17975         From Dominique d'Humieres  <dominiq@lps.ens.fr>
17976         PR bootstrap/43858
17977         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
17978         test_set.
17979
17980 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
17981
17982         * plugin.h (invoke_plugin_callbacks): New inline function.
17983         * plugin.c (flag_plugin_added): New global flag.
17984         (add_new_plugin): Initialize above flag.
17985         (invoke_plugin_callbacks): Rename to ...
17986         (invoke_plugin_callbacks_full): ... this.
17987
17988 2010-04-28  Jan Hubicka  <jh@suse.cz>
17989
17990         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
17991         (lto_varpool_replace_node): New.
17992         (lto_symtab_resolve_symbols): Resolve varpool nodes.
17993         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
17994         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
17995         * cgraph.h (varpool_node_ptr): New type.
17996         (varpool_node_ptr): New vector.
17997         (varpool_node_set_def): New structure.
17998         (varpool_node_set): New type.
17999         (varpool_node_set): New vector.
18000         (varpool_node_set_element_def): New structure.
18001         (varpool_node_set_element, const_varpool_node_set_element): New types.
18002         (varpool_node_set_iterator): New type.
18003         (varpool_node): Add prev pointers, add used_from_other_partition,
18004         in_other_partition.
18005         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
18006         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
18007         varpool_get_node, varpool_remove_node): Declare.
18008         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
18009         varpool_node_set_size): New inlines.
18010         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
18011         * tree-pass.h (varpool_node_set_def): Forward declare.
18012         (ipa_opt_pass_d): Summary writting takes vnode sets too.
18013         (ipa_write_optimization_summaries): Update prototype.
18014         * ipa-cp.c (ipcp_write_summary): Update.
18015         * ipa-reference.c (ipa_reference_write_summary): Update.
18016         * lto-cgraph.c (lto_output_varpool_node): New static function.
18017         (output_varpool): New function.
18018         (input_varpool_node): New static function.
18019         (input_varpool_1): New function.
18020         (input_cgraph): Input varpool.
18021         * ipa-pure-const.c (pure_const_write_summary): Update.
18022         * lto-streamer-out.c (lto_output): Update, output varpool too.
18023         (write_global_stream): Kill WPA hack.
18024         (produce_asm_for_decls): Update.
18025         (output_alias_pair_p): Handle variables.
18026         (output_unreferenced_globals): Output only needed partition of varpool.
18027         * ipa-inline.c (inline_write_summary): Update.
18028         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
18029         cgraph.
18030         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
18031         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
18032         varpool_node_set_new, varpool_node_set_add,
18033         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
18034         debug_varpool_node_set): New functions.
18035         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
18036         (execute_one_pass): Process new decls too.
18037         (ipa_write_summaries_2): Pass around vsets.
18038         (ipa_write_summaries_1): Likewise.
18039         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
18040         to add.
18041         (ipa_write_optimization_summaries_1): Pass around vsets.
18042         (ipa_write_optimization_summaries): Likewise.
18043         * varpool.c (varpool_get_node): New.
18044         (varpool_node): Update doubly linked lists.
18045         (varpool_remove_node): New.
18046         (dump_varpool_node): More dumping.
18047         (varpool_enqueue_needed_node): Update doubly linked lists.
18048         (decide_is_variable_needed): Kill ltrans hack.
18049         (varpool_finalize_decl): Kill lto hack.
18050         (varpool_assemble_decl): Skip decls in other partitions.
18051         (varpool_assemble_pending_decls): Update doubly linkes lists.
18052         (varpool_empty_needed_queue): Likewise.
18053         (varpool_extra_name_alias): Likewise.
18054         * lto-streamer.c (lto_get_section_name): Add vars section.
18055         * lto-streamer.h (lto_section_type): Update.
18056         (output_varpool, input_varpool): Declare.
18057
18058 2010-04-28  Mike Stump  <mikestump@comcast.net>
18059
18060         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
18061
18062 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
18063
18064         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
18065         record or union type with RECORD_OR_UNION_TYPE_P predicate.
18066         (lto_input_ts_type_tree_pointers): Likewise.
18067         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
18068         (lto_output_ts_type_tree_pointers): Likewise.
18069
18070 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
18071
18072         Uniquization of constants at the Tree level
18073         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
18074         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
18075         bit to the end.
18076         (tree_output_constant_def): Declare.
18077         * gimplify.c (gimplify_init_constructor): When using block copy, first
18078         uniquize the constant constructor on the RHS.
18079         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
18080         DECL_IN_CONSTANT_POOL flag.
18081         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
18082         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
18083         constant pool.
18084         (assemble_variable): Deal with symbols belonging to the tree constant
18085         pool.
18086         (get_constant_section): Add ALIGN parameter and simplify.
18087         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
18088         (assemble_constant_contents): Use the expression of the VAR_DECL.
18089         (output_constant_def_contents): Use the alignment of the VAR_DECL.
18090         (tree_output_constant_def): New global function.
18091         (mark_constant): Use the expression of the VAR_DECL.
18092         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
18093         its expression.
18094         (output_object_block): Likewise and assemble the expression.
18095
18096 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
18097
18098         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
18099         hash_tree, eq_tree): New tree hash table.
18100         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
18101         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
18102         lto_orig_address_remove): Reimplement.
18103
18104 2010-04-28  Xinliang David Li  <davidxl@google.com>
18105
18106         PR c/42643
18107         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
18108         (compute_uninit_opnds_pos): New function.
18109         (is_non_loop_exit_postdominating): New function.
18110         (compute_control_dep_chain): New function.
18111         (find_pdom): New function.
18112         (convert_control_dep_chain_into_preds): New function.
18113         (find_predicates): New function.
18114         (find_control_equiv_block): New function.
18115         (collect_phi_def_edges): New function.
18116         (find_def_preds): New function.
18117         (find_dom): New function.
18118         (dump_predicates): New function.
18119         (get_cmp_code): New function.
18120         (is_value_included_in): New function.
18121         (find_matching_predicate_in_rest_chains): New function.
18122         (use_pred_not_overlap_with_undef_path_pred): New function.
18123         (is_use_properly_guarded): New function.
18124         (normalize_cond_1): New function.
18125         (is_and_or_or): New function.
18126         (normalize_cond): New function.
18127         (is_gcond_subset_of): New function.
18128         (is_subset_of_any): New function.
18129         (is_or_set_subset_of): New function.
18130         (is_and_set_subset_of): New function.
18131         (is_norm_cond_subset_of): New function.
18132         (is_pred_expr_subset_of): New function.
18133         (is_pred_chain_subset_of): New function.
18134         (is_included_in): New function.
18135         (is_superset_of): New function.
18136         (find_uninit_use): New function.
18137         (warn_uninitialized_phi): New function.
18138         (compute_possibly_undefined_names): New function.
18139         (ssa_undefined_value_p): New function.
18140         (execute_late_warn_uninitialized): New function.
18141         * tree-ssa.c (ssa_undefined_value_p): Removed.
18142         (warn_uninit): Changed to extern.
18143         (warn_uninitialized_phi): Removed.
18144         (warn_uninitialized_vars): Changed to extern.
18145         (execute_late_warn_uninitialized): Removed
18146         * tree-flow.h: Add new prototypes.
18147         * timevar.def: Add new time variable.
18148         * Makefile.in: Add new build file.
18149
18150 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
18151
18152         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
18153         type if available.
18154
18155 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18156
18157         PR target/22224
18158         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
18159
18160 2010-04-28  Martin Jambor  <mjambor@suse.cz>
18161
18162         * cgraph.h (struct cgraph_node): New field indirect_calls.
18163         (struct cgraph_indirect_call_info): New type.
18164         (struct cgraph_edge): Removed field indirect_call. New fields
18165         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
18166         (cgraph_create_indirect_edge): Declare.
18167         (cgraph_make_edge_direct): Likewise.
18168         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
18169         * ipa-prop.h (struct ipa_param_call_note): Removed.
18170         (struct ipa_node_params): Removed field param_calls.
18171         (ipa_create_all_structures_for_iinln): Declare.
18172         * cgraph.c: Described indirect edges and uids in initial comment.
18173         (cgraph_add_edge_to_call_site_hash): New function.
18174         (cgraph_edge): Search also among the indirect edges, use
18175         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
18176         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
18177         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
18178         site hash.
18179         (initialize_inline_failed): Assign a reason to indirect edges.
18180         (cgraph_create_edge_1): New function.
18181         (cgraph_create_edge): Moved some functionality to
18182         cgraph_create_edge_1.
18183         (cgraph_create_indirect_edge): New function.
18184         (cgraph_edge_remove_callee): Add an assert checking for
18185         non-indirectness.
18186         (cgraph_edge_remove_caller): Special-case indirect edges.
18187         (cgraph_remove_edge): Likewise.
18188         (cgraph_set_edge_callee): New function.
18189         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
18190         (cgraph_make_edge_direct): New function.
18191         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
18192         the declaration of the call statement matches.
18193         (cgraph_node_remove_callees): Special-case indirect edges.
18194         (cgraph_clone_edge): Likewise.
18195         (cgraph_clone_node): Clone also the indirect edges.
18196         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
18197         indirect_call, dump count of indirect_calls edges.
18198         * ipa-prop.c (iinlining_processed_edges): New variable.
18199         (ipa_note_param_call): Create indirect edges instead of
18200         creating notes.  New parameter node.
18201         (ipa_analyze_call_uses): New parameter node, pass it on to
18202         ipa_note_param_call.
18203         (ipa_analyze_stmt_uses): Likewise.
18204         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
18205         (print_edge_addition_message): Work on edges rather than on notes.
18206         (update_call_notes_after_inlining): Likewise, renamed to
18207         update_indirect_edges_after_inlining.
18208         (ipa_create_all_structures_for_iinln): New function.
18209         (ipa_free_node_params_substructures): Do not free notes.
18210         (ipa_edge_duplication_hook): Propagate bits within
18211         iinlining_processed_edges bitmap.
18212         (ipa_node_duplication_hook): Do not duplicate notes.
18213         (free_all_ipa_structures_after_ipa_cp): Renamed to
18214         ipa_free_all_structures_after_ipa_cp.
18215         (free_all_ipa_structures_after_iinln): Renamed to
18216         ipa_free_all_structures_after_iinln.
18217         (ipa_write_param_call_note): Removed.
18218         (ipa_read_param_call_note): Removed.
18219         (ipa_write_indirect_edge_info): New function.
18220         (ipa_read_indirect_edge_info): Likewise.
18221         (ipa_write_node_info): Do not stream notes, do stream information
18222         in indirect edges.
18223         (ipa_read_node_info): Likewise.
18224         (lto_ipa_fixup_call_notes): Removed.
18225         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
18226         * ipa-inline.c (pass_ipa_inline): Likewise.
18227         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
18228         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
18229         * tree-inline.c (copy_bb): Removed an unnecessary double check for
18230         is_gimple_call.
18231         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
18232         edges.
18233         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
18234         (output_cgraph): Stream also indirect edges.
18235         (lto_output_edge): Added capability to stream indirect edges.
18236         (input_edge): Likewise.
18237         (input_cgraph_1): Likewise.
18238         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
18239         of indirect edges.
18240
18241 2010-04-28  Richard Guenther  <rguenther@suse.de>
18242
18243         PR tree-optimization/43879
18244         PR tree-optimization/43909
18245         * tree-ssa-structalias.c (struct variable_info): Add
18246         only_restrict_pointers flag.
18247         (new_var_info): Initialize it.  Increment stats.total_vars here.
18248         (create_function_info_for): Do not increment stats.total_vars here.
18249         (get_function_part_constraint): Fix build with C++.
18250         (insert_into_field_list): Remove.
18251         (push_fields_onto_fieldstack): Properly merge fields.
18252         (create_variable_info_for): Split and simplify.
18253         (create_variable_info_for_1): New piece.
18254         (intra_create_variable_infos): Properly make restrict constraints
18255         from parameters.
18256
18257 2010-04-28  Richard Guenther  <rguenther@suse.de>
18258
18259         PR c++/43880
18260         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
18261
18262 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18263             Jan Hubicka  <hubicka@ucw.cz>
18264
18265         * doc/invoke.texi (-Wsuggest-attribute=const,
18266         -Wsuggest-attribute=pure): Document.
18267         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
18268         (function_always_visible_to_compiler_p,
18269         suggest_attribute, warn_function_pure, warn_function_const):
18270         New functions.
18271         (check_call): Improve debug info.
18272         (analyze_function): Do not check availability.
18273         (add_new_function): Check availability.
18274         (propagate): Output warnings.
18275         (skip_function_for_local_pure_const): New function.
18276         (local_pure_const): Use it; output warnings.
18277         * common.opt (Wsuggest-attribute=const,
18278         Wsuggest-attribute=pure): New.
18279
18280 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
18281
18282         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
18283         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
18284         or DW_CFA_def_cfa_offset{,_sf}.
18285
18286 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
18287
18288         * tree.h: Fix truncated long macros.
18289
18290 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
18291
18292         * collect2.c (TARGET_64BIT): Redefine to target's default.
18293         * tlink.c: Likewise.
18294         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
18295         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
18296         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
18297         for underscoring __USER_LABEL_PREFIX__.
18298         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
18299         (SUB_LINK_ENTRY32): New.
18300         (SUB_LINK_ENTRY64): New.
18301         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
18302         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
18303         (SUB_LINK_ENTRY64): New.
18304         (SUB_LINK_ENTRY): New.
18305         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
18306         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
18307         x64 target is choosen.
18308         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
18309         * configure: Regenerated.
18310         * configure.ac (leading-mingw64-underscores): Option added.
18311
18312 2010-04-27  Jan Hubicka  <jh@suse.cz>
18313
18314         * doc/invoke.texi (-fipa-profile): Document.
18315         * opts.c (decode_options): Enable ipa-profile at -O1.
18316         * timevar.def (TV_IPA_PROFILE): Define.
18317         * common.opt (fipa-profile): Add.
18318         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
18319         flag for clones.
18320         (cgraph_propagate_frequency): Handle only local ones.
18321         * tree-pass.h (pass_ipa_profile): Declare.
18322         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
18323         (pass_ipa_profile): Use TV_IPA_PROFILE.
18324         * ipa.c (ipa_profile): New function.
18325         (gate_ipa_profile): Likewise.
18326         (pass_ipa_profile): New global variable.
18327         * passes.c (pass_ipa_profile): New.
18328
18329 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
18330
18331         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
18332
18333 2010-04-27  Martin Jambor  <mjambor@suse.cz>
18334
18335         PR middle-end/43812
18336         * ipa.c (dissolve_same_comdat_group_list): New function.
18337         (function_and_variable_visibility): Call
18338         dissolve_same_comdat_group_list when comdat group contains external or
18339         newly local nodes.
18340         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
18341         lists are circular and that they contain only DECL_ONE_ONLY nodes.
18342
18343 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
18344
18345         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
18346         (const_hash_1) <VECTOR_CST>: New case.
18347         (compare_constant) <VECTOR_CST>: Likewise.
18348         <ADDR_EXPR>: Deal with LABEL_REFs.
18349         (copy_constant) <VECTOR_CST>: New case.
18350
18351 2010-04-27  Jan Hubicka  <jh@suse.cz>
18352
18353         * cgraph.c (cgraph_propagate_frequency): New function.
18354         * cgraph.h (cgraph_propagate_frequency): Declare.
18355         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
18356         cgraph_propagate_frequency.
18357
18358 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
18359
18360         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
18361
18362 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
18363
18364         PR target/40657
18365         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
18366         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
18367         here to determine which regs to push and how much stack to reserve.
18368
18369 2010-04-27  Jie Zhang  <jie@codesourcery.com>
18370
18371         * doc/gimple.texi (gimple_statement_with_ops): Remove
18372         addresses_taken field.
18373         (gimple_statement_with_memory_ops): Likewise.
18374
18375 2010-04-27  Jan Hubicka  <jh@suse.cz>
18376
18377         * tree-inline.c (eni_inlining_weights): Remove.
18378         (estimate_num_insns): Special case more builtins.
18379
18380 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
18381
18382         PR c/32207
18383         * c-typeck.c (build_binary_op): Move forward check for comparison
18384         pointer with null pointer constant and adjust the diagnostic message.
18385
18386 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
18387
18388         PR lto/42776
18389         * configure.ac (gcc_cv_as_section_has_align): Set if installed
18390         binutils supports extended .section directive needed by LTO, or
18391         warn if older binutils found.
18392         (LTO_BINARY_READER): New AC_SUBST'd variable.
18393         (LTO_USE_LIBELF): Likewise.
18394         * gcc/config.gcc (lto_binary_reader): New target-specific configure
18395         variable.
18396         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
18397         (LTO_USE_LIBELF): Likewise.
18398         * configure: Regenerate.
18399
18400         * collect2.c (is_elf): Rename from this ...
18401         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
18402          object files in addition to ELF-formatted ones.
18403         (scan_prog_file): Caller updated.  Also allow for LTO info marker
18404         symbol to be prefixed or not by an extra underscore.
18405
18406         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
18407         * config/i386/winnt.c: Also #include lto-streamer.h
18408         (i386_pe_asm_named_section): Specify 1-byte section alignment for
18409         LTO named sections.
18410         (i386_pe_asm_output_aligned_decl_common): Add comment.
18411         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
18412
18413 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
18414
18415         PR target/43889
18416         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
18417         Add missing earlyclobber for second alternative.
18418
18419 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
18420
18421         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
18422         bits for artificial defs at the top of the block.
18423         * fwprop.c (single_def_use_enter_block): Don't call it.
18424
18425 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
18426
18427         PR 43715
18428         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
18429         instead of "$gcc_cv_objdump -T".
18430         Use "-undefined dynamic_lookup" on darwin.
18431         * gcc/configure: Regenerate.
18432
18433 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
18434
18435         PR c/43893
18436         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
18437
18438 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
18439
18440         * c-parser.c (struct c_token): Move location field up.
18441         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
18442         (struct c_declspecs): Convert typespec_word, storage_class, and
18443         default_int_p into bitfields.
18444         (struct c_declarator): Move loc field up.
18445
18446 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
18447
18448         * cfgloop.h (struct loop): Move can_be_parallel field up.
18449         * ipa-prop.h (struct ip_node_params): Move bitfields up.
18450         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
18451         down.
18452         (struct iv_cand): Convert pos field into a bitfield.
18453         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
18454         field up.
18455         (struct _stmt_vec_info): Shuffle fields for better packing.
18456
18457 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
18458
18459         * varasm.c (IN_NAMED_SECTION): Remove guard.
18460         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
18461         (IN_NAMED_SECTION_P): ...this.
18462         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
18463         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
18464
18465 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
18466
18467         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
18468         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
18469         of shadowing it.  Fix comments.
18470
18471 2010-04-26  Jan Hubicka  <jh@suse.cz>
18472
18473         * cgraph.c (cgraph_create_node): Set node frequency to normal.
18474         (cgraph_clone_node): Copy function frequency.
18475         * cgraph.h (node_frequency): New enum
18476         (struct cgraph_node): Add.
18477         * final.c (rest_of_clean_state): Update.
18478         * lto-cgraph.c (lto_output_node): Output node frequency.
18479         (input_overwrite_node): Input node frequency.
18480         * tre-ssa-loop-ivopts (computation_cost): Update.
18481         * lto-streamer-out.c (output_function): Do not output function
18482         frequency.
18483         * predict.c (maybe_hot_frequency_p): Update and handle functions
18484         executed once.
18485         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
18486         attribute lookup.
18487         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
18488         (compute_function_frequency): Set noreturn functions to be executed
18489         once.
18490         (choose_function_section): Update.
18491         * lto-streamer-in.c (input_function): Do not input function frequency.
18492         * function.c (allocate_struct_function): Do not initialize function
18493         frequency.
18494         * function.h (function_frequency): Remove.
18495         (struct function): Remove function frequency.
18496         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
18497         (try_update): Update.
18498         * tree-inline.c (initialize_cfun): Do not update function frequency.
18499         * passes.c (pass_init_dump_file): Update.
18500         * i386.c (ix86_compute_frame_layout): Update.
18501         (ix86_pad_returns): Update.
18502
18503 2010-04-26  Jie Zhang  <jie@codesourcery.com>
18504
18505         PR tree-optimization/43833
18506         * tree-vrp.c (range_int_cst_p): New.
18507         (range_int_cst_singleton_p): New.
18508         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
18509         when both operands are constants.  Use range_int_cst_p in
18510         BIT_IOR_EXPR case.
18511
18512 2010-04-26  Jan Hubicka  <jh@suse.cz>
18513
18514         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
18515
18516 2010-04-26  Richard Guenther  <rguenther@suse.de>
18517
18518         PR lto/43080
18519         * gimple.c (gimple_decl_printable_name): Deal gracefully
18520         with a NULL DECL_NAME.
18521
18522 2010-04-26  Richard Guenther  <rguenther@suse.de>
18523
18524         PR lto/42425
18525         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
18526         if emitting debug information and it is either a function
18527         or a namespace decl.
18528
18529 2010-04-26  Ira Rosen  <irar@il.ibm.com>
18530
18531         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
18532         determine if the statement is vectorizable, and a macro to access it.
18533         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
18534         Skip statements that can't be vectorized. If the analysis fails,
18535         mark the statement as unvectorizable if vectorizing basic block.
18536         (vect_compute_data_refs_alignment): Likewise.
18537         (vect_verify_datarefs_alignment): Skip statements marked as
18538         unvectorizable. Add print.
18539         (vect_analyze_group_access): Skip statements that can't be
18540         vectorized. If the analysis fails, mark the statement as
18541         unvectorizable if vectorizing basic block.
18542         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
18543         * tree-vect-stmts.c (vectorizable_store): Fix the number of
18544         generated stmts for SLP.
18545         (new_stmt_vec_info): Initialize the new field.
18546         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
18547         statements marked as unvectorizable.
18548
18549 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
18550
18551         * c-common.c (flag_isoc1x): New.
18552         (flag_isoc99): Update comment.
18553         * c-common.h (flag_isoc1x): New.
18554         (flag_isoc99): Update comment.
18555         * c-cppbuiltin.c (builtin_define_float_constants): Also define
18556         __<type>_DECIMAL_DIG__.
18557         * c-opts.c (set_std_c1x): New.
18558         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
18559         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
18560         * c.opt (-std=c1x, -std=gnu1x): New options.
18561         * doc/cpp.texi: Mention -std=c1x.
18562         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
18563         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
18564         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
18565         * doc/standards.texi: Mention C1X.
18566         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
18567         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
18568         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
18569         Define for C1X.
18570
18571 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
18572
18573         * config/i386/gmon-sol2.c (_mcleanup): Change format string
18574         placeholder from 0x%x to %#x.
18575         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
18576         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
18577         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
18578         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
18579         * config/i386/i386.c (ix86_target_string): Ditto.
18580         (output_pic_addr_const): Ditto.
18581         (print_operand): Ditto.
18582
18583 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
18584
18585         * combine.c (find_split_point): Add third argument.  Use it
18586         to find nested multiply-accumulate instructions.  Adjust calls.
18587         (try_combine): Adjust call to find_split_point.
18588
18589 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
18590
18591         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
18592
18593 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
18594
18595         PR tree-optimization/41442
18596         * fold-const.c (merge_truthop_with_opposite_arm): New function.
18597         (fold_binary_loc): Call it.
18598
18599 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18600
18601         * toplev.c (general_init): Set default for fdiagnostics-show-option.
18602         * opts.c (common_handle_option): Allow disabling it.
18603         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
18604
18605 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
18606
18607         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
18608         between modes if both types are integral.
18609
18610 2010-04-23  Richard Guenther  <rguenther@suse.de>
18611
18612         PR tree-optimization/43572
18613         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
18614
18615 2010-04-23  Richard Guenther  <rguenther@suse.de>
18616
18617         PR lto/43455
18618         * tree-inline.c (tree_can_inline_p): Also check compatibility
18619         of return types.
18620
18621 2010-04-23  Martin Jambor  <mjambor@suse.cz>
18622
18623         PR tree-optimization/43846
18624         * tree-sra.c (struct access): New flag grp_assignment_read.
18625         (build_accesses_from_assign): Set grp_assignment_read.
18626         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
18627         (enum mark_read_status): New type.
18628         (analyze_access_subtree): Propagate grp_assignment_read, create
18629         accesses also if both direct_read and root->grp_assignment_read.
18630
18631 2010-04-23  Martin Jambor  <mjambor@suse.cz>
18632
18633         PR middle-end/43835
18634         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
18635         function does not have type attributes.
18636
18637 2010-04-23  Richard Guenther  <rguenther@suse.de>
18638
18639         PR lto/42653
18640         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
18641         of FUNCTION_DECLs.
18642
18643 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18644
18645         * sese.h (create_if_region_on_edge): Remove.
18646
18647         * sese.c (create_if_region_on_edge): Make static.
18648
18649         * tree-inline.c: Do not include ggc.h.
18650
18651         * expr.c: Do not include ggc.h.
18652
18653         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
18654         dependencies.
18655
18656 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
18657
18658         PR target/43744
18659         * config/sh/sh.c (find_barrier): Don't emit a constant pool
18660         in the middle of insns for casesi_worker_2.
18661
18662 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
18663
18664         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
18665
18666 2010-04-22  Ira Rosen  <irar@il.ibm.com>
18667
18668         PR tree-optimization/43842
18669         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
18670         loop unrolling in update of exit phis. Fix comment.
18671         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
18672         least two reduction statements in the loop before starting SLP
18673         analysis.
18674
18675 2010-04-22  Nick Clifton  <nickc@redhat.com>
18676
18677         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
18678
18679 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
18680
18681         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
18682         to simplify a + ~a.
18683
18684 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18685
18686         * tree-parloops.c (loop_parallel_p): New argument
18687         parloop_obstack.  Pass it down.
18688         (parallelize_loops): New variable parloop_obstack.  Initialize it,
18689         pass it down, free it.
18690
18691         * tree-loop-linear.c (linear_transform_loops): Pass down
18692         lambda_obstack.
18693
18694         * tree-data-ref.h (lambda_compute_access_matrices): New argument
18695         of type struct obstack *.
18696
18697         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
18698         scratch_obstack.  Initialize it, pass down, free it.
18699
18700         * lambda.h (lambda_loop_new): Remove.
18701         (lambda_matrix_new, lambda_matrix_inverse)
18702         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
18703         argument of type struct obstack *.
18704
18705         * lambda-trans.c (lambda_trans_matrix_new): New argument
18706         lambda_obstack.  Pass it down, use obstack allocation for ret.
18707         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
18708         it down.
18709
18710         * lambda-mat.c (lambda_matrix_get_column)
18711         (lambda_matrix_project_to_null): Remove.
18712         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
18713         allocation for mat.
18714         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
18715         lambda_obstack.
18716
18717         * lambda-code.c (lambda_loop_new): New function.
18718         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
18719         (lambda_compute_auxillary_space, lambda_compute_target_space)
18720         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
18721         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
18722         (build_access_matrix): New argument lambda_obstack.  Use obstack
18723         allocation for am.
18724         (lambda_compute_step_signs, lambda_compute_access_matrices): New
18725         argument lambda_obstack.  Pass it down.
18726
18727 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
18728
18729         * optabs.h (expand_widening_mult): Declare.
18730
18731 2010-04-22  Richard Guenther  <rguenther@suse.de>
18732
18733         PR tree-optimization/43845
18734         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
18735         lookup the CALL_EXPR function and arguments.
18736
18737 2010-04-22  Nick Clifton  <nickc@redhat.com>
18738
18739         * config/stormy16/stormy16.c
18740         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
18741         * config/stormy16/stormy16.h: Tidy up formatting.
18742         (DONT_USE_BUILTIN_SETJMP): Remove definition.
18743         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
18744         (ineqbranchsi): Delete pattern.
18745         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
18746         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
18747         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
18748         stormy16-lib2-ucmpsi2.c.
18749
18750 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
18751
18752         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
18753         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
18754         extra set merge_set_noclobber, and use it to relax the final test
18755         slightly.
18756         * df.h (df_simulate_find_noclobber_defs): Declare.
18757         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
18758         conditional defs.
18759         (df_simulate_find_noclobber_defs): New function.
18760
18761 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
18762
18763         * config/i386/i386.md: Use {} around multi-line preparation statements.
18764
18765 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18766
18767         * c-tree.h (push_init_level, pop_init_level, set_init_index)
18768         (process_init_element): New argument of type struct obstack *.
18769
18770         * c-typeck.c (push_init_level, pop_init_level, set_designator)
18771         (set_init_index, set_init_label, set_nonincremental_init)
18772         (set_nonincremental_init_from_string, find_init_member)
18773         (output_init_element, output_pending_init_elements)
18774         (process_init_element): New argument braced_init_obstack.  Pass it
18775         down.
18776         (push_range_stack, add_pending_init): New argument
18777         braced_init_obstack.  Use obstack allocation.
18778
18779         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
18780         braced_init_obstack.  Pass it down.
18781         (c_parser_braced_init): New variables ret, braced_init_obstack.
18782         Initialize obstack, pass it down and finally free it.
18783
18784 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
18785
18786         PR middle-end/29274
18787         * tree-pass.h (pass_optimize_widening_mul): Declare.
18788         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
18789         gate_optimize_widening_mul): New static functions.
18790         (pass_optimize_widening_mul): New.
18791         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
18792         <case MULT_EXPR>: Remove support for widening multiplies.
18793         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
18794         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
18795         simplify_gen_unary rather than directly building extensions.
18796         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
18797         WIDEN_MULT_EXPR.
18798         * expmed.c (expand_widening_mult): New function.
18799         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
18800
18801 2010-04-21  Jan Hubicka  <jh@suse.cz>
18802
18803         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
18804         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
18805         * lto-wpa-fixup.c: Remove.
18806         * Makefile.in (lto-wpa-fixup.o): Remove.
18807         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
18808         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
18809         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
18810
18811 2010-04-21  Jan Hubicka  <jh@suse.cz>
18812
18813         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
18814         add write_optimization_summary, read_optimization_summary.
18815         (ipa_write_summaries_of_cgraph_node_set): Remove.
18816         (ipa_write_optimization_summaries): Declare.
18817         (ipa_read_optimization_summaries): Declare.
18818         * ipa-cp.c (pass_ipa_cp): Update.
18819         * ipa-reference.c (pass_ipa_reference): Update.
18820         * ipa-pure-const.c (pass_ipa_pure_const): Update.
18821         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
18822         Update.
18823         * ipa-inline.c (pass_ipa_inline): Update.
18824         * ipa.c (pass_ipa_whole_program): Update.
18825         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
18826         * passes.c (ipa_write_summaries_1): Do not test wpa.
18827         (ipa_write_optimization_summaries_1): New.
18828         (ipa_write_optimization_summaries): New.
18829         (ipa_read_summaries): Do not test ltrans.
18830         (ipa_read_optimization_summaries_1): New.
18831         (ipa_read_optimization_summaries): New.
18832
18833 2010-04-21  Jan Hubicka  <jh@suse.cz>
18834
18835         * lto-cgraph.c (lto_output_node): Do not output comdat groups
18836         for boundary nodes.
18837         (output_cgraph): Do not arrange comdat groups for boundary nodes.
18838
18839 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
18840
18841         PR debug/40040
18842         * dwarf2out.c (add_name_and_src_coords_attributes): Add
18843         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
18844
18845 2010-04-21  Jan Hubicka  <jh@suse.cz>
18846
18847         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
18848
18849 2010-04-21  Jan Hubicka  <jh@suse.cz>
18850
18851         * varpool.c (decide_is_variable_needed): Variable is always needed
18852         during ltrans.
18853
18854 2010-04-21  Jan Hubicka  <jh@suse.cz>
18855
18856         * opts.c (decode_options): Enable pure-const pass for whopr.
18857
18858 2010-04-21  Jan Hubicka  <jh@suse.cz>
18859
18860         * cgraph.c (dump_cgraph_node): Dump also assembler name.
18861         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
18862         at WPA dumping.
18863         (cgraph_decide_inlining): Do not expect callee to be removed in all
18864         cases.
18865
18866 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
18867
18868         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
18869
18870 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
18871
18872         * config/i386/i386.md (x86_shrd): Add athlon_decode and
18873         amdfam10_decode attributes.
18874
18875 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
18876
18877         PR middle-end/43570
18878         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
18879         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
18880         (lower_copyprivate_clauses): Use private var in outer
18881         context instead of original var.  Make sure the types
18882         are correct for VLAs.
18883
18884 2010-04-21  Richard Guenther  <rguenther@suse.de>
18885
18886         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
18887         to non-pointer objects.
18888
18889 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
18890
18891         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
18892         last chain entry if it starts with the still current label.
18893         (add_location_or_const_value_attribute): Check that
18894         loc_list->first->next is NULL instead of comparing ->first with ->last.
18895         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
18896         to add_var_loc_to_decl.
18897
18898         * dwarf2out.c (output_call_frame_info): For dw_cie_version
18899         >= 4 add also address size and segment size fields into CIE header.
18900
18901         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
18902         long as address size is the same as sizeof (void *) and
18903         segment size is 0.
18904         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
18905         address size or segment size is unexpected, return DW_EH_PE_omit.
18906         (classify_object_over_fdes): If get_cie_encoding returned
18907         DW_EH_PE_omit, return -1.
18908         (init_object): If classify_object_over_fdes returned -1,
18909         pretend there were no FDEs at all.
18910
18911 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
18912
18913         * config/i386/i386.md (bswap<mode>2): Macroize expander from
18914         bswap{si,di}2 using SWI48 mode iterator.
18915         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
18916         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
18917         set modrm attribute of bswap insn to 0 and remove length attribute.
18918         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
18919         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
18920         set mode attribute to <MODE> and remove length attribute.
18921
18922 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
18923
18924         PR rtl-optimization/43520
18925         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
18926         zero available registers.
18927
18928 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18929
18930         * builtins.c (fold_builtin_cproj): Fold more cases.
18931
18932 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18933
18934         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
18935         (fold_builtin_1): Fold builtin cproj.
18936         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
18937         Use ATTR_CONST_NOTHROW_LIST.
18938
18939 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
18940
18941         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
18942         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
18943         ffsi2_no_cmove for !TARGET_CMOVE.
18944         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
18945         (ffssi2): Remove expander.
18946         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
18947         mode iterator.
18948         (ctz<mode>2): Ditto from ctz{si,di}2.
18949         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
18950         mode iterator.
18951         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
18952         mode iterator.
18953
18954 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
18955
18956         * dwarf2out.c (AT_linkage_name): Define.
18957         (clone_as_declaration): Handle DW_AT_linkage_name.
18958         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
18959         of DW_AT_MIPS_linkage_name.
18960         (move_linkage_attr): Likewise.
18961         (dwarf2out_finish): Likewise.
18962
18963 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
18964
18965         PR middle-end/41952
18966         * fold-const.c (fold_comparison): New folding rule.
18967
18968 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
18969
18970         * double-int.h (double_int_setbit): Declare.
18971         * double-int.c (double_int_setbit): New function.
18972         * rtl.h (immed_double_int_const): Declare.
18973         * emit-rtl.c (immed_double_int_const): New function.
18974         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
18975         and immed_double_int_const functions.
18976         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
18977         expand_copysign_bit): (Ditto.).
18978         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
18979         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
18980         * dojump.c (prefer_and_bit_test): (Ditto.).
18981         * expr.c (convert_modes, reduce_to_bit_field_precision,
18982         const_vector_from_tree): (Ditto.).
18983         * expmed.c (mask_rtx, lshift_value): (Ditto.).
18984
18985 2010-04-20  Jan Hubicka  <jh@suse.cz>
18986
18987         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
18988         (dump_cgraph_node): Dump new flags.
18989         * cgraph.h (struct cgraph_node): Add flags
18990         reachable_from_other_partition and in_other_partition.
18991         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
18992         other partition can not be removed.
18993         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
18994         the other partition must be output; silence sanity checking on
18995         leaking functions bodies from other paritition.
18996         * lto-cgraph.c (reachable_from_other_partition_p): New function.
18997         (lto_output_node): Output new flags; do not sanity check that inline
18998         clones are output; drop lto_forced_extern_inline_p code; do not mock
18999         visibility flags at partition boundaries.
19000         (add_node_to): New function.
19001         (output_cgraph): Use it to sort functions so masters appear before
19002         clones.
19003         (input_overwrite_node): Input new flags.
19004         * passes.c (ipa_write_summaries): Do not call
19005         lto_new_extern_inline_states.
19006         * lto-section-out.c (forced_extern_inline,
19007         lto_new_extern_inline_states lto_delete_extern_inline_states,
19008         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
19009         * lto-streamer.h (lto_new_extern_inline_states,
19010         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
19011         lto_forced_extern_inline_p): Kill.
19012
19013 2010-04-20  Richard Guenther  <rguenther@suse.de>
19014
19015         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
19016         from vars that can have pointers.
19017         (process_constraint): Dump useless constraints.
19018
19019 2010-04-20  Richard Guenther  <rguenther@suse.de>
19020
19021         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
19022         (dump_sa_points_to_info): Remove asserts.
19023         (init_base_vars): nothing_id isn't an escape point nor does it
19024         have pointers.
19025
19026 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
19027
19028         * tree.h (TYPE_REF_IS_RVALUE): Define.
19029         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
19030         should_move_die_to_comdat, prune_unused_types_walk): Handle
19031         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
19032         (modified_type_die, gen_reference_type_die): Emit
19033         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
19034         if TYPE_REF_IS_RVALUE and -gdwarf-4.
19035
19036 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19037
19038         PR target/43635
19039         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
19040         calls for -fpic -m31 if they have been sibcall optimized.
19041
19042 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
19043
19044         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
19045         ar.lc fixed and call-used.
19046
19047         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
19048
19049 2010-04-19  Jan Hubicka  <jh@suse.cz>
19050
19051         * opts.c (decode_options): Disable whpr incompatible passes.
19052         * lto/lto.c (lto_1_to_1_map): Skip clones.
19053         (read_cgraph_and_symbols): Do not mark everything as needed.
19054         (do_whole_program_analysis): Do map only after optimizing;
19055         set proper cgraph_state; use passmanager.
19056
19057 2010-04-19  DJ Delorie  <dj@redhat.com>
19058
19059         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
19060         POINTER_PLUS_EXPR and fix them.
19061
19062 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
19063
19064         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
19065         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
19066         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
19067         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
19068         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
19069         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
19070         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
19071         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
19072         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
19073         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
19074         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
19075
19076 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
19077
19078         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
19079         (check_cond_move_block): Likewise.
19080         (cond_move_process_if_block): Likewise.
19081         (noce_find_if_block): Improve formatting.
19082         (find_if_header): Pass 0 to memset and tweak conditions.
19083         (cond_exec_find_if_block): Fix long lines and tweak conditions.
19084
19085 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
19086
19087         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
19088         for -gdwarf-4.
19089
19090         PR middle-end/43337
19091         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
19092         with non-local decl doesn't need chain.
19093
19094 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
19095
19096         * ira-color.c (allocno_reload_assign): Avoid accumulating
19097         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
19098
19099 2010-04-19  Martin Jambor  <mjambor@suse.cz>
19100
19101         * gimple.h (create_tmp_reg): Declare.
19102         * gimplify.c (create_tmp_reg): New function.
19103         (gimplify_return_expr): Use create_tmp_reg.
19104         (gimplify_omp_atomic): Likewise.
19105         (gimple_regimplify_operands): Likewise.
19106         * tree-dfa.c (make_rename_temp): Likewise.
19107         * tree-predcom.c (predcom_tmp_var): Likewise.
19108         (reassociate_to_the_same_stmt): Likewise.
19109         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
19110         (get_replaced_param_substitute): Likewise.
19111         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
19112         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
19113         * tree-ssa-pre.c (get_representative_for): Likewise.
19114         (create_expression_by_pieces): Likewise.
19115         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
19116         (create_tailcall_accumulator): Likewise.
19117
19118 2010-04-19  Martin Jambor  <mjambor@suse.cz>
19119
19120         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
19121         new_stmt.
19122         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
19123
19124 2010-04-19  Richard Guenther  <rguenther@suse.de>
19125
19126         PR tree-optimization/43796
19127         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
19128         from SCEV in the lattice.
19129         (vrp_visit_phi_node): Dump change.
19130
19131 2010-04-19  Richard Guenther  <rguenther@suse.de>
19132
19133         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
19134         * configure: Re-generated.
19135
19136 2010-04-19  Richard Guenther  <rguenther@suse.de>
19137
19138         PR tree-optimization/43783
19139         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
19140         constant ARRAY_REF operands two and three if possible.
19141
19142 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
19143
19144         PR target/43766
19145         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
19146
19147 2010-04-19  Jie Zhang  <jie@codesourcery.com>
19148
19149         PR target/43662
19150         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
19151
19152 2010-04-19  Ira Rosen  <irar@il.ibm.com>
19153
19154         PR tree-optimization/37027
19155         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
19156         and macro to access it.
19157         (vectorizable_reduction): Add argument.
19158         (vect_get_slp_defs): Likewise.
19159         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
19160         statements for possible use in SLP.
19161         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
19162         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
19163         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
19164         add new argument.
19165         (vectorizable_reduction): Likewise.
19166         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
19167         vect_get_slp_defs.
19168         (vectorizable_type_demotion, vectorizable_type_promotion,
19169         vectorizable_store): Likewise.
19170         (vect_analyze_stmt): Update call to vectorizable_reduction.
19171         (vect_transform_stmt): Likewise.
19172         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
19173         (vect_build_slp_tree): Fix indentation. Check that there are no loads
19174         from different interleaving chains in same node.
19175         (vect_slp_rearrange_stmts): New function.
19176         (vect_supported_load_permutation_p): Allow load permutations for
19177         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
19178         inside SLP nodes if necessary.
19179         (vect_analyze_slp_instance): Handle reductions.
19180         (vect_analyze_slp): Try to build SLP instances originating from groups
19181         of reductions.
19182         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
19183         (vect_get_constant_vectors): Create initial vectors for reductions
19184         according to reduction code. Add new argument.
19185         (vect_get_slp_defs): Add new argument, pass it to
19186         vect_get_constant_vectors.
19187         (vect_schedule_slp_instance): Remove SLP tree root statements.
19188
19189 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
19190
19191         * tree.h (ENUM_IS_SCOPED): Define.
19192         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
19193         for ENUM_IS_SCOPED enums.
19194
19195 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
19196
19197         * fold-const.c (fold_comparison): Use ssizetype.
19198         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
19199         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
19200         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
19201         * tree-object-size.c (compute_object_sizes): Use size_type_node.
19202
19203         * tree.h (initialize_sizetypes): Remove parameter.
19204         (build_common_tree_nodes): Remove second parameter.
19205         * stor-layout.c (initialize_sizetypes): Remove parameter.
19206         Always create an unsigned type.
19207         (set_sizetype): Assert that the passed type is unsigned and simplify.
19208         * tree.c (build_common_tree_nodes): Remove second parameter.
19209         Adjust call to initialize_sizetypes.
19210         * c-decl.c (c_init_decl_processing): Remove second argument in call to
19211         build_common_tree_nodes.
19212
19213 2010-04-18  Matthias Klose  <doko@ubuntu.com>
19214
19215         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
19216
19217 2010-04-18  Ira Rosen  <irar@il.ibm.com>
19218
19219         PR tree-optimization/43771
19220         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
19221         load permutation doesn't have gaps.
19222
19223 2010-04-18  Jan Hubicka  <jh@suse.cz>
19224
19225         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
19226         (sse_prologue_save_insn expander): Use new pattern.
19227         (sse_prologue_save_insn1): New pattern and splitter.
19228         (sse_prologue_save_insn): Update to deal also with 64bit aligned
19229         blocks.
19230         * i386.c (setup_incoming_varargs_64): Do not compute jump
19231         destination here.
19232         (ix86_gimplify_va_arg): Update alignment needed.
19233         (ix86_local_alignment): Do not align all local arrays to 128bit.
19234
19235 2010-04-17  Jan Hubicka  <jh@suse.cz>
19236
19237         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
19238
19239 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
19240
19241         * arm.md (negdi2): Remove redundant code to force values into a
19242         register.
19243
19244 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
19245
19246         * arm/bpabi.S: Add EABI alignment attributes to objects.
19247         * arm/bpabi-v6m.S: Likewise.
19248         * arm/crti.asm: Likewise.
19249         * arm/crtn.asm: Likewise.
19250         * arm/lib1funcs.asm: Likewise.
19251         * arm/libunwind.S: Likewise.
19252
19253 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
19254
19255         * arm-protos.h (tune_params): New structure.
19256         * arm.c (current_tune): New variable.
19257         (arm_constant_limit): Delete.
19258         (struct processors): Add pointer to the tune parameters.
19259         (arm_slowmul_tune): New tuning option.
19260         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
19261         (all_cores): Adjust to pick up the tuning model.
19262         (arm_constant_limit): New function.
19263         (arm_override_options): Select the appropriate tuning model.  Delete
19264         initialization of arm_const_limit.
19265         (arm_split_constant): Use the new constant-limit model.
19266         (arm_rtx_costs): Pick up the current tuning model.
19267         * arm.md (is_strongarm, is_xscale): Delete.
19268         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
19269         for Xscale variant architectures.
19270         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
19271
19272 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19273
19274         * config/arm/arm.c (arm_gen_constant): Remove unused variable
19275         can_shift.
19276         (arm_rtx_costs_1): Remove unused variable extra_cost.
19277         (arm_unwind_emit_set): Use variable offset.
19278         (thumb1_output_casesi): Remove unused variable flags.
19279
19280 2010-04-16  Jeff Law  <law@redhat.com>
19281
19282         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
19283         needing assignment rather than doing a two-phase assignment.  Remove
19284         unused variable 'm'.
19285
19286 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
19287
19288         PR bootstrap/43767
19289         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
19290
19291 2010-04-16  Doug Kwan  <dougkwan@google.com>
19292
19293         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
19294         (next_operand_entry_id): New static variable.
19295         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
19296         (add_to_ops_vec): Assigned unique ID to operand entry.
19297         (struct oecount_s): New field ID.
19298         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
19299         (undistribute_ops_list): Assign unique IDs to oecounts.
19300         (init_reassoc): reset next_operand_entry_id.
19301
19302 2010-04-16  Doug Kwan  <dougkwan@google.com>
19303
19304         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
19305         missing left parenthesis.
19306
19307 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
19308
19309         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
19310         *btdi_rex64 using SWI48 mode iterator.
19311         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
19312         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
19313         *jcc_btdi_mask_rex64.
19314
19315 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
19316
19317         * double-int.h (tree_to_double_int): Convert to macro.
19318         * double-int.c (tree_to_double_int): Remove.
19319
19320 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
19321
19322         PR debug/43762
19323         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
19324         with want_address 2 and in case a single element list might be
19325         possible, call it again with want_address 0.
19326
19327 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
19328
19329         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
19330         case 'W' print operands for HI mode.
19331         * config/h8300/h8300.h (Y0, Y2) : New constraints.
19332         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
19333         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
19334         * config/h8300/predicate.md (bit_register_indirect_operand): New.
19335
19336         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
19337
19338         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
19339         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
19340         #xx:3 and #xx:4 mode.
19341
19342         * config/h8300/h8300.md (inverted load with HImode dest): Add
19343         support for H8300SX.
19344
19345         * config/h8300/predicate.md (bit_operand): Allow immediate values that
19346         satisfy 'U' constraint.
19347
19348 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19349
19350         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
19351         * configure: Regenerate.
19352         * config.in: Regenerate.
19353         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
19354         works.
19355
19356 2010-04-16  Richard Guenther  <rguenther@suse.de>
19357
19358         * tree.h (struct tree_decl_minimal): Move pt_uid ...
19359         (struct tree_decl_common): ... here.
19360         (DECL_PT_UID): Adjust.
19361         (SET_DECL_PT_UID): Likewise.
19362         (DECL_PT_UID_SET_P): Likewise.
19363
19364 2010-04-16  Richard Guenther  <rguenther@suse.de>
19365
19366         PR tree-optimization/43572
19367         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
19368         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
19369         * tree-flow.h (is_call_clobbered): Remove.
19370         * tree-flow-inline.h (is_call_clobbered): Likewise.
19371         * tree-dfa.c (dump_variable): Do not dump call clobber state.
19372         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
19373         (execute_return_slot_opt): Adjust.
19374         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
19375         check for call clobbered vars here.
19376         (find_tail_calls): Move tailcall verification to the
19377         proper place.
19378
19379 2010-04-16  Diego Novillo  <dnovillo@google.com>
19380
19381         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
19382
19383 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
19384
19385         PR target/40603
19386         * config/arm/arm.md (cbranchqi4): New pattern.
19387         * config/arm/predicates.md (const0_operand,
19388         cbranchqi4_comparison_operator): New predicates.
19389
19390 2010-04-16  Richard Guenther  <rguenther@suse.de>
19391
19392         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
19393         (dump_gimple_stmt): Likewise.
19394
19395 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
19396
19397         * recog.h (struct recog_data): New field is_operator.
19398         (struct insn_operand_data): New field is_operator.
19399         * recog.c (extract_insn): Set recog_data.is_operator.
19400         * genoutput.c (output_operand_data): Emit code to set the
19401         is_operator field.
19402         * reload.c (find_reloads): Use it rather than testing for an
19403         empty constraint string.
19404
19405         PR target/41514
19406         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
19407         If the previous insn is a cbranchsi4_insn with the same arguments,
19408         omit the compare instruction.
19409
19410         * config/arm/arm.md (addsi3_cbranch): If destination is a high
19411         register, inputs must be low registers and we need a low register
19412         scratch.  Handle alternative 2 like alternative 3.
19413
19414 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
19415
19416         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
19417         don't call get_addr on both.  If one expression is a VALUE and
19418         the other a REG, check VALUE's locs if the REG isn't among them.
19419
19420 2010-04-16  Christian Bruel  <christian.bruel@st.com>
19421
19422         * config/sh/sh.h (sh_frame_pointer_required): New function.
19423         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
19424         (flag_omit_frame_pointer) Set.
19425         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
19426         (rounded_frame_size): Adjust size with outgoing_args_size.
19427         (sh_set_return_address): Must return from stack pointer.
19428         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
19429         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
19430         (ACCUMULATE_OUTGOING_ARGS): Define.
19431         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
19432         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
19433
19434 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
19435
19436         PR target/43471
19437         * config/sh/sh.c (sh_legitimize_reload_address): Use
19438         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
19439         Remove a unneeded check for offset_base.
19440
19441 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
19442
19443         * configure: Regenerated.
19444
19445 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19446
19447         * config/s390/s390.c (s390_call_save_register_used): Switch back
19448         to HARD_REGNO_NREGS.
19449
19450 2010-04-15  Richard Guenther  <rguenther@suse.de>
19451
19452         * alias.c (alias_set_subset_of): Handle alias-set zero
19453         child properly.
19454
19455 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
19456             Julian Brown  <julian@codesourcery.com>
19457
19458         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
19459         alternatives according to use of high and low regs.
19460         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
19461         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
19462         optimizing for size on Thumb-2.
19463
19464 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
19465
19466         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
19467
19468 2010-04-15  Richard Guenther  <rguenther@suse.de>
19469
19470         * tree-ssa-structalias.c (struct variable_info): Add
19471         is_fn_info flag.
19472         (new_var_info): Initialize it.
19473         (dump_constraints): Support printing last added constraints.
19474         (debug_constraints): Adjust.
19475         (dump_constraint_graph): Likewise.
19476         (make_heapvar_for): Check for NULL cfun.
19477         (get_function_part_constraint): New function.
19478         (get_fi_for_callee): Likewise.
19479         (find_func_aliases): Properly implement IPA PTA constraints.
19480         (process_ipa_clobber): New function.
19481         (find_func_clobbers): Likewise.
19482         (insert_into_field_list_sorted): Remove.
19483         (create_function_info_for): Properly allocate vars for IPA mode.
19484         Do not use insert_into_field_list_sorted.
19485         (create_variable_info_for): Properly generate constraints for
19486         global vars in IPA mode.
19487         (dump_solution_for_var): Always dump the solution.
19488         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
19489         (find_what_var_points_to): Adjust.
19490         (pt_solution_set): Change.
19491         (pt_solution_ior_into): New function.
19492         (pt_solution_empty_p): Export.
19493         (pt_solution_includes_global): Adjust.
19494         (pt_solution_includes_1): Likewise.
19495         (pt_solutions_intersect_1): Likewise.
19496         (dump_sa_points_to_info): Check some invariants.
19497         (solve_constraints): Move constraint dumping ...
19498         (compute_points_to_sets): ... here.
19499         (ipa_pta_execute): ... and here.
19500         (compute_may_aliases): Do not re-compute points-to info
19501         locally if IPA info is available.
19502         (ipa_escaped_pt): New global var.
19503         (ipa_pta_execute): Properly implement IPA PTA.
19504         * tree-into-ssa.c (dump_decl_set): Support dumping
19505         decls not in referenced-vars.
19506         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
19507         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
19508         (dump_points_to_solution): Likewise.
19509         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
19510         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
19511         (remap_gimple_stmt): Reset call clobber/use information if necessary.
19512         (copy_decl_to_var): Copy DECL_PT_UID.
19513         (copy_result_decl_to_var): Likewise.
19514         * tree.c (make_node_stat): Initialize DECL_PT_UID.
19515         (copy_node_stat): Copy it.
19516         * tree.h (DECL_PT_UID): New macro.
19517         (SET_DECL_PT_UID): Likewise.
19518         (DECL_PT_UID_SET_P): Likewise.
19519         (struct tree_decl_minimal): Add pt_uid member.
19520         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
19521         (pt_solution_empty_p): Declare.
19522         (pt_solution_set): Adjust.
19523         (ipa_escaped_pt): Declare.
19524         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
19525         * gimple-pretty-print.c (pp_points_to_solution): New function.
19526         (dump_gimple_call): Dump call clobber/use information.
19527         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
19528         * tree-pass.h (TDF_ALIAS): New dump option.
19529         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
19530         * doc/invoke.texi (-fipa-pta): Update documentation.
19531
19532 2010-04-15  Richard Guenther  <rguenther@suse.de>
19533
19534         * Makefile.in (OBJS-common): Add gimple-fold.o.
19535         (gimple-fold.o): New rule.
19536         * tree.h (maybe_fold_offset_to_reference,
19537         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
19538         prototypes ...
19539         * gimple.h: ... here.
19540         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
19541         may_propagate_address_into_dereference): Move prototypes ...
19542         * gimple.h: ... here.
19543         * tree-ssa-ccp.c (get_symbol_constant_value,
19544         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
19545         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
19546         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
19547         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
19548         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
19549         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
19550         gimplify_and_update_call_from_tree): Move ...
19551         * gimple-fold.c: ... here.  New file.
19552         (ccp_fold_builtin): Rename to ...
19553         (gimple_fold_builtin): ... this.
19554         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
19555
19556 2010-04-15  Richard Guenther  <rguenther@suse.de>
19557
19558         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
19559         fit_double_type, force_fit_type_double, add_double_with_sign,
19560         neg_double, mul_double_with_sign, lshift_double, rshift_double,
19561         lrotate_double, rrotate_double, div_and_round_double): Move ...
19562         * double-int.c: ... here.
19563         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
19564         add_double, neg_double, mul_double_with_sign, mul_double,
19565         lshift_double, rshift_double, lrotate_double, rrotate_double,
19566         div_and_round_double): Move prototypes ...
19567         * double-int.h: ... here.
19568
19569 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
19570
19571         PR target/43742
19572         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
19573         matching constraints to ensure inputs match the output.
19574
19575 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
19576
19577         PR target/43742
19578         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
19579         in an input-only operand.
19580
19581 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
19582
19583         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
19584         (double_int_not, double_int_lshift, double_int_rshift): Declare.
19585         (double_int_negative_p): Convert to static inline function.
19586         * double-int.c (double_int_lshift, double_int_lshift): New functions.
19587         (double_int_negative_p): Remove.
19588         * tree.h (lshift_double, rshift_double):
19589         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
19590         * fold-const.c (fold_convert_const_int_from_real,
19591         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
19592         (lshift_double): Change type of arith argument to bool.
19593         (rshift_double): Change type of arith argument to bool. Correct
19594         comment.
19595         * expmed.c (mask_rtx, lshift_value): (Ditto.).
19596
19597 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
19598
19599         PR target/21803
19600         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
19601         at the start and end of the then/else blocks, and omit them from the
19602         conversion.
19603         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
19604         argument; all callers changed.  Pass zero to old_insns_match_p instead.
19605         (flow_find_head_matching_sequence): New function.
19606         (old_insns_match_p): Check REG_EH_REGION notes for calls.
19607         * basic-block.h (flow_find_cross_jump,
19608         flow_find_head_matching_sequence): Declare functions.
19609
19610 2010-04-14  Jason Merrill  <jason@redhat.com>
19611
19612         PR c++/36625
19613         * c-common.c (attribute_takes_identifier_p): New fn.
19614         * c-common.h: Declare it.
19615
19616 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
19617
19618         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
19619         splitter condition.
19620         (*udivmod<mode>4): Ditto.
19621
19622 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
19623
19624         * config/i386/i386.md (maxmin_int): Rename code attribute from
19625         maxminiprefix and update all users.
19626         (maxmin_float): Ditto from maxminfprefix.
19627         (logic): Ditto from logicprefix.
19628         (absneg_mnemonic): Ditto from absnegprefix.
19629         * config/i386/mmx.md: Update all users of maxminiprefix,
19630         maxminfprefix and logicprefix for rename.
19631         * config/i386/sse.md: Ditto.
19632         * config/i386/sync.md (sync_<code><mode>): Update for
19633         logicprefix rename.
19634
19635 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19636
19637         PR 42966
19638         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
19639         warnings converted to errors.
19640
19641 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
19642
19643         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
19644         used insn_type variable.
19645         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
19646         to avoid set-but-not-used warning.
19647
19648 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
19649
19650         * df-core.c (df_ref_debug): Change format string placeholder
19651         from 0x%x to %#x.
19652         * dwarf2asm.c (dw2_asm_output_data_raw,
19653         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
19654         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
19655         * dwarf2out.c (output_cfi, output_cfi_directive,
19656         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
19657         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
19658         Ditto.
19659         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
19660         * print-rtl.c (print_rtx): Ditto.
19661
19662 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
19663
19664         PR middle-end/42694
19665         * builtins.c (expand_builtin_pow_root): New function to expand pow
19666         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
19667         series of sqrt and cbrt calls under -ffast-math.
19668         (expand_builtin_pow): Call it.
19669
19670 2010-04-14  Michael Matz  <matz@suse.de>
19671
19672         PR tree-optimization/42963
19673         * tree-cfg.c (touched_switch_bbs): New static variable.
19674         (group_case_labels_stmt): New function broken out from ...
19675         (group_case_labels): ... here, use the above.
19676         (start_recording_case_labels): Allocate touched_switch_bbs.
19677         (end_recording_case_labels): Deallocate it, call
19678         group_case_labels_stmt.
19679         (gimple_redirect_edge_and_branch): Remember index of affected BB.
19680
19681 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
19682
19683         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
19684         from insn template.
19685
19686 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
19687
19688         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
19689
19690 2010-04-13  Jan Hubicka  <jh@suse.cz>
19691
19692         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
19693         of optimized out static functions.
19694         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
19695         cost computation.  Also sanity check for overflows.
19696         (update_caller_keys): Update cgraph_edge_badness call; properly
19697         update fibheap and sanity check that it is up to date.
19698         (add_new_edges_to_heap): Update cgraph_edge_badness.
19699         (cgraph_decide_inlining_of_small_function): Likewise;
19700         add sanity checking that badness in heap is up to date;
19701         improve dumping of reason; Update badness of calls to the
19702         offline copy of function currently inlined; dump badness
19703         of functions not inlined because of unit growth limits.
19704
19705 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
19706
19707         PR middle-end/32628
19708         * c-common.c (pointer_int_sum): Disregard overflow that occured only
19709         because of sign-extension change when converting to sizetype here...
19710         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
19711
19712         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
19713         the folding to constants.  Remove redundant final conversion.
19714         (fold_binary) <associate>: Do not associate if the re-association of
19715         constants alone overflows.
19716         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
19717         to the end of the list.
19718         (multiple_of_p) <COND_EXPR>: New case.
19719
19720 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19721
19722         * opt-functions.awk (opt_sanitized_name): New.
19723         (opt_enum): New.
19724         * optc-gen.awk: Use it
19725         * opth-gen.awk: Use it.
19726
19727 2010-04-13  Martin Jambor  <mjambor@suse.cz>
19728
19729         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
19730         (sra_modify_assign): Delete stmts loading dead data even if racc has no
19731         children.  Call replace_uses_with_default_def_ssa_name to handle
19732         SSA_NAES on lhs.
19733
19734 2010-04-13  Michael Matz  <matz@suse.de>
19735
19736         PR middle-end/43730
19737         * builtins.c (expand_builtin_interclass_mathfn): Also create
19738         a register if the predicate doesn't match.
19739
19740 2010-04-13  Diego Novillo  <dnovillo@google.com>
19741
19742         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
19743         * c-pch.c: Include timevar.h.
19744         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
19745         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
19746         * ggc-common.c: Include timevar.h.
19747         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
19748         * timevar.def (TV_PCH_SAVE): Define.
19749         (TV_PCH_CPP_SAVE): Define.
19750         (TV_PCH_PTR_REALLOC): Define.
19751         (TV_PCH_PTR_SORT): Define.
19752         (TV_PCH_RESTORE): Define.
19753         (TV_PCH_CPP_RESTORE): Define.
19754
19755 2010-04-13  Michael Matz  <matz@suse.de>
19756
19757         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
19758         into MINUS_EXPRs.
19759         (can_reassociate_p): New function.
19760         (break_up_subtract_bb, reassociate_bb): Use it.
19761
19762 2010-04-13  Richard Guenther  <rguenther@suse.de>
19763
19764         PR bootstrap/43737
19765         * builtins.c (c_readstr): Fix assert.
19766
19767 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
19768
19769         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
19770         when generating cltd insn.
19771
19772         (*ashl<mode>3_1): Remove special handling for register operand 2.
19773         (*ashlsi3_1_zext): Ditto.
19774         (*ashlhi3_1): Ditto.
19775         (*ashlhi3_1_lea): Ditto.
19776         (*ashlqi3_1): Ditto.
19777         (*ashlqi3_1_lea): Ditto.
19778         (*<shiftrt_insn><mode>3_1): Ditto.
19779         (*<shiftrt_insn>si3_1_zext): Ditto.
19780         (*<shiftrt_insn>qi3_1_slp): Ditto.
19781         (*<rotate_insn><mode>3_1): Ditto.
19782         (*<rotate_insn>si3_1_zext): Ditto.
19783         (*<rotate_insn>qi3_1_slp): Ditto.
19784
19785 2010-04-13  Richard Guenther  <rguenther@suse.de>
19786
19787         * tree-ssa-structalias.c (callused_id): Remove.
19788         (call_stmt_vars): New.
19789         (get_call_vi): Likewise.
19790         (lookup_call_use_vi): Likewise.
19791         (lookup_call_clobber_vi): Likewise.
19792         (get_call_use_vi): Likewise.
19793         (get_call_clobber_vi): Likewise.
19794         (make_transitive_closure_constraints): Likewise.
19795         (handle_const_call): Adjust to do per-call call-used handling.
19796         (handle_pure_call): Likewise.
19797         (find_what_var_points_to): Remove general callused handling.
19798         (init_base_vars): Likewise.
19799         (init_alias_vars): Initialize call_stmt_vars.
19800         (compute_points_to_sets): Process call-used and call-clobbered
19801         vars for call statements.
19802         (delete_points_to_sets): Free call_stmt_vars.
19803
19804 2010-04-13  Richard Guenther  <rguenther@suse.de>
19805
19806         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
19807         Only add RW dependence for dependence distance zero.
19808         Adjust maximal vectorization factor according to dependences.
19809         Move alignment handling ...
19810         (vect_find_same_alignment_drs): ... here.  New function.
19811         (vect_analyze_data_ref_dependences): Adjust.
19812         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
19813         (vect_analyze_data_refs): Adjust minimal vectorization factor
19814         according to data references.
19815         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
19816         dependences before determining the vectorization factor.
19817         Analyze alignment after determining the vectorization factor.
19818         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
19819         dependences before alignment.
19820         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
19821         Adjust prototype.
19822         (vect_analyze_data_refs): Likewise.
19823         (MAX_VECTORIZATION_FACTOR): New define.
19824
19825 2010-04-13  Duncan Sands  <baldrick@free.fr>
19826
19827         * except.h (lang_eh_type_covers): Remove.
19828         * except.c (lang_eh_type_covers): Likewise.
19829
19830 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19831             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19832
19833         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
19834         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
19835         UNITS_PER_LONG where it is ABI relevant.
19836         (s390_return_addr_rtx): Likewise.
19837         (s390_back_chain_rtx): Likewise.
19838         (s390_frame_area): Likewise.
19839         (s390_frame_info): Likewise.
19840         (s390_initial_elimination_offset): Likewise.
19841         (save_gprs): Likewise.
19842         (s390_emit_prologue): Likewise.
19843         (s390_emit_epilogue): Likewise.
19844         (s390_function_arg_advance): Likewise.
19845         (s390_function_arg): Likewise.
19846         (s390_va_start): Likewise.
19847         (s390_gimplify_va_arg): Likewise.
19848         (s390_function_profiler): Likewise.
19849         (s390_optimize_prologue): Likewise.
19850         (s390_rtx_costs): Likewise.
19851         (s390_secondary_reload): Likewise.
19852         (s390_promote_function_mode): Likewise.
19853         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
19854         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
19855         registers available.
19856         (s390_unwind_word_mode): New function.
19857         (s390_function_value): Split 64 bit values into register pair if
19858         used as return value.
19859         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
19860         function call parameters.  Handle parallels.
19861         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
19862         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
19863         (DWARF_CIE_DATA_ALIGNMENT): New macro.
19864         (s390_expand_setmem): Remove unused variable src_addr.
19865         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
19866         deal with 64 bit registers.
19867         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
19868         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
19869         (UNITS_PER_LONG): New macro.
19870         * libjava/include/s390-signal.h: Define extended ucontext
19871         structure containing the upper halfs of the 64 bit registers.
19872
19873 2010-04-13  Simon Baldwin  <simonb@google.com>
19874
19875         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
19876
19877 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
19878
19879         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
19880         rvalue on the RHS if the LHS is of a non-renamable type.
19881         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
19882
19883 2010-04-13  Matthias Klose  <doko@ubuntu.com>
19884
19885         * gcc.c (cc1_options): Handle -iplugindir before processing
19886         the cc1 spec. Only add -iplugindir once.
19887         (cpp_unique_options): Add -iplugindir option if -fplugin* options
19888         found.
19889         * common.opt (iplugindir): Remove `Separate' property, initialize.
19890         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
19891         option.
19892         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
19893         (distclean): Remove plugin dir.
19894         * doc/invoke.texi: Document -iplugindir.
19895
19896 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
19897
19898         * doc/plugins.texi (Loading Plugins): Document short
19899         -fplugin=foo option.
19900         (Plugin API): Mention default_plugin_dir_name function.
19901
19902         * gcc.c (find_file_spec_function): Add new declaration.
19903         (static_spec_func): Use it for "find-file".
19904         (find_file_spec_function): Add new function.
19905         (cc1_options): Add -iplugindir option if -fplugin* options found.
19906
19907         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
19908
19909         * plugin.c (add_new_plugin): Updated comment, and handle short
19910         plugin name.
19911         (default_plugin_dir_name): Added new function.
19912
19913         * common.opt (iplugindir): New option to set the plugin directory.
19914
19915 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
19916
19917         * config/i386/i386.md (any_rotate): New code iterator.
19918         (rotate_insn): New code attribute.
19919         (rotate): Ditto.
19920         (SWIM124): New mode iterator.
19921         (<rotate_insn>ti3): New expander.
19922         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
19923         any_rotate code iterator.
19924         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
19925         using any_rotate code iterator and SWIM124 mode iterator.
19926         (ix86_rotlti3): New insn_and_split pattern.
19927         (ix86_rotrti3): Ditto.
19928         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
19929         ix86_rotl{di,ti}3 patterns.
19930         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
19931         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
19932         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
19933         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
19934         code iterator and SWI mode iterator.
19935         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
19936         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
19937         code iterator.
19938         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
19939         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
19940         (bswap rotatert splitter): Add splitter.
19941         (bswap splitter): Macroize splitter using any_rotate code iterator.
19942         Add insn predicate to split only for TARGET_USE_XCHGB or when
19943         optimizing function for size.
19944
19945 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
19946
19947         * config/pa/pa.c (emit_move_sequence): Remove use of
19948         deleted variable flag_argument_noalias.
19949
19950 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19951
19952         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
19953         configurations.
19954         Add to unsupported targets list.
19955         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
19956         sparc*-sun-solaris2.[567]* from target lists.
19957         * configure: Regenerate.
19958         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
19959         removal.
19960         Remove Solaris 7 patch references.
19961         (Specific, sparc-sun-solaris2.7): Removed.
19962         (sparc-sun-solaris2*): Update Solaris 7 example.
19963         (sparc64-*-solaris2*): Likewise.
19964
19965 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19966
19967         * config.build (alpha*-dec-osf4*): Remove.
19968         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
19969         of obsolete configurations.
19970         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
19971         support.
19972         * config/alpha/t-osf4: Renamed to ...
19973         * config/alpha/t-osf5: ... this.
19974         * config/alpha/osf.h: Renamed to ...
19975         * config/alpha/osf5.h: ... this.
19976         Merged old osf5.h contents.
19977         Update comments.
19978         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
19979         (EXTRA_SPECS): Removed.
19980         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
19981         reflect removal of Tru64 UNIX V4.0/V5.0 support.
19982         Document that.
19983
19984 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19985
19986         * doc/contrib.texi (Contributors, Rainer Orth): Update.
19987
19988 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
19989
19990         PR/43702
19991         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
19992         __thiscall convention.
19993
19994 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
19995
19996         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
19997         orig_base.
19998         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
19999
20000 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
20001
20002         * function.c (assign_parms_initialize_all): Add unused attribute
20003         to fntype.
20004
20005 2010-04-12  Richard Guenther  <rguenther@suse.de>
20006
20007         * gsstruct.def (GSS_CALL): New.
20008         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
20009         * gimple.h: Include tree-ssa-alias.h.
20010         (struct gimple_statement_call): New.
20011         (union gimple_statement_struct_d): Add gimple_call member.
20012         (gimple_call_reset_alias_info): Declare.
20013         (gimple_call_use_set): New function.
20014         (gimple_call_clobber_set): Likewise.
20015         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
20016         * gimple.c (gimple_call_reset_alias_info): New function.
20017         (gimple_build_call_1): Call it.
20018         * lto-streamer-in.c (input_gimple_stmt): Likewise.
20019         * tree-inline.c (remap_gimple_stmt): Likewise.
20020         (expand_call_inline): Remove callused handling.
20021         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
20022         * tree-dfa.c (dump_variable): Likewise.
20023         * tree-parloops.c (parallelize_loops): Likewise.
20024         * tree-ssa.c (init_tree_ssa): Likewise.
20025         (delete_tree_ssa): Likewise.
20026         * tree-flow-inline.h (is_call_used): Remove.
20027         * tree-flow.h (struct gimple_df): Remove callused member.
20028         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
20029         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
20030         (ref_maybe_used_by_call_p_1): Simplify.
20031         (call_may_clobber_ref_p_1): Likewise.
20032         * tree-ssa-structalias.c (compute_points_to_sets): Set
20033         the call stmt used and clobbered sets.
20034         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
20035         (find_tail_calls): Verify the tail call.
20036
20037 2010-04-12  Richard Guenther  <rguenther@suse.de>
20038
20039         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
20040         single-iteration always-inline inlining.
20041         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
20042         (cgraph_decide_inlining): Do not handle always-inline specially.
20043         (try_inline): Remove always-inline cycle detection special case.
20044         Do not recurse on always-inlines.
20045         (cgraph_early_inlining): Do not iterate if not optimizing.
20046         (cgraph_gate_early_inlining): remove.
20047         (pass_early_inline): Run unconditionally.
20048         (gate_cgraph_decide_inlining): New function.
20049         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
20050         not inlining or optimizing.
20051         (cgraph_decide_inlining_of_small_functions): Also consider
20052         always-inline functions.
20053         (cgraph_default_inline_p): Return true for nodes which should
20054         disregard inline limits.
20055         (estimate_function_body_sizes): Assume zero size and time for
20056         nodes which are marked as disregarding inline limits.
20057         (cgraph_decide_recursive_inlining): Do not perform recursive
20058         inlining on always-inline nodes.
20059
20060 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
20061
20062         PR bootstrap/43699
20063         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
20064         for exprs satisfying handled_component_p.
20065
20066 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
20067
20068         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
20069         non-constant aggregate elements.
20070
20071         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
20072         is a real initialization.
20073
20074 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
20075
20076         PR c/36774
20077         * c-decl.c (start_function): Move forward check for nested function.
20078
20079 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
20080
20081         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
20082         * config/sh/sh.c: Include reload.h.
20083         (sh_legitimize_reload_address): New.
20084         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
20085         sh_legitimize_reload_address.
20086
20087 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
20088
20089         * config/sh/sh.md (*movqi_pop): New insn pattern.
20090         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
20091
20092 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
20093
20094         * config/i386/i386.md (any_shiftrt): New code iterator.
20095         (shiftrt_insn): New code attribute.
20096         (shiftrt): Ditto.
20097         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
20098         using any_shiftrt code iterator.
20099         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
20100         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
20101         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
20102         pattern from corresponding peephole2 patterns.
20103         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
20104         using any_shiftrt code iterator.
20105         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
20106         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
20107         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
20108         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
20109         *{ashr,lshr}<mode>3_cmp_zext.
20110         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
20111
20112 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
20113
20114         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
20115         scratch register.
20116         (*lshr<mode>3_cconly): Ditto.
20117
20118 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
20119
20120         * config/i386/i386.md (lshr<mode>3): Macroize expander from
20121         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
20122         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
20123         pattern from *lshr{di,ti}3_1 and corresponding splitters using
20124         DWI mode iterator.
20125         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
20126         from corresponding peephole2 patterns.
20127         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
20128         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
20129         and *lshrdi3_1_rex64 using SWI mode iterator.
20130         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
20131         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
20132         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
20133         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
20134         and *lshrdi3_cmp_rex64 using SWI mode iterator.
20135         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
20136         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
20137         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
20138         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
20139         SWI mode iterator.
20140
20141 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
20142
20143         * config/i386/i386.md (ashr<mode>3): Macroize expander from
20144         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
20145         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
20146         pattern from *ashr{di,ti}3_1 and corresponding splitters using
20147         DWI mode iterator.
20148         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
20149         from corresponding peephole2 patterns.
20150         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
20151         (ashrsi3_cvt): Rename from ashrsi3_31.
20152         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
20153         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
20154         and x86_64_shift_adj_3 using SWI48 mode iterator.
20155         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
20156         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
20157         and *ashrdi3_1_rex64 using SWI mode iterator.
20158         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
20159         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
20160         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
20161         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
20162         and *ashrdi3_cmp_rex64 using SWI mode iterator.
20163         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
20164         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
20165         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
20166         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
20167         SWI mode iterator.
20168         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
20169         * config/i386/i386.c (ix86_split_ashr): Update for renamed
20170         x86_shift<mode>_adj_3 expanders.
20171
20172 2010-04-10  Wei Guozhi  <carrot@google.com>
20173
20174         PR target/42601
20175         * config/arm/arm.c (arm_pic_static_addr): New function.
20176         (legitimize_pic_address): Call arm_pic_static_addr when it detects
20177         a static symbol.
20178         (arm_output_addr_const_extra): Output expression for new pattern.
20179         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
20180
20181 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
20182
20183         * ira-costs.c (record_reg_classes): Ignore alternatives that are
20184         not enabled.
20185
20186         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
20187         * web.c: Include "insn-config.h" and "recog.h".
20188         (union_match_dups): New function.
20189         (web_main): Call it.
20190         (union_defs): Don't try to recognize match_dups.
20191
20192         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
20193         if doing so would replace the entire pattern.
20194
20195 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
20196
20197         PR target/43707
20198         PR target/43709
20199         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
20200         and splitter pattern.  Change splitter operand 1 predicate to
20201         nonmemory_operand.
20202
20203 2010-04-09  Martin Jambor  <mjambor@suse.cz>
20204
20205         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
20206         lattices are addresses of CONST_DECLs with the same initial value.
20207         (ipcp_print_all_lattices): Print values of CONST_DECLs.
20208         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
20209
20210 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
20211             Bernd Schmidt  <bernds@codesourcery.com>
20212
20213         * loop-invariant.c (replace_uses): New static function.
20214         (move_invariant_reg): Use it to ensure we can replace the uses.
20215
20216 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
20217
20218         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
20219         function template.
20220         (picochip_override_options): Enable section anchors only above -O1.
20221         (picochip_reorg): Fixed a couple of build warnings.
20222
20223 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20224
20225         * configure.ac (plugin -rdynamic test): Log result.
20226         * configure: Regenerate.
20227         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
20228         (RDYNAMIC_SPEC): Define.
20229         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
20230
20231 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20232
20233         * configure.ac: Determine Sun ld version numbers.
20234         (comdat_group): Restrict GNU ld version checks to gld.
20235         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
20236         (enable_comdat): Support --enable-comdat.
20237         * configure: Regenerate.
20238         * doc/install.texi (Configuration): Document --enable-comdat.
20239
20240 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20241
20242         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
20243         * config/sol2-gld.h: ... here.
20244         * config.gcc (sparc*-*-solaris2*): Reflect this.
20245         (i[34567]86-*-solaris2*): Use it.
20246
20247 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
20248
20249         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
20250         setup_clocks_p.
20251         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
20252
20253 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20254
20255         PR 42965
20256         * diagnostic.c (diagnostic_initialize): Initialize
20257         some_warnings_are_errors.
20258         (diagnostic_finish): New.
20259         (diagnostic_action_after_output): Call it before exiting.
20260         (diagnostic_report_diagnostic): Do not print message here. Set
20261         some_warnings_are_errors.
20262         * diagnostic.h (diagnostic_context): Delete
20263         issue_warnings_are_errors_message. Add some_warnings_are_errors.
20264         (diagnostic_finish): Declare.
20265         * toplev.c (toplev_main): Call it before exit.
20266
20267 2010-04-09  Jason Merrill  <jason@redhat.com>
20268
20269         PR c++/42623
20270         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
20271         for incomplete type.
20272
20273         PR c++/41788
20274         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
20275         based on a warning flag.
20276
20277 2010-04-09  Richard Guenther  <rguenther@suse.de>
20278
20279         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
20280
20281 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
20282
20283         PR bootstrap/43684
20284         * varasm.c (default_assemble_visibility): Wrap vars that are
20285         set, but unused, by targets without GAS.
20286         * config/rs6000/rs6000.c (paired_emit_vector_compare):
20287         Remove set, but unused, vars.
20288         (rs6000_legitimize_tls_address): Likewise.
20289         (altivec_expand_dst_builtin): Likewise.
20290         * config/darwin.c (machopic_classify_symbol): Likewise.
20291         (machopic_indirection_name): Likewise.
20292
20293 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
20294
20295         * config/i386/i386.md (DWI): New mode iterator.
20296         (S): New mode attribute.
20297         (shift_operand): Ditto.
20298         (shift_immediate_operand): Ditto.
20299         (ashl_input_operand): Ditto.
20300         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
20301         using SDWIM mode iterator.
20302         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
20303         pattern from *ashl{di,ti}3_1 and corresponding splitters using
20304         DWI mode iterator.
20305         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
20306         from corresponding peephole2 patterns.
20307         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
20308         and x86_64_shift_adj_1 using SWI48 mode iterator.
20309         (x86_shift<mode>_adj_2): Ditto.
20310         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
20311         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
20312         using SWI48 mode iterator.
20313         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
20314         *ashldi3_cmp_rex64 using SWI mode iterator.
20315         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
20316         *ashldi3_cconly_rex64 using SWI mode iterator.
20317         * config/i386/i386.c (ix86_split_ashl): Update for renamed
20318         x86_shift<mode>_adj_{1,2}.
20319         (ix86_split_ashr): Ditto.
20320         (ix86_split_lshr): Ditto.
20321
20322 2010-04-09  Richard Guenther  <rguenther@suse.de>
20323
20324         * target.h (builtin_conversion): Pass in input and output types.
20325         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
20326         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
20327         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
20328         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
20329
20330         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
20331         Handle AVX modes.
20332         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
20333
20334 2010-04-09  Richard Guenther  <rguenther@suse.de>
20335
20336         PR target/43152
20337         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
20338
20339 2010-04-09  Richard Guenther  <rguenther@suse.de>
20340
20341         * tree-vectorizer.h (struct _stmt_vec_info): Document
20342         that vectype is the type of the LHS.
20343         (supportable_widening_operation, supportable_narrowing_operation):
20344         Get both input and output vector types as arguments.
20345         (vect_is_simple_use_1): Declare.
20346         (get_same_sized_vectype): Likewise.
20347         * tree-vect-loop.c (vect_determine_vectorization_factor):
20348         Set STMT_VINFO_VECTYPE to the vector type of the def.
20349         (vectorizable_reduction): Adjust.
20350         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
20351         Adjust.  Specify the output vector type.
20352         (vect_pattern_recog_1): Adjust.
20353         * tree-vect-stmts.c (get_same_sized_vectype): New function.
20354         (vectorizable_call): Adjust.
20355         (vectorizable_conversion): Likewise.
20356         (vectorizable_operation): Likewise.
20357         (vectorizable_type_demotion): Likewise.
20358         (vectorizable_type_promotion): Likewise.
20359         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
20360         the def.
20361         (vect_is_simple_use_1): New function.
20362         (supportable_widening_operation): Get both input and output
20363         vector types.
20364         (supportable_narrowing_operation): Likewise.
20365         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
20366
20367 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
20368
20369         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
20370         __thiscall and _thiscall as predefined macros.
20371         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
20372         thiscall attribute handling.
20373         (ix86_comp_type_attributes): Likewise.
20374         (ix86_function_regparm): Likewise.
20375         (ix86_return_pops_args): Likewise.
20376         (init_cumulative_args): Likewise.
20377         (find_drap_reg): Likewise.
20378         (ix86_static_chain): Likewise.
20379         (x86_this_parameter): Likewise.
20380         (x86_output_mi_thunk): Likewise.
20381         (ix86_attribute_table): Add description for thiscall attribute.
20382         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
20383         * doc/extend.texi: Add documentation for thiscall.
20384
20385 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20386
20387         PR c++/28584
20388         * c.opt (Wint-to-pointer-cast): Available in C++.
20389         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
20390
20391 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
20392
20393         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
20394         * calls.c (expand_call): Pass the function type to aggregate_value_p.
20395         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
20396         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
20397         function type instead.  Reorder and simplify checks.
20398
20399         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
20400
20401 2010-04-08  Jing Yu  <jingyu@google.com>
20402             Zdenek Dvorak  <ook@ucw.cz>
20403
20404         PR tree-optimization/42720
20405         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
20406         loop unswitch conditions here from ...
20407         (tree_unswitch_single_loop): ... here.
20408
20409 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
20410
20411         * tree-if-conv.c: Fix comments and simplify logic.
20412
20413 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
20414
20415         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
20416         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
20417         (main_tree_if_conversion): Update call to tree_if_conversion.
20418
20419 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20420
20421         PR 42485
20422         * doc/invoke.texi (-b,-V): Delete.
20423         * doc/tm.texi: Do not mention -b.
20424         * gcc.c (display_help): Delete -b and -V.
20425         (process_command): Delete -b and -V.
20426         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
20427
20428 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
20429             Wolfgang Gellerich  <gellerich@de.ibm.com>
20430
20431         Implement target hook for loop unrolling
20432         * target.h (loop_unroll_adjust): Add a new target hook function.
20433         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
20434         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
20435         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
20436         (s390_loop_unroll_adjust): Implement the new target hook for s390.
20437         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
20438         target hook.
20439         (decide_unroll_stupid): Likewise.
20440
20441 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20442
20443         PR target/43643
20444         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
20445
20446 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20447
20448         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
20449         (Specific, *-*-solaris2*): Likewise.
20450         Don't prefer Sun as over GNU as.
20451
20452 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
20453
20454         * config/s390/s390.c (override_options): Adjust the z10 defaults
20455         for max-unroll-times, max-completely-peeled-insns
20456         and max-completely-peel-times.
20457
20458 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20459
20460         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
20461         instructions for z10.
20462         (s390_expand_setmem): Likewise.
20463         (s390_expand_cmpmem): Likewise.
20464
20465 2010-04-08  Richard Guenther  <rguenther@suse.de>
20466
20467         PR tree-optimization/43679
20468         * tree-ssa-pre.c (eliminate): Only propagate copies.
20469
20470 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
20471
20472         PR bootstrap/43681
20473         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
20474         set but not used variable warning.
20475
20476 2010-04-08  Wei Guozhi  <carrot@google.com>
20477
20478         PR target/41653
20479         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
20480         (arm_size_rtx_costs): Call the new function when optimized for size.
20481
20482 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
20483
20484         PR debug/43670
20485         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
20486         op0 is not a MEM, just return NULL instead of assertion
20487         failure.
20488         (discover_nonconstant_array_refs): Don't walk debug stmts.
20489
20490 2010-04-08  Doug Kwan  <dougkwan@google.com>
20491
20492         * configure.ac: Recognize gold and do not use its version number
20493         to test ld features.
20494         * configure: Regenerate.
20495
20496 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
20497
20498         PR middle-end/40815
20499         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
20500         (negate_value): Move code to push elements to broken_up_substracts ...
20501         (eliminate_plus_minus_pair): ... here.  Push operands that have no
20502         negative pair to plus_negates.
20503         (repropagate_negates, init_reassoc, fini_reassoc): Update.
20504
20505 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20506
20507         * doc/install.texi (Configuration): Move description of
20508         --enable-lto, --with-libelf*, --enable-gold from Java section to
20509         general section.
20510
20511         * doc/generic.texi (Working with declarations)
20512         (Function Properties, C and C++ Trees): Fix typos.
20513         * doc/sourcebuild.texi (Top Level): Likewise.
20514
20515 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
20516
20517         PR c/18624
20518         * tree.h (DECL_READ_P): Define.
20519         (struct tree_decl_common): Add decl_read_flag.
20520         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
20521         a set but not used warning.
20522         (merge_decls): Merge DECL_READ_P flag.
20523         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
20524         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
20525         * c-common.c (handle_used_attribute, handle_unused_attribute):
20526         Likewise.
20527         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
20528         New prototypes.
20529         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
20530         New functions.
20531         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
20532         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
20533         c_parser_binary_expression, c_parser_cast_expression,
20534         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
20535         Call default_function_array_read_conversion instead of
20536         default_function_array_conversion where needed.
20537         (c_parser_unary_expression, c_parser_conditional_expression,
20538         c_parser_postfix_expression_after_primary, c_parser_initelt):
20539         Likewise.  Call mark_exp_read where needed.
20540         (c_parser_statement_after_labels, c_parser_asm_operands,
20541         c_parser_typeof_specifier, c_parser_sizeof_expression,
20542         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
20543         where needed.
20544         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
20545         New.
20546         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
20547         (warn_unused_but_set_parameter): Default to warn_unused
20548         && extra_warnings.
20549         * doc/invoke.texi: Document -Wunused-but-set-variable and
20550         -Wunused-but-set-parameter.
20551
20552         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
20553         used count variable.
20554         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
20555         when operandN variables aren't used in the body of the expander
20556         or splitter.
20557         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
20558         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
20559         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
20560         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
20561         FOR_EACH_IMM_USE_ON_STMT): Likewise.
20562         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
20563         * tree.c (PROCESS_ARG): Likewise.
20564
20565 2010-04-07  Simon Baldwin  <simonb@google.com>
20566
20567         * diagnostic.h (diagnostic_override_option_index): New macro to
20568         set a diagnostic's option_index.
20569         * c-tree.h (c_cpp_error): Add warning reason argument.
20570         * opts.c (_warning_as_error_callback): New.
20571         (register_warning_as_error_callback): Store callback for
20572         warnings enabled via enable_warning_as_error.
20573         (enable_warning_as_error): Call callback, minor code tidy.
20574         * opts.h (register_warning_as_error_callback): Declare.
20575         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
20576         response to -Werror=.
20577         (c_common_init_options): Register warning_as_error_callback in opts.c.
20578         * common.opt: Add -Wno-cpp option.
20579         * c-common.c (struct reason_option_codes_t): Map cpp warning
20580         reason codes to gcc option indexes.
20581         * (c_option_controlling_cpp_error): New function, lookup the gcc
20582         option index for a cpp warning reason code.
20583         * (c_cpp_error): Add warning reason argument, call
20584         c_option_controlling_cpp_error for diagnostic_override_option_index.
20585         * doc/invoke.texi: Document -Wno-cpp.
20586
20587 2010-04-07  Richard Guenther  <rguenther@suse.de>
20588
20589         * ipa-reference.c (mark_load): Use get_base_address.
20590         (mark_store): Likewise.
20591
20592         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
20593         inserting GIMPLE_NOPs into the IL.
20594         * tree-ssa-structalias.c (get_constraint_for_component_ref):
20595         Explicitly strip handled components and indirect references.
20596
20597         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
20598         folding address expressions.
20599         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
20600         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
20601         operand_equal_p to compare decls.
20602         (ptr_deref_may_alias_decl_p): Likewise.
20603         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
20604         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
20605         Handle reversed comparison ops.
20606         * tree-sra.c (asm_visit_addr): Use get_base_address.
20607         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
20608         * ipa-reference.c (mark_address): Use get_base_address.
20609
20610 2010-04-07  Richard Guenther  <rguenther@suse.de>
20611
20612         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
20613         Propagate constants everywhere.
20614
20615 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
20616
20617         PR debug/43516
20618         * tree.c (MAX_INT_CACHED_PREC): Define.
20619         (nonstandard_integer_type_cache): New array.
20620         (build_nonstandard_integer_type): Cache results for precision
20621         <= MAX_INT_CACHED_PREC.
20622
20623 2010-04-07  Richard Guenther  <rguenther@suse.de>
20624
20625         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
20626         -fargument-noalias-global, -fargument-noalias-anything): Remove.
20627         * common.opt: Likewise.
20628         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
20629         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
20630         (nonoverlapping_memrefs_p): Likewise.
20631         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20632         * opts.c (common_handle_option): Handle OPT_fargument_alias,
20633         OPT_fargument_noalias, OPT_fargument_noalias_anything and
20634         OPT_fargument_noalias_global for backward compatibility.
20635
20636 2010-04-07  Richard Guenther  <rguenther@suse.de>
20637
20638         PR tree-optimization/43270
20639         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
20640         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
20641         * tree-ssa-pre.c (phi_translate_1): Adjust.
20642         (fully_constant_expression): Split out vn_reference handling to ...
20643         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
20644         Fold reads from constant strings.
20645         (vn_reference_lookup): Handle fully constant references.
20646         (vn_reference_lookup_pieces): Likewise.
20647         * Makefile.in (expmed.o-warn): Add -Wno-error.
20648
20649 2010-04-07  Martin Jambor  <mjambor@suse.cz>
20650
20651         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
20652
20653 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
20654
20655         PR driver/41594
20656         * gcc.c: Add -static-libstdc++ to list of recognized options.
20657
20658 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20659
20660         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
20661
20662 2010-04-07  Richard Guenther  <rguenther@suse.de>
20663
20664         PR middle-end/42617
20665         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
20666         bases build simple mem attributes to retain points-to information.
20667
20668 2010-04-07  Richard Guenther  <rguenther@suse.de>
20669
20670         PR middle-end/42617
20671         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
20672         preserve points-to related information.
20673
20674 2010-04-07  Richard Guenther  <rguenther@suse.de>
20675
20676         PR middle-end/42617
20677         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
20678         discard plain indirect references.
20679         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
20680         * tree.c (tree_nop_conversion): Likewise.
20681
20682 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
20683
20684         PR debug/43628
20685         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
20686
20687 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
20688
20689         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
20690         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
20691
20692 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
20693
20694         * tree-if-conv.c: Fix indentation and comments.
20695
20696 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
20697
20698         * tree-if-conv.c: Sort static functions in topological order.
20699
20700 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
20701
20702         * tree-if-conv.c: Fix indentation and comments.
20703
20704 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
20705
20706         PR middle-end/43519
20707         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
20708         lang_hooks.types.type_for_size instead of
20709         build_nonstandard_integer_type.
20710         When converting an unsigned type to signed, double its precision.
20711         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
20712         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
20713         (graphite_create_new_loop_guard): When ub + 1 wraps around,
20714         use lb <= ub.
20715
20716 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
20717
20718         PR middle-end/43519
20719         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
20720         POINTER_PLUS_EXPR for pointer types.
20721
20722 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
20723
20724         PR middle-end/43519
20725         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
20726         * graphite-clast-to-gimple.c: Include langhooks.h.
20727         (max_signed_precision_type): New.
20728         (max_precision_type): Takes two types as arguments.
20729         (precision_for_value): New.
20730         (precision_for_interval): New.
20731         (gcc_type_for_interval): New.
20732         (gcc_type_for_value): New.
20733         (gcc_type_for_clast_term): New.
20734         (gcc_type_for_clast_red): New.
20735         (gcc_type_for_clast_bin): New.
20736         (gcc_type_for_clast_expr): Split up into several functions.
20737         (gcc_type_for_clast_eq): Rewritten.
20738         (compute_bounds_for_level): New.
20739         (compute_type_for_level_1): New.
20740         (compute_type_for_level): New.
20741         (gcc_type_for_cloog_iv): Removed.
20742         (gcc_type_for_iv_of_clast_loop): Rewritten.
20743         (graphite_create_new_loop): Compute the lower and upper bound types
20744         with gcc_type_for_clast_expr.
20745         (graphite_create_new_loop_guard): Same.
20746         (find_cloog_iv_in_expr): Removed.
20747         (compute_cloog_iv_types_1): Removed.
20748         (compute_cloog_iv_types): Removed.
20749         (gloog): Do not call compute_cloog_iv_types.
20750         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
20751         GBB_CLOOG_IV_TYPES.
20752         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
20753         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
20754         (GBB_CLOOG_IV_TYPES): Removed.
20755
20756 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
20757
20758         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
20759         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
20760         (detect_commutative_reduction): Same.
20761
20762 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
20763
20764         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
20765         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
20766         argument.
20767         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
20768         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
20769         (rewrite_commutative_reductions_out_of_ssa): Same.
20770         * passes.c (execute_function_todo): Call verify_ssa for every pass
20771         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
20772         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
20773         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
20774         with an extra argument.
20775         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
20776         verify_ssa only when the extra argument is true.
20777         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
20778         with an extra argument.
20779         (tree_transform_and_unroll_loop): Same.
20780
20781 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
20782
20783         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
20784         for all the passes of the LNO having LOOP_CLOSED_SSA.
20785         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
20786         * tree-loop-distribution.c (pass_loop_distribution): Same.
20787         * tree-pass.h (TODO_verify_loops): Removed.
20788         * tree-ssa-loop.c (pass_tree_loop_init): Same.
20789         (pass_lim): Same.
20790         (pass_tree_unswitch): Same.
20791         (pass_predcom): Same.
20792         (pass_vectorize): Same.
20793         (pass_linear_transform): Same.
20794         (pass_graphite_transforms): Same.
20795         (pass_iv_canon): Same.
20796         (pass_complete_unroll): Same.
20797         (pass_complete_unrolli): Same.
20798         (pass_parallelize_loops): Same.
20799         (pass_loop_prefetch): Same.
20800         (pass_iv_optimize): Same.
20801
20802 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
20803
20804         PR middle-end/32824
20805         * passes.c (init_optimization_passes): Move pass_lim before
20806         pass_copy_prop and pass_dce_loop.
20807
20808 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
20809
20810         PR target/43667
20811         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
20812         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
20813         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
20814         MULTI_* defines for 4 argument vpermil2p* builtins.
20815
20816 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
20817
20818         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
20819         * config/i386/i386.c (x86_maybe_negate_const_int): New.
20820         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
20821         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
20822         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
20823         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
20824         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
20825         Use x86_maybe_negate_const_int to output insn mnemonic.
20826         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
20827         check from instruction predicate.  Update comments.
20828         * config/i386/sync.md (sync_add<mode>): Use
20829         x86_maybe_negate_const_int to output insn mnemonic.
20830
20831 2010-04-06  Jan Hubicka  <jh@suse.cz>
20832
20833         PR tree-optimization/42906
20834         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
20835         IGNORE_SELF argument.  Set visited_control_parents for fully
20836         processed BBs.
20837         (find_obviously_necessary_stmts): Update call of
20838         mark_control_dependent_edges_necessary.
20839         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
20840
20841 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
20842
20843         * config/i386/i386.md: Remove comment about 'e' and 'E'
20844         operand modifier.
20845
20846 2010-04-06  Richard Guenther  <rguenther@suse.de>
20847
20848         PR tree-optimization/43627
20849         * tree-vrp.c (extract_range_from_unary_expr): Widenings
20850         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
20851         not varying.
20852
20853 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
20854
20855         * BASE-VER: Change to 4.6.0.
20856
20857         PR target/43638
20858         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
20859         handling.
20860
20861 2010-04-06  Richard Guenther  <rguenther@suse.de>
20862
20863         PR middle-end/43661
20864         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
20865
20866 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20867
20868         * doc/invoke.texi (Optimize Options): Document that LTO
20869         won't remove object access purely due to incompatible
20870         declarations.
20871
20872 2010-04-04  Matthias Klose  <doko@ubuntu.com>
20873
20874         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
20875         Initialize variable.
20876
20877 2010-04-03  Richard Guenther  <rguenther@suse.de>
20878
20879         PR middle-end/42509
20880         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
20881         require a non-NULL MEM_OFFSET.
20882
20883 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
20884
20885         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
20886         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
20887         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
20888         config/alpha/predicates.md, config/arm/arm.md,
20889         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
20890         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
20891         config/darwin9.h, config/darwin.c, config/darwin.h,
20892         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
20893         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
20894         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
20895         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
20896         config/mips/mips.md, config/mn10300/mn10300.c,
20897         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
20898         config/rs6000/aix.h, config/rs6000/dfp.md,
20899         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
20900         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
20901         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
20902         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
20903         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
20904         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
20905         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
20906         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
20907         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
20908         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
20909         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
20910         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
20911         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
20912         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
20913         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
20914         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
20915         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
20916         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
20917         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
20918         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
20919         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
20920         opt-functions.awk, opth-gen.awk, params.def, passes.c,
20921         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
20922         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
20923         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
20924         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
20925         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
20926         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
20927         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
20928         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
20929         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
20930         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
20931         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
20932         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
20933         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
20934         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
20935
20936 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20937
20938         PR other/43620
20939         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
20940         * aclocal.m4: Regenerate.
20941
20942 2010-04-02  Richard Guenther  <rguenther@suse.de>
20943
20944         PR tree-optimization/43629
20945         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
20946         if we have seen a constant value.
20947
20948 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
20949
20950         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
20951
20952 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
20953
20954         PR target/43469
20955         * arm.c (legitimize_tls_address): Adjust call to
20956         gen_tls_load_dot_plus_four.
20957         (arm_note_pic_base): New function.
20958         (arm_cannot_copy_insn_p): Use it.
20959         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
20960         constraint.
20961
20962 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20963
20964         PR bootstrap/43531
20965
20966         Revert:
20967         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20968
20969         * Makefile.in ($(out_object_file)): Depend on
20970         gt-$(basename $(notdir $(out_file))).h.
20971
20972 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
20973
20974         * config.gcc (lm32-*-rtems*): Add t-lm32.
20975
20976 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
20977
20978         * config.gcc: Add lm32-*-rtems*.
20979         * config/lm32/rtems.h: New file.
20980
20981 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
20982
20983         PR target/42609
20984         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
20985
20986 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
20987
20988         * dwarf2out.c (output_compilation_unit_header): For
20989         -gdwarf-4 use version 4 instead of version 3.
20990         (output_line_info): For version 4 and above emit additional
20991         maximum ops per insn header field.
20992         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
20993
20994         * dwarf2out.c (is_c_family, is_java): Remove.
20995         (lower_bound_default): New function.
20996         (add_bound_info, gen_descr_array_type_die): Use it.
20997
20998 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
20999
21000         PR debug/43325
21001         * dwarf2out.c (gen_variable_die): Allow debug info for variable
21002         re-declaration when it happens in a function.
21003
21004 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
21005
21006         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
21007         (cgraph_remove_function_insertion_hook): Same.
21008         (cgraph_call_function_insertion_hooks): Same.
21009
21010 2010-04-01  Richard Guenther  <rguenther@suse.de>
21011
21012         PR middle-end/43614
21013         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
21014         and TREE_THIS_VOLATILE.
21015         (copy_ref_info): Likewise.
21016         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
21017         * tree.c (build6_stat): Ignore side-effects of all but arg5
21018         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
21019         TARGET_MEM_REF.
21020
21021 2010-04-01  Richard Guenther  <rguenther@suse.de>
21022
21023         PR tree-optimization/43607
21024         * ipa-type-escape.c (check_call): Do not access non-existing
21025         arguments.
21026
21027 2010-04-01  Richard Guenther  <rguenther@suse.de>
21028
21029         PR middle-end/43602
21030         Revert
21031         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
21032                     Jack Howarth  <howarth@bromo.med.uc.edu>
21033
21034         * tree-profile.c (tree_init_ic_make_global_vars): Make static
21035         variables TLS.
21036
21037 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21038
21039         * doc/install.texi (Prerequisites): Document libelf usability on
21040         IRIX 5/6 and Solaris 2.
21041         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
21042         Update GNU as, GNU ld requirements.
21043         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
21044         Document Sun Studio compiler download.
21045         Update and simplify as, ld recommendations.
21046         (Specific, *-*-solaris2.7): Note obsoletion, removal.
21047
21048 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21049
21050         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
21051         with_tune_32 to pentium4.
21052
21053 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
21054
21055         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
21056
21057 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21058
21059         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
21060         obsoletion, removal.
21061         Update IDO URL.
21062         Document GNU as requirement.
21063         Update configure requirements.
21064         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
21065         Recomment IRIX 6.5.18+.
21066         Document IDF/IDL requirement.
21067         Document GNU as requirement.
21068         Document GNU ld bootstrap failure.
21069         Remove freeware.sgi.com reference.
21070
21071 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21072
21073         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
21074         UNIX V4.0, V5.0 obsoletion, removal.
21075         Remove --with-gc=simple reference.
21076         Update VM requirements during bootstrap.
21077         Remove -oldas bootstrap description.
21078         Update binutils reference.
21079         Remove comparison failure note.
21080
21081 2010-03-31  Richard Guenther  <rguenther@suse.de>
21082             Zdenek Dvorak  <ook@ucw.cz>
21083             Sebastian Pop  <sebastian.pop@amd.com>
21084
21085         PR middle-end/43464
21086         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
21087         with multiple arguments.
21088         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
21089
21090 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
21091
21092         * graphite-dependences.c (print_pddr): Call print_pdr with an
21093         extra argument.
21094         * graphite-poly.c (debug_pdr): Add an extra argument for the
21095         verbosity level.
21096         (print_pdr): Same.
21097         (print_pbb_domain): Same.
21098         (print_pbb): Same.
21099         (print_scop_context): Same.
21100         (print_scop): Same.
21101         (print_cloog): Same.
21102         (debug_pbb_domain): Same.
21103         (debug_pbb): Same.
21104         (print_pdrs): Same.
21105         (debug_pdrs): Same.
21106         (debug_scop_context): Same.
21107         (debug_scop): Same.
21108         (debug_cloog): Same.
21109         (print_scop_params): Same.
21110         (debug_scop_params): Same.
21111         (print_iteration_domain): Same.
21112         (print_iteration_domains): Same.
21113         (debug_iteration_domain): Same.
21114         (debug_iteration_domains): Same.
21115         (print_scattering_function): Same.
21116         (print_scattering_functions): Same.
21117         (debug_scattering_function): Same.
21118         (debug_scattering_functions): Same.
21119         * graphite-poly.h (debug_pdr): Update declaration.
21120         (print_pdr): Same.
21121         (print_pbb_domain): Same.
21122         (print_pbb): Same.
21123         (print_scop_context): Same.
21124         (print_scop): Same.
21125         (print_cloog): Same.
21126         (debug_pbb_domain): Same.
21127         (debug_pbb): Same.
21128         (print_pdrs): Same.
21129         (debug_pdrs): Same.
21130         (debug_scop_context): Same.
21131         (debug_scop): Same.
21132         (debug_cloog): Same.
21133         (print_scop_params): Same.
21134         (debug_scop_params): Same.
21135         (print_iteration_domain): Same.
21136         (print_iteration_domains): Same.
21137         (debug_iteration_domain): Same.
21138         (debug_iteration_domains): Same.
21139         (print_scattering_function): Same.
21140         (print_scattering_functions): Same.
21141         (debug_scattering_function): Same.
21142         (debug_scattering_functions): Same.
21143
21144 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
21145
21146         * graphite-poly.c (print_scattering_function_1): New.
21147         (print_scattering_function): Call it.
21148         (print_scop_params): Remove spaces at the end of lines.
21149         (print_cloog): New.
21150         (debug_cloog): New.
21151         * graphite-poly.h (print_cloog): Declared.
21152         (debug_cloog): Declared.
21153
21154 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
21155
21156         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
21157         in loop->header.
21158         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
21159         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
21160         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
21161         to switch between adding the IV bump in loop->latch or in loop->header.
21162
21163 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
21164
21165         * graphite-poly.c (print_scattering_function): Pretty print following
21166         the scoplib format.
21167         (print_pdr): Same.
21168         (print_pbb_domain): Same.
21169         (dump_gbb_cases): Same.
21170         (dump_gbb_conditions): Same.
21171         (print_pdrs): Same.
21172         (print_pbb): Same.
21173         (print_scop_params): Same.
21174         (print_scop_context): Same.
21175         (print_scop): Same.
21176         (print_pbb_body): New.
21177         (lst_indent_to): New.
21178         (print_lst): Start new lines with a #.
21179         * graphite-poly.h (pbb_bb): New.
21180         (pbb_index): Use pbb_bb.
21181         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
21182         disjuncts.
21183         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
21184
21185 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
21186
21187         * dwarf2out.c (size_of_die): For -gdwarf-4 use
21188         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
21189         and 0 instead of 1 for dw_val_class_flag.
21190         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
21191         dw_val_class_range_list, dw_val_class_loc_list,
21192         dw_val_class_lineptr and dw_val_class_macptr, use
21193         DW_FORM_flag_present for dw_val_class_flag and
21194         DW_FORM_exprloc for dw_val_class_loc.
21195         (output_die): For -gdwarf-4 print dw_val_class_loc
21196         size as uleb128 instead of 1 or 2 bytes and don't print
21197         anything for dw_val_class_flag.
21198
21199         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
21200         instead of cselib_lookup following by tweaking locs->setting_insn.
21201
21202         PR bootstrap/43596
21203         * cselib.c (cselib_process_insn): Clear cselib_current_insn
21204         even before returning from label, setjmp call or volatile asm
21205         handling.
21206
21207 2010-03-31  Richard Guenther  <rguenther@suse.de>
21208
21209         PR middle-end/43600
21210         * cgraphunit.c (cgraph_output_in_order): Do not allocate
21211         temporary data on stack.
21212
21213 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21214
21215         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
21216         (PUSHSECTION_ASM_OP): Remove.
21217         (POPSECTION_ASM_OP): Remove.
21218         (PUSHSECTION_FORMAT): Remove.
21219         * config/sol2.h (PUSHSECTION_FORMAT): Define.
21220         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
21221         * config/sol2.c (solaris_output_init_fini): Use it.
21222
21223 2010-03-31  Jie Zhang  <jie@codesourcery.com>
21224
21225         PR 43574
21226         * opt-functions.awk (var_type_struct): Use signed char type
21227         for simple variables.
21228
21229 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21230
21231         * config/sol2.c: Include output.h.
21232         (solaris_assemble_visibility): New function.
21233         * config/t-sol2 (sol2.o): Add output.h dependency.
21234         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
21235         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
21236         Redefine.
21237
21238 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
21239
21240         PR target/43580
21241         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
21242         V2SImode or XFmode on PRE_DEC.
21243
21244         PR debug/43557
21245         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
21246         BLKmode.
21247
21248 2010-03-31  Jie Zhang  <jie@codesourcery.com>
21249
21250         PR 43562
21251         * reload.h (caller_save_initialized_p): Declare.
21252         * toplev.c (backend_init_target): Don't call
21253         init_caller_save but set caller_save_initialized_p to false.
21254         * caller-save.c (caller_save_initialized_p): Define.
21255         (init_caller_save): Check caller_save_initialized_p.
21256         * ira.c (ira): Call init_caller_save if flag_caller_saves.
21257
21258 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21259
21260         PR target/39048
21261         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
21262         and soft-fp/t-softfp to tmake_file.
21263         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
21264         (LIBGCC2_TF_CEXT): Define.
21265         (TF_SIZE): Define.
21266
21267 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
21268
21269         PR debug/42977
21270         * cselib.c (n_useless_values): Document handling of debug locs.
21271         (n_useless_debug_values, n_debug_values): New variables.
21272         (new_elt_loc_list): Don't add to debug values, keep count.
21273         (promote_debug_loc): New.
21274         (cselib_reset_table): Zero new variables.
21275         (entry_and_rtx_equal_p): Promote debug locs.
21276         (discard_useless_locs): Increment n_useless_debug_values for
21277         debug values.
21278         (remove_useless_values): Adjust n_useless_values and n_debug_values
21279         with n_useless_debug_values.
21280         (add_mem_for_addr): Promote debug locs.
21281         (cselib_lookup_mem): Likewise.
21282         (cselib_lookup_addr): Renamed to...
21283         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
21284         (cselib_log_lookup): ... this.  Turn into...
21285         (cselib_lookup_addr): ... new wrapper.
21286         (cselib_lookup_from_insn): New.
21287         (cselib_invalidate_regno): Increment n_useless_debug_values for
21288         debug values.
21289         (cselib_invalidate_mem): Likewise.
21290         (cselib_process_insn): Take n_deleted and n_debug_values into
21291         account to guard remove_useless_value call.
21292         (cselib_finish): Zero n_useless_debug_values.
21293         * cselib.h (cselib_lookup_from_insn): Declare.
21294         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
21295         (sched_analyze_2): Likewise.
21296
21297 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
21298
21299         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
21300         functions.
21301         (adjust_mems): Replace narrowing SUBREG of expression containing
21302         just PLUS, MINUS, MULT and ASHIFT of registers and constants
21303         with operations in the narrower mode.
21304
21305         PR debug/43593
21306         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
21307         regs_invalidated_by_call instead all call_used_reg_set registers.
21308
21309 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
21310
21311         PR middle-end/43430
21312         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
21313         pointer comparisons with types_compatible_p.
21314         * tree-vect-stmts.c (vectorizable_call): Same.
21315         (vectorizable_condition): Same.
21316
21317 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21318
21319         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
21320         stack check if the mask would be zero.
21321
21322 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
21323             Jack Howarth  <howarth@bromo.med.uc.edu>
21324
21325         * tree-profile.c (tree_init_ic_make_global_vars): Make static
21326         variables TLS.
21327
21328 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
21329
21330         PR other/25232
21331         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
21332         and __unordtf2.
21333         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
21334         Include ___unordxf2 and ___unordtf2.
21335         * config/i386/libgcc-glibc.ver: Do not define inheritance from
21336         GCC_4.4.0 here.
21337
21338 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
21339
21340         * config/lm32/t-lm32: New file.
21341         * config.gcc: Use the above file when targetting lm32.
21342
21343 2010-03-28  Duncan Sands  <baldrick@free.fr>
21344
21345         * Makefile.in (PLUGIN_HEADERS): Add except.h.
21346
21347 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
21348
21349         PR middle-end/43431
21350         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
21351         Improve vectorization cost model diagnostic.
21352
21353 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
21354
21355         PR middle-end/43436
21356         * tree-vect-data-refs.c (vect_analyze_data_refs): When
21357         compute_data_dependences_for_loop returns false, early exit
21358         and output an extra diagnostic for the failed data reference
21359         analysis.
21360
21361 2010-03-29  Richard Guenther  <rguenther@suse.de>
21362
21363         PR tree-optimization/43560
21364         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
21365         (can_sm_ref_p): Treat stores to readonly locations as trapping.
21366
21367 2010-03-29  Jie Zhang  <jie@codesourcery.com>
21368
21369         PR 43564
21370         * toplev.c (process_options): Set optimization_default_node
21371         and optimization_current_node.
21372         * opts.c (decode_options): Don't set optimization_default_node
21373         and optimization_current_node.
21374
21375 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
21376
21377         * config/rtems.h: Abandon -qrtems_debug.
21378
21379 2010-03-28  Jan Hubicka  <jh@suse.cz>
21380
21381         PR tree-optimization/43505
21382         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
21383         map should not be copied.
21384
21385 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21386
21387         PR middle-end/41674
21388         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
21389         cdtors, set DECL_PRESERVE_P.
21390         * ipa.c (cgraph_externally_visible_p): Return true if declaration
21391         should be preseved.
21392
21393 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
21394
21395         PR tree-optimization/43528
21396         * stor-layout.c (place_field): Check that constant fits into
21397         unsigned HWI when skipping calculation of MS bitfield layout.
21398
21399 2010-03-27  Jan Hubicka  <jh@suse.cz>
21400
21401         PR middle-end/43391
21402         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
21403         notice_global_symbol work.
21404
21405 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
21406
21407         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
21408         instead of dwarf2out_decl.
21409         (struct var_loc_node): Remove section_label field.
21410         (dwarf2out_function_decl): New function.
21411         (dwarf2out_var_location): Don't set section_label field.
21412         (dwarf2out_begin_function): Don't empty decl_loc_table here.
21413
21414 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
21415
21416         PR tree-optimization/43544
21417         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
21418         First argument for builtin vectorized function hook is now a
21419         tree to be able to distinguish between machine specific and
21420         standard builtins.
21421         * targhooks.c (default_builtin_vectorized_function): Ditto.
21422         * targhooks.h (default_builtin_vectorized_function): Ditto.
21423         * target.h (struct gcc_target): Ditto.
21424         * tree-vect-stmts.c (vectorizable_function): Ditto.
21425         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
21426         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
21427         Ditto.
21428
21429 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
21430
21431         PR c/43381
21432         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
21433         nested binding iff it is a FUNCTION_DECL.
21434         (store_parm_decls_newstyle): Pass nested=true to bind for
21435         FUNCTION_DECLs amongst parameters.
21436
21437 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
21438
21439         * var-tracking.c (vt_expand_loc_callback): Don't run
21440         cselib_expand_value_rtx_cb in dummy mode if
21441         cselib_dummy_expand_value_rtx_cb returned false.
21442
21443         * var-tracking.c (emit_note_insn_var_location): For one part
21444         notes with offset 0, don't add EXPR_LIST around the location.
21445         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
21446         add_location_or_const_value_attribute): Adjust for that change.
21447
21448         PR debug/43540
21449         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
21450         into first operand and location into second.
21451         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
21452         dw_cfi_oprnd_loc for DW_CFA_expression.
21453         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
21454         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
21455         assume first argument is regnum and second argument is location.
21456
21457 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
21458
21459         PR target/42113
21460         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
21461         of scratch register to DImode.  Split to DImode comparison operator.
21462         Use SImode subreg of scratch register in the multiplication.
21463         (*cmp_sadd_sidi): Ditto.
21464         (*cmp_ssub_si): Ditto.
21465         (*cmp_ssub_sidi): Ditto.
21466
21467 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
21468
21469         PR target/43524
21470         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
21471         Remove invalid assert and wrong comment.
21472
21473 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
21474
21475         PR debug/43516
21476         * flags.h (final_insns_dump_p): New extern.
21477         * final.c (final_insns_dump_p): New variable.
21478         (rest_of_clean_state): Set it before -fdump-final-insns=
21479         dumping, clear afterwards.
21480         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
21481         MEM_ALIAS_SET on MEMs.
21482
21483 2010-03-26  David S. Miller  <davem@davemloft.net>
21484
21485         * configure.ac: Fix sparc GOTDATA_OP bug check.
21486         * configure: Rebuild.
21487
21488 2010-03-26  Alan Modra  <amodra@gmail.com>
21489
21490         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
21491
21492 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21493
21494         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
21495         TLS_SECTION_ASM_FLAG.
21496
21497 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
21498
21499         PR bootstrap/43511
21500         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
21501         Clear first_function_block_is_cold.
21502
21503         PR c/43385
21504         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
21505         argument if the argument is truth_value_p.
21506
21507 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
21508
21509         * config/rs6000/constraints.md: Update copyright year for my changes.
21510
21511         PR target/43484
21512         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
21513         used in reg+reg addressing, swap registers.
21514
21515 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
21516
21517         PR debug/43293
21518         * target.h (struct gcc_target): Add code_end hook.
21519         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
21520         if not yet defined.
21521         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
21522         * toplev.c (compile_file): Call targetm.asm_out.code_end
21523         hook before unwind info/debug info output.
21524         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
21525         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
21526         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
21527         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
21528         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
21529         * config/i386/i386.c (ix86_file_end): Renamed to...
21530         (ix86_code_end): ... this.  Make static.  Don't call
21531         file_end_indicate_exec_stack.  Emit unwind info using
21532         final_start_function/final_end_function.
21533         (darwin_x86_file_end): Remove.
21534         (TARGET_ASM_CODE_END): Define.
21535         * config/i386/i386.h (TARGET_ASM_FILE_END,
21536         NEED_INDICATE_EXEC_STACK): Don't define.
21537         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
21538         (TARGET_ASM_FILE_END): Define to darwin_file_end.
21539         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
21540         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
21541
21542         PR target/43498
21543         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
21544         at the beginning and final_end_function at the end.
21545         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
21546
21547 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21548
21549         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
21550         and Sun as TLS syntax.
21551         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
21552         * configure: Regenerate.
21553         * config.in: Regenerate.
21554         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
21555         (default_elf_asm_named_section): Use it.
21556         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
21557         (i386_output_dwarf_dtprel): Likewise.
21558         (output_addr_const_extra): Likewise.
21559         (output_pic_addr_const): Lowercase @GOTTPOFF.
21560         (output_addr_const_extra): Likewise.
21561         (output_pic_addr_const): Lowercase @GOTNTPOFF.
21562         (output_addr_const_extra): Likewise.
21563         (output_pic_addr_const): Lowercase @INDNTPOFF.
21564         (output_addr_const_extra): Likewise.
21565         (output_pic_addr_const): Lowercase @NTPOFF.
21566         (output_addr_const_extra): Likewise.
21567         (output_pic_addr_const): Lowercase @TPOFF.
21568         (output_addr_const_extra): Likewise.
21569         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
21570         (*tls_global_dynamic_64): Likewise.
21571         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
21572         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
21573
21574         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
21575         (ASM_OUTPUT_TLS_COMMON): Use it.
21576         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
21577
21578         PR target/38118
21579         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
21580         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
21581         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
21582         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
21583         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
21584         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
21585
21586 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21587
21588         * config/i386/i386.c (override_options): Don't accept
21589         -mtls-dialect=sun any longer.
21590         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
21591         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
21592         (*tls_local_dynamic_base_32_sun): Likewise.
21593         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
21594
21595 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
21596
21597         PR debug/43508
21598         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
21599         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
21600
21601         PR debug/43479
21602         * ira.c (adjust_cleared_regs): New function.
21603         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
21604
21605         PR debug/19192
21606         PR debug/43479
21607         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
21608         from gimple_block.
21609         * expr.c (expand_expr_real): Restore previous
21610         curr_insn_source_location and curr_insn_block after
21611         expand_expr_real_1 call.
21612         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
21613         instead of expand_expr_real_1.
21614
21615 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
21616
21617         PR rtl-optimization/43413
21618         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
21619         hard regs too.
21620
21621 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
21622
21623         PR target/43348
21624         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
21625         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
21626
21627 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
21628
21629         * config/i386/i386.c (ix86_target_string): Add -mfma.
21630         Fix a typo in comment.
21631
21632 2010-03-22  Mike Stump  <mikestump@comcast.net>
21633
21634         PR target/23071
21635         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
21636         Don't overly align based upon packed packed fields.
21637
21638 2010-03-22  Jason Merrill  <jason@redhat.com>
21639
21640         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
21641         Use () rather than [], and move before the element type.
21642
21643 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21644
21645         * doc/configfiles.texi (Configuration Files): Removed
21646         fixinc/Makefile*, intl/Makefile.*.
21647         * doc/makefile.texi: Fixed markup. Abstract from version
21648         control system used.
21649         (Makefile): Removed obsolete gcc/java/parse.y example.
21650         * doc/sourcebuild.texi: Likewise.
21651         (Top Level): Added config, gnattools, libdecnumber, libgcc,
21652         libgomp, libssp.  Removed fastjar.
21653         (Miscellaneous Docs): Clarify location.
21654         Added COPYING3, COPYING3.LIB.
21655         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
21656
21657 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21658
21659         PR target/38085
21660         * config/i386/i386.c (x86_function_profiler)
21661         [!NO_PROFILE_COUNTERS]: Fix typo.
21662         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
21663         instead of callq.
21664
21665 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
21666             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21667
21668         * doc/sourcebuild.texi (Test Directives): Split into six
21669         subsections, with most of the current text in new subsections
21670         Directives, Selectors, and Final Actions.
21671         (Directives): Split list of test directives into multiple
21672         subsubsections.
21673         (Selectors): Describe use and syntax of selectors.
21674         (Effective-Target Keywords): Describe all existing keywords.
21675         (Add Options): Describe features for dg-add-options.
21676         (Require Support): Describe variants of dg-require-support.
21677         (Final Actions): Describe commands to use in dg-final.
21678
21679 2010-03-22  Michael Matz  <matz@suse.de>
21680
21681         PR middle-end/43475
21682         * recog.c (validate_replace_rtx_group): Replace also in
21683         REG_EQUAL and REG_EQUIV notes.
21684
21685 2010-03-22  Richard Guenther  <rguenther@suse.de>
21686
21687         PR tree-optimization/43390
21688         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
21689         sure vector extracts are type correct.
21690
21691 2010-03-22  Richard Guenther  <rguenther@suse.de>
21692
21693         PR middle-end/40106
21694         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
21695         x * sqrt (x) even when optimizing for size if the target
21696         has native support for sqrt.
21697
21698 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
21699
21700         * varasm.c (make_decl_rtl_for_debug): Also clear
21701         flag_mudflap for the duration of make_decl_rtl call.
21702
21703         PR debug/43443
21704         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
21705         locs from preserved VALUEs.
21706
21707 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21708
21709         PR middle-end/42718
21710         * pa.md (movmemsi): Set align to one if zero.
21711         (movmemdi): Likewise.
21712
21713 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
21714
21715         PR target/42321
21716         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
21717         with their corresponding prologue pushes.
21718
21719 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
21720
21721         PR target/43156
21722         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
21723         at the begining or end.
21724         (spu_expand_epilogue): Likewise.
21725
21726 2010-03-20  Richard Guenther  <rguenther@suse.de>
21727
21728         PR rtl-optimization/43438
21729         * combine.c (make_extraction): Properly zero-/sign-extend an
21730         extraction of the low part of a CONST_INT.  Also handle
21731         CONST_DOUBLE.
21732
21733 2010-03-19  Mike Stump  <mikestump@comcast.net>
21734
21735         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
21736         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
21737         (override_options): Use SUBTARGET32_DEFAULT_CPU.
21738
21739 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
21740
21741         PR c/43211
21742         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
21743         an error.
21744
21745 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
21746
21747         PR rtl-optimization/42258
21748         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
21749         use that may match DEF.
21750
21751         PR target/40697
21752         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
21753         the cost of loading the constant rather than assuming
21754         COSTS_N_INSNS (1).
21755         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
21756         outer code is AND, do the same tests as the andsi3 expander and
21757         return COSTS_N_INSNS (1) if and is cheap.
21758
21759         * optabs.c (avoid_expensive_constant): Fix formatting.
21760
21761 2010-03-19  Michael Matz  <matz@suse.de>
21762
21763         PR c++/43116
21764         * attribs.c (decl_attributes): When rebuilding a function pointer
21765         type use the same qualifiers as the original pointer type.
21766
21767 2010-03-19  Martin Jambor  <mjambor@suse.cz>
21768
21769         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
21770         and is_gimple_ip_invariant_address.
21771
21772 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21773
21774         Revert
21775         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21776
21777         * config/arm/arm.c (arm_override_options): Turn off
21778         flag_dwarf2_cfi_asm for AAPCS variants.
21779
21780 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21781
21782         PR target/43399
21783         * config/arm/arm.c (emit_multi_reg_push): Update comments.
21784         Use PRE_MODIFY instead of PRE_DEC.
21785         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
21786         (vfp_emit_fstmd): Likewise.
21787
21788 2010-03-19  Michael Matz  <matz@suse.de>
21789
21790         PR target/43305
21791         * builtins.c (expand_builtin_interclass_mathfn,
21792         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
21793         if that fails.
21794
21795 2010-03-19  Richard Guenther  <rguenther@suse.de>
21796
21797         PR tree-optimization/43415
21798         * tree-ssa-pre.c (phi_translate): Split out worker to ...
21799         (phi_translate_1): ... this.
21800         (phi_translate): Move all caching here.  Cache all NARY
21801         and REFERENCE translations.
21802
21803 2010-03-19  David S. Miller  <davem@davemloft.net>
21804
21805         With help from Eric Botcazou.
21806         * config/sparc/sparc.c: Include dwarf2out.h.
21807         (emit_pic_helper): Delete.
21808         (pic_helper_symbol_name): Delete.
21809         (pic_helper_emitted_p): Delete.
21810         (pic_helper_needed): New.
21811         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
21812         (get_pc_thunk_name): New.
21813         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
21814         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
21815         Set pic_helper_needed to true.  Don't call emit_pic_helper.
21816         (sparc_expand_prologue): Update load_pic_register call.
21817         (sparc_output_mi_thunk): Likewise.
21818         (sparc_file_end): Emit a hidden comdat symbol for the PIC
21819         thunk if possible.  Output CFI information as needed.
21820
21821 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
21822             Jack Howarth  <howarth@bromo.med.uc.edu>
21823
21824         PR target/36399
21825         * config/i386/i386.h: Fix ABI on darwin x86-32.
21826
21827 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
21828
21829         * tree.h: Declare make_decl_rtl_for_debug.
21830         * varasm.c (make_decl_rtl_for_debug): New.
21831         * dwarf2out.c (rtl_for_decl_location): Call it.
21832         * cfgexpand.c (expand_debug_expr): Call it.
21833
21834 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
21835
21836         PR bootstrap/43399
21837         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
21838         mem_mode.
21839
21840         PR bootstrap/43403
21841         * var-tracking.c (vt_init_cfa_base): Do nothing if
21842         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
21843
21844 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
21845
21846         PR debug/42873
21847         * var-tracking.c (canonicalize_vars_star): New.
21848         (dataflow_post_merge_adjust): Use it.
21849
21850 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
21851
21852         PR debug/43058
21853         * var-tracking.c (non_suitable_const): New function.
21854         (add_uses): For DEBUG_INSNs with constants, don't record any
21855         value, instead just the constant value itself.
21856         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
21857         is not VAR_LOC_UNKNOWN_P, set var to the constant.
21858         (emit_notes_in_bb): Likewise.
21859         (emit_note_insn_var_location): For onepart variables if
21860         cur_loc is a VOIDmode constant, use DECL_MODE.
21861
21862 2010-03-18  Martin Jambor  <mjambor@suse.cz>
21863
21864         PR middle-end/42450
21865         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
21866         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
21867         all non-clones.  Moved call redirection...
21868         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
21869         (cgraph_materialize_all_clones): Dispose of all
21870         combined_args_to_skip bitmaps.
21871         (verify_cgraph_node): Do not check for edges pointing to wrong
21872         nodes in inline clones.
21873         * tree-inline.c (copy_bb): Call
21874         cgraph_redirect_edge_call_stmt_to_callee.
21875         * ipa.c (cgraph_remove_unreachable_nodes): Call
21876         cgraph_node_remove_callees even when there are used clones.
21877
21878 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
21879
21880         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
21881
21882 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
21883
21884         PR target/43383
21885         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
21886         for 32bit.
21887
21888 2010-03-18  Michael Matz  <matz@suse.de>
21889
21890         PR middle-end/43419
21891         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
21892         into sqrt(x) if we need to preserve signed zeros.
21893
21894 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
21895             Eric Botcazou  <ebotcazou@adacore.com>
21896
21897         PR rtl-optimization/43360
21898         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
21899         note if we don't know its invariant status.
21900
21901 2010-03-18  Michael Matz  <matz@suse.de>
21902
21903         PR tree-optimization/43402
21904         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
21905         PHI chains of ssa names registered for update.
21906
21907 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
21908
21909         PR target/42427
21910         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
21911         non-offsettable and pre_modify update addressing.
21912         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
21913         and "2" alternatives "#".
21914         (*movdd_softfloat32): Make all alternatives "#";
21915         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
21916         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
21917         (*movdf_softfloat32): Make all alternatives "#";
21918         (movdi): Use the new DIFD mode iterator to create a common splitter
21919         for movdi, movdf and movdd patterns.
21920
21921 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
21922
21923         * common.opt (dumpdir): Remove redundant tab.
21924
21925 2010-03-17  Martin Jambor  <mjambor@suse.cz>
21926
21927         PR tree-optimization/43347
21928         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
21929         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
21930
21931 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
21932
21933         PR rtl-optimization/42216
21934         * regrename.c (create_new_chain): New function, broken out from...
21935         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
21936         appending a use to an empty chain.
21937         (build_def_use): Remove previous changes that convert OP_INOUT to
21938         OP_OUT operands; instead detect the case where an OP_INOUT operand
21939         uses a previously untracked register and create an empty chain for it.
21940
21941 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21942
21943         * doc/extend.texi (Function Attributes): Rewrite unfinished
21944         sentence in ms_abi documentation.
21945
21946 2010-03-17  Alan Modra  <amodra@gmail.com>
21947
21948         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
21949         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
21950         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
21951         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
21952
21953 2010-03-16  Richard Henderson  <rth@redhat.com>
21954
21955         PR middle-end/43365
21956         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
21957         (lower_try_finally): Save and restore eh_seq around the expansion
21958         of the try-finally.
21959
21960 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
21961
21962         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
21963         statements before splitting block.
21964
21965 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21966
21967         * doc/sourcebuild.texi (Testsuites): Fix markup.
21968         Use pathnames relative to gcc/testsuite.
21969         (Test Directives): Move description of how timeout is determined.
21970         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
21971         (C Tests): Correct gcc.misc-tests directory.
21972         Framework tests now live in gcc.test-framework.
21973
21974 2010-03-16  Richard Guenther  <rguenther@suse.de>
21975
21976         PR middle-end/43379
21977         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
21978         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
21979
21980 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
21981             Alexandre Oliva  <aoliva@redhat.com>
21982
21983         PR tree-optimization/42917
21984         * lambda-code.c (remove_iv): Skip debug statements.
21985         (lambda_loopnest_to_gcc_loopnest): Likewise.
21986         (not_interesting_stmt): Debug statements are not interesting.
21987
21988 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
21989
21990         PR debug/43051
21991         PR debug/43092
21992         * cselib.c (cselib_preserve_constants,
21993         cfa_base_preserved_val): New static variables.
21994         (preserve_only_constants): New function.
21995         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
21996         clear its REG_VALUES.  If cselib_preserve_constants, don't
21997         empty the whole hash table, but preserve there VALUEs with constants,
21998         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
21999         (cselib_preserve_cfa_base_value): New function.
22000         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
22001         (cselib_init): Change argument to int bitfield.  Set
22002         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
22003         is in it.
22004         (cselib_finish): Clear cselib_preserve_constants and
22005         cfa_base_preserved_val.
22006         * cselib.h (enum cselib_record_what): New enum.
22007         (cselib_init): Change argument to int.
22008         (cselib_preserve_cfa_base_value): New prototype.
22009         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
22010         * dse.c (dse_step1): Likewise.
22011         * cfgcleanup.c (thread_jump): Likewise.
22012         * sched-deps.c (sched_analyze): Likewise.
22013         * gcse.c (local_cprop_pass): Likewise.
22014         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
22015         If FN is non-NULL, call the callback always and whenever it returns
22016         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
22017         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
22018         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
22019         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
22020         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
22021         * var-tracking.c: Include recog.h.
22022         (bb_stack_adjust_offset): Remove.
22023         (vt_stack_adjustments): Don't call it, instead just gather the
22024         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
22025         (adjust_stack_reference): Remove.
22026         (compute_cfa_pointer): New function.
22027         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
22028         (struct adjust_mem_data): New type.
22029         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
22030         functions.
22031         (get_address_mode): New function.
22032         (replace_expr_with_values): Use it.
22033         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
22034         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
22035         (adjust_sets): Remove.
22036         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
22037         Use get_address_mode.
22038         (get_adjusted_src): Remove.
22039         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
22040         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
22041         (add_with_sets): Don't call adjust_sets.
22042         (fp_setter, vt_init_cfa_base): New functions.
22043         (vt_initialize): Change return type to bool.  Move most of pool etc.
22044         initialization to the beginning of the function from end.  Pass
22045         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
22046         If !frame_pointer_needed, call vt_stack_adjustment before mos
22047         vector is filled, call vt_init_cfa_base if argp/framep has been
22048         eliminated to sp.  If frame_pointer_needed and argp/framep has
22049         been eliminated to hard frame pointer, set
22050         hard_frame_pointer_adjustment and call vt_init_cfa_base after
22051         encountering fp setter in the prologue.  For MO_ADJUST, call
22052         log_op_type before pusing the op into mos vector, not afterwards.
22053         Call adjust_insn before cselib_process_insn/add_with_sets,
22054         call cancel_changes (0) afterwards.
22055         (variable_tracking_main_1): Adjust for vt_initialize calling
22056         vt_stack_adjustments and returning whether it succeeded or not.
22057
22058 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
22059
22060         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
22061         debug statements.
22062
22063 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
22064
22065         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
22066         has been set.
22067         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
22068         drap_reg has not been set.
22069
22070 2010-03-15  Michael Matz  <matz@suse.de>
22071
22072         PR middle-end/43300
22073         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
22074         use it to expand block copies.
22075         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
22076         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
22077         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
22078
22079 2010-03-15  Richard Guenther  <rguenther@suse.de>
22080
22081         PR tree-optimization/43367
22082         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
22083         elimination check.
22084
22085 2010-03-15  Richard Guenther  <rguenther@suse.de>
22086
22087         PR tree-optimization/43317
22088         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
22089
22090 2010-03-15  Martin Jambor  <mjambor@suse.cz>
22091
22092         PR tree-optimization/43141
22093         * tree-sra.c (create_abstract_origin): New function.
22094         (modify_function): Call create_abstract_origin.
22095
22096 2010-03-15  Chris Demetriou  <cgd@google.com>
22097
22098         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
22099         wasn't copied.
22100
22101 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22102
22103         PR middle-end/43354
22104         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
22105         call insert_out_of_ssa_copy for default definitions.
22106
22107 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22108
22109         * graphite-clast-to-gimple.c (my_long_long): Defined.
22110         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
22111         * graphite-sese-to-poly.c (my_long_long): Defined.
22112         (scop_ivs_can_be_represented): Use it.
22113
22114 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22115
22116         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
22117         graphite-max-bbs-per-function, and loop-block-tile-size.
22118         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
22119         with "maximum".
22120         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
22121
22122 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22123
22124         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
22125         forward declaration.
22126         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
22127         (add_upper_bounds_from_estimated_nit): New.
22128         (build_loop_iteration_domains): Use it.
22129
22130 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22131
22132         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
22133
22134 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22135
22136         PR middle-end/43306
22137         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
22138         should be an INTEGER_CST.  Also handle CASE_CONVERT.
22139
22140 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22141
22142         * graphite.c (graphite_initialize): To bound the number of bbs per
22143         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
22144         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
22145         * doc/invoke.texi: Document it.
22146
22147 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22148
22149         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
22150         * graphite-sese-to-poly.h (build_poly_scop): Same.
22151
22152 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22153
22154         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
22155         the number of parameters in the scop.  Use as an upper bound
22156         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
22157         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
22158         * doc/invoke.texi: Document it.
22159
22160 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
22161
22162         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
22163         * doc/c-tree.texi: Remove.
22164         * doc/generic.texi: Merge c-tree.texi here.
22165         * doc/gccint.texi (Trees): Remove menu entry.
22166         (c-tree.texi): Remove @include.
22167         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
22168         * doc/languages.texi (Reading RTL): Ditto.
22169
22170 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
22171
22172         PR target/42869
22173         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
22174
22175 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
22176
22177         PR middle-end/42431
22178         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
22179         code added to work around reload clobbering CONST insns.
22180
22181 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
22182
22183         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
22184         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
22185         (cselib_preserve_only_values): Remove retain argument, don't
22186         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
22187         * cselib.h (cselib_preserve_only_values): Remove retain argument.
22188         * var-tracking.c (micro_operation): Move insn field before union.
22189         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
22190         (struct variable_tracking_info_def): Remove n_mos field, change
22191         mos into a vector of micro_operations.
22192         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
22193         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
22194         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
22195         changing into a vector.
22196         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
22197         come before all other uops generated by add_stores.
22198         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
22199         argument removal.
22200         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
22201         a vector.  Run just one pass over the bbs instead of separate counting
22202         and computation phase.
22203         (vt_finalize): Free VTI (bb)->mos vector instead of array.
22204
22205         PR debug/43329
22206         * tree-inline.c (remap_decls): Put old_var rather than origin_var
22207         into *nonlocalized_list vector.
22208         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
22209         even if origin is non-NULL.
22210         (gen_variable_die): Likewise.
22211         (process_scope_var): Don't change origin.
22212         (gen_decl_die): Likewise.
22213         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
22214         before adding new edges instead of after it, fix moving over
22215         debug stmts.
22216
22217 2010-03-11  David S. Miller  <davem@davemloft.net>
22218
22219         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
22220         of four.
22221         * configure: Rebuild.
22222
22223 2010-03-11  Martin Jambor  <mjambor@suse.cz>
22224
22225         PR tree-optimization/43257
22226         * tree.c (assign_assembler_name_if_neeeded): New function.
22227         (free_lang_data_in_cgraph): Assembler name assignment moved to the
22228         above new function.
22229         * tree.h (assign_assembler_name_if_neeeded): Declare.
22230         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
22231         the function if needed.
22232
22233 2010-03-11  Chris Demetriou  <cgd@google.com>
22234
22235         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
22236         include/stdint-gcc.h, and include/stdint.h world-readable.
22237
22238 2010-03-11  Richard Guenther  <rguenther@suse.de>
22239
22240         PR tree-optimization/43255
22241         * tree-vrp.c (process_assert_insertions_for): Do not insert
22242         asserts for trivial conditions.
22243
22244 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22245
22246         PR tree-optimization/43280
22247         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
22248         generation.  Move calculation of size out of the if branch.
22249         (find_bswap): Modify compare number generation.
22250
22251 2010-03-11  Richard Guenther  <rguenther@suse.de>
22252
22253         PR lto/43200
22254         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
22255         (input_gimple_stmt): Fixup handled component types during
22256         operand read.  Also fix up decls in ADDR_EXPRs.
22257
22258 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
22259
22260         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
22261         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
22262
22263 2010-03-10  Jan Hubicka  <jh@suse.cz>
22264
22265         PR c/43288
22266         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
22267         * varasm.c (get_variable_section): Don't do that here...
22268         (make_decl_rtl): ... and here.
22269         (do_assemble_alias): Produce decl RTL.
22270         (assemble_alias): Likewise.
22271
22272 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
22273
22274         PR debug/43290
22275         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
22276         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
22277         of fde->vdrap_reg.
22278         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
22279         (based_loc_descr): Only express drap or vdrap regno based expressions
22280         using DW_OP_fbreg when not optimizing.
22281         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
22282         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
22283         REG_CFA_SET_VDRAP note.
22284
22285 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
22286
22287         PR tree-optimization/43236
22288         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
22289         error in calculation of base address in reverse iteration case.
22290         (generate_builtin): Take number of latch executions if the statement
22291         is in the latch.
22292
22293 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
22294
22295         PR middle-end/42859
22296         * tree-eh.c: Include pointer-set.h.
22297         (lower_eh_dispatch): Filter out duplicate case labels and
22298         remove the unneeded edge when the label is unused.  Return
22299         true when some edges are removed.
22300         (execute_lower_eh_dispatch): When any lowering resulted in
22301         removing an edge, also delete unreachable blocks.
22302
22303 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
22304
22305         PR bootstrap/43287
22306         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
22307         UNSPEC_MACHOPIC_OFFSET.
22308
22309 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
22310
22311         PR target/43294
22312         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
22313         (m68k_delegitimize_address): New function.
22314
22315 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
22316
22317         PR debug/43299
22318         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
22319
22320         PR debug/43299
22321         * var-tracking.c (adjust_sets): New function.
22322         (count_with_sets, add_with_sets): Use it.
22323         (get_adjusted_src): New inline function.
22324         (add_stores): Use it.
22325
22326         PR debug/43304
22327         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
22328         call cselib_dummy_expand_value_rtx_cb instead of
22329         cselib_expand_value_rtx_cb.
22330
22331         PR debug/43293
22332         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
22333         * config/i386/i386.c: Include debug.h and dwarf2out.h.
22334         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
22335         and .cfi_endproc around the pic thunks.
22336         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
22337         all queued unwind info register saves are saved before the call.
22338         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
22339         considered as sp-=4 for unwind info and the pop as sp+=4 which
22340         also clobbers dest, but doesn't actually restore it.
22341
22342         PR debug/43290
22343         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
22344         RTX_FRAME_RELATED_P.
22345
22346 2010-03-09  Jie Zhang  <jie@codesourcery.com>
22347
22348         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
22349         whitespaces in output template.
22350
22351 2010-03-09  Jie Zhang  <jie@codesourcery.com>
22352
22353         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
22354         out array boundary.
22355
22356 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
22357
22358         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
22359         builtins.exp in a separate job.
22360
22361 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22362
22363         * graphite-sese-to-poly.c (add_param_constraints): Use
22364         lower_bound_in_type and upper_bound_in_type.
22365
22366 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22367
22368         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
22369         instead of unsigned_type_node.
22370
22371 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22372             Reza Yazdani  <reza.yazdani@amd.com>
22373
22374         PR middle-end/43065
22375         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
22376         on pointer type parameters.
22377
22378 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
22379
22380         PR middle-end/42644
22381         PR middle-end/42130
22382         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
22383         handle conversions from pointer to integers.
22384         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
22385         induction variable, to be able to work with code generated by CLooG.
22386         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
22387         (build_poly_scop): Bail out if we cannot codegen a loop.
22388
22389 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
22390
22391         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
22392         code generation with gloog_error.
22393
22394 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22395
22396         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
22397         Call fold_convert on all the returned values.
22398         (expand_scalar_variables_expr): Pass to
22399         expand_scalar_variables_ssa_name the type of the resulting expression.
22400
22401 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22402
22403         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
22404         ppl_min_for_le_pointset.
22405         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
22406         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
22407
22408 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22409
22410         * graphite-dependences.c (map_into_dep_poly): Removed.
22411         (dependence_polyhedron_1): Use combine_context_id_scat.
22412
22413 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22414
22415         * graphite-poly.h (struct poly_scattering): Add layout documentation.
22416         (struct poly_bb): Same.
22417         (combine_context_id_scat): New.
22418
22419 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22420
22421         PR middle-end/42326
22422         * sese.c (name_defined_in_loop_p): Return false for default
22423         definitions.
22424
22425 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22426
22427         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
22428         and clean up the logic.
22429
22430 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22431
22432         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
22433         early return.
22434
22435 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
22436
22437         * var-tracking.c (remove_cselib_value_chains): Define only for
22438         ENABLE_CHECKING.
22439         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
22440         delete_slot_part, emit_notes_for_differences_1): Don't call
22441         remove_cselib_value_chains here.
22442         (set_slot_part, emit_notes_for_differences_2): Don't call
22443         add_cselib_value_chains here.
22444         (preserved_values): New vector.
22445         (preserve_value): New function.
22446         (add_uses, add_stores, vt_add_function_parameters): Use it
22447         instead of cselib_preserve_value.
22448         (changed_values_stack): New vector.
22449         (check_changed_vars_0): New function.
22450         (check_changed_vars_1, check_changed_vars_2): Use it.
22451         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
22452         changed_values_stack VALUEs.
22453         (vt_emit_notes): For all preserved_values call
22454         add_cselib_value_chains.  If ENABLE_CHECKING call
22455         remove_cselib_value_chains before verifying value_chains is empty.
22456         Initialize and free changed_values_stack.
22457         (vt_initialize): Initialize preserved_values.
22458         (vt_finalize): Free preserved_values.
22459
22460 2010-03-08  Richard Guenther  <rguenther@suse.de>
22461
22462         PR tree-optimization/43269
22463         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
22464         region detection.
22465
22466 2010-03-08  Martin Jambor  <mjambor@suse.cz>
22467
22468         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
22469         (ipa_is_param_called): Removed.
22470         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
22471         (ipa_print_node_params): Do not print the called flag.
22472         (ipa_write_node_info): Do not stream the called flag.
22473         (ipa_read_node_info): Likewise.
22474
22475 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
22476
22477         PR debug/43176
22478         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
22479         * cselib.c (struct expand_value_data): Add dummy field.
22480         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
22481         dummy to false.
22482         (cselib_dummy_expand_value_rtx_cb): New function.
22483         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
22484         any rtl.
22485         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
22486         * var-tracking.c: Include pointer-set.h.
22487         (variable): Change n_var_parts to char from int.  Add
22488         cur_loc_changed and in_changed_variables fields.
22489         (variable_canonicalize): Remove.
22490         (shared_var_p): New inline function.
22491         (unshare_variable): Maintain cur_loc_changed and
22492         in_changed_variables fields.  If var was in changed_variables,
22493         replace it there with new_var.  Just copy cur_loc instead of
22494         resetting it to something else.
22495         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
22496         (dataflow_set_union): Don't call variable_canonicalize.
22497         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
22498         of their DEBUG_EXPR_TREE_DECLs.
22499         (canonicalize_loc_order_check): Verify that cur_loc is NULL
22500         and in_changed_variables and cur_loc_changed is false.
22501         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
22502         and cur_loc_changed.  Don't update cur_loc here.
22503         (variable_merge_over_src): Don't call variable_canonicalize.
22504         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
22505         removing loc that is equal to cur_loc, clear cur_loc,
22506         set cur_loc_changed and ensure variable_was_changed is called.
22507         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
22508         compare pointers in cur_loc check, if it is equal to loc,
22509         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
22510         (variable_different_p): Remove compare_current_location argument,
22511         don't compare cur_loc.
22512         (dataflow_set_different_1): Adjust variable_different_p caller.
22513         (variable_was_changed): If dv had some var in changed_variables
22514         already, reset in_changed_variables flag for it and propagate
22515         cur_loc_changed over to the new variable.  On empty var
22516         always set cur_loc_changed.  Set in_changed_variables on whatever
22517         var is added to changed_variables.
22518         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
22519         Use shared_var_p.  When removing loc that is equal to cur_loc,
22520         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
22521         end, don't set it to something else, just call variable_was_changed.
22522         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
22523         loc being removed, clear cur_loc and set cur_loc_changed.
22524         Set cur_loc_changed if all locations have been removed.
22525         (struct expand_loc_callback_data): New type.
22526         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
22527         allocated.  Always create SUBREGs if simplify_subreg failed.
22528         Prefer to use cur_loc, when that fails and still in
22529         changed_variables (and seen first time) recompute it.  Set
22530         cur_loc_changed of variables which had to change cur_loc and
22531         compute elcd->cur_loc_changed if any of the subexpressions used
22532         had to change cur_loc.
22533         (vt_expand_loc): Adjust to pass arguments in
22534         expand_loc_callback_data structure.
22535         (vt_expand_loc_dummy): New function.
22536         (emitted_notes): New variable.
22537         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
22538         that weren't used for any other decl in current
22539         emit_notes_for_changes call call vt_expand_loc_dummy to update
22540         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
22541         first loc_chain location if NULL before.  Always use just
22542         cur_loc instead of first loc_chain location.  When cur_loc_changed
22543         is false, when not --enable-checking=rtl just don't emit any note.
22544         When rtl checking, compute the note and assert it is the same
22545         as previous note.  Clear cur_loc_changed and in_changed_variables
22546         at the end before removing from changed_variables.
22547         (check_changed_vars_3): New function.
22548         (emit_notes_for_changes): Traverse changed_vars to call
22549         check_changed_vars_3 on each changed var.
22550         (emit_notes_for_differences_1): Clear cur_loc_changed and
22551         in_changed_variables.  Recompute cur_loc of new_var.
22552         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
22553         (vt_emit_notes): Initialize and destroy emitted_notes.
22554
22555 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
22556
22557         PR rtl-optimization/42220
22558         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
22559         Use verify_reg_tracked to determine if we should use OP_OUT rather
22560         than OP_INOUT.
22561         (build_def_use): If we see an in-out operand for a register that we
22562         know nothing about, treat is an output if possible, fail the block if
22563         not.
22564
22565 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
22566
22567         PR debug/42897
22568         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
22569         permanently.
22570
22571 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
22572
22573         PR debug/42897
22574         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
22575         uses of relevant DEFs that are dead outside the loop too.
22576
22577 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
22578
22579         * var-tracking.c (dataflow_set_merge): Swap src and src2.
22580         Reverted:
22581         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
22582         PR debug/41371
22583         * var-tracking.c (values_to_unmark): New variable.
22584         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
22585         values_to_unmark vector.  Moved body to...
22586         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
22587         instead queue it into values_to_unmark vector.
22588         (vt_find_locations): Free values_to_unmark vector.
22589
22590 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
22591
22592         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
22593         (site.exp): Export them when plugins are enabled.
22594
22595 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
22596
22597         PR middle-end/42326
22598         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
22599         that contain scevs.
22600         (chrec_fold_multiply): Same.
22601
22602 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
22603
22604         PR c/43248
22605         * c-decl.c (build_compound_literal): Return early if init is
22606         an error_mark_node.
22607
22608 2010-03-04  Martin Jambor  <mjambor@suse.cz>
22609
22610         PR tree-optimization/43164
22611         PR tree-optimization/43191
22612         * tree-sra.c (type_consists_of_records_p): Reject records with
22613         zero-size bit-fields at the end.
22614
22615 2010-03-04  Mike Stump  <mikestump@comcast.net>
22616
22617         * Makefile.in (TAGS): Remove *.y.
22618
22619 2010-03-04  Richard Guenther  <rguenther@suse.de>
22620
22621         PR tree-optimization/40761
22622         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
22623         in reverse order.
22624         (my_rev_post_order_compute): New function.
22625         (init_pre): Call it.
22626
22627 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
22628
22629         PR middle-end/43209
22630         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
22631         decrease the cost of an IV candidate when the cost is infinite.
22632
22633 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22634
22635         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
22636         Use '3DNow!' for the extension of that name, ensure normal space
22637         after the string.
22638         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
22639
22640 2010-03-03  Jeff Law  <law@redhat.com>
22641
22642         * PR middle-end/32693
22643         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
22644         than gen_rtx_SUBREG.
22645         (extract_bit_field_1): Likewise.
22646
22647 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
22648
22649         * doc/sourcebuild.texi (Test directives): Document that arguments
22650         include-opts and exclude-opts are now optional for dg-skip-if,
22651         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
22652
22653 2010-03-03  Jason Merrill  <jason@redhat.com>
22654
22655         PR c++/12909
22656         * cgraph.h (varpool_node): Add extra_name field.
22657         * varpool.c (varpool_extra_name_alias): New.
22658         (varpool_assemble_decl): Emit extra name aliases.
22659         (varpool_mark_needed_node): Look past an extra name alias.
22660         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
22661         * lto-streamer-in.c (lto_input_tree): Read it.
22662         * lto-streamer-out.c (output_unreferenced_globals): Write it.
22663
22664 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
22665
22666         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
22667         (sparc*-*-solaris2*): ...this.
22668
22669 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
22670
22671         PR debug/43229
22672         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
22673         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
22674         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
22675         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
22676
22677         PR debug/43237
22678         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
22679         fallthrough to default handling, just with want_address 0 instead of 2.
22680         For single element lists, add_AT_loc directly, otherwise create an
22681         artificial variable DIE and stick location list to it.
22682
22683         PR debug/43177
22684         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
22685         (VAL_EXPR_HAS_REVERSE): Define.
22686         (reverse_op): New function.
22687         (add_stores): For reversible operations add an extra MO_VAL_USE.
22688
22689 2010-03-02  Jason Merrill  <jason@redhat.com>
22690
22691         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
22692
22693 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
22694
22695         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
22696         (sparc64-*-linux*): Likewise.
22697         (sparc64-*-solaris2*): Include assembler files before linker ones.
22698         (sparc-*-solaris2*): Simplify and reorder to match previous case.
22699         * config/sparc/gas.h: Delete.
22700         * config/sparc/sol2-64.h: Add copyright notice.
22701         * config/sparc/sol2-gas-bi.h: Likewise.
22702         * config/sparc/sol2-gld.h: Likewise.
22703         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
22704         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
22705         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
22706         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
22707         (sparc_elf_asm_named_section): Rename into...
22708         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
22709
22710 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
22711
22712         * config/alpha/alpha.c (override_options): Fix -mtune error message.
22713
22714 2010-03-02  Jeff Law  <law@redhat.com>
22715
22716         PR middle-end/42431
22717         * reload1.c (rtx_p, substitute_stack): Declare.
22718         (substitute): Record addresses of changed rtxs.
22719         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
22720         Restore the original rtx when complete.
22721         (reload): Free subsitute_stack when complete.
22722
22723 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
22724
22725         * doc/gccint.texi (menu): Add Testsuites as a chapter.
22726         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
22727         new chapter.
22728         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
22729         LTO Testing, gcov Testing, profopt Testing, compat Testing,
22730         Torture Tests): Change from subsection to section.
22731
22732 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
22733             Steven Bosscher  <steven@gcc.gnu.org>
22734
22735         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
22736         instead of bb.
22737
22738 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
22739
22740         PR middle-end/42640
22741         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
22742         the assignment from the new induction variable to the assignment
22743         of the value from the original loop PHI function.
22744
22745 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
22746             Daniel Jacobowitz  <dan@codesourcery.com>
22747
22748         * doc/sourcebuild.texi (Test directives): Clarify options to
22749         dg-skip-if.
22750
22751 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22752
22753         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
22754         Disable cfi directives unless GCC and gas agree on using read-only
22755         .eh_frame sections for 64-bit.
22756         * configure: Regenerate.
22757
22758 2010-03-01  Richard Guenther  <rguenther@suse.de>
22759
22760         PR tree-optimization/43220
22761         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
22762         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
22763
22764 2010-03-01  Richard Guenther  <rguenther@suse.de>
22765             Martin Jambor  <mjambor@suse.cz>
22766
22767         PR middle-end/41250
22768         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
22769         gimplified parameters.
22770
22771 2010-03-01  Christian Bruel  <christian.bruel@st.com>
22772
22773         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
22774
22775 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
22776
22777         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
22778
22779 2010-03-01  Richard Guenther  <rguenther@suse.de>
22780
22781         PR middle-end/43213
22782         * expr.c (expand_assignment): Use the alias-oracle to tell
22783         if the rhs aliases the result decl.
22784
22785 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22786
22787         PR pch/14940
22788         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
22789         to sol_gt_pch_get_address.
22790         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
22791         64-bit, SPARC and x86.
22792         (sol_gt_pch_get_address): New function.
22793
22794 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
22795
22796         * toplev.h (inform_n, error_n): Declare.
22797         * diagnostic.c (inform_n, error_n): New function.
22798
22799 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
22800
22801         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
22802         has no rtl yet when processing local_decls, queue it and recheck
22803         if deferred stack allocation hasn't assigned it rtl.
22804
22805 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
22806
22807         * config/sh/sh.c (unspec_bbr_uid): New.
22808         (gen_block_redirect): Use it instead of INSN_UID.
22809         (gen_far_branch): Likewise.
22810
22811 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
22812
22813         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
22814         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
22815
22816 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22817
22818         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
22819         (Warning Options): -Wno-conversion-null is valid for
22820         Objective-C++ as well.
22821         * doc/tm.texi (Named Address Spaces): Likewise.
22822         * doc/plugins.texi (Plugins): Replace TABs with spaces.
22823         * doc/tree-ssa.texi (Tree SSA): Likewise.
22824
22825 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
22826
22827         PR bootstrap/43202
22828         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
22829         by default.  Don't set the default arch for
22830         i[34567]86-*-darwin*|x86_64-*-darwin*.
22831
22832 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
22833
22834         PR bootstrap/43202
22835         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
22836         default.  Set the default 32bit/64bit archs with $with_arch
22837         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
22838
22839 2010-02-27  Richard Guenther  <rguenther@suse.de>
22840
22841         PR tree-optimization/43186
22842         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
22843         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
22844         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
22845         unroller iterations.
22846
22847 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
22848
22849         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
22850         required and i[34567]86-*-* targets don't support 64bit ISA.
22851
22852 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
22853
22854         PR ada/43096
22855         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
22856         the same alias set.
22857
22858 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
22859
22860         * config.gcc: Set the default arch at least to Prescott for
22861         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
22862         if SSE math is enabled.
22863
22864 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22865
22866         * diagnostic.c (diagnostic_initialize): Update.
22867         (diagnostic_report_diagnostic): Test inhibit_notes_p for
22868         informative notes.
22869         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
22870         (diagnostic_inhibit_notes): New.
22871         * toplev.c (process_options): inhibit notes with -fcompare-debug.
22872
22873 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22874
22875         PR c/20631
22876         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
22877         * doc/standards.texi: Likewise.
22878         * doc/extend.texi: Likewise.
22879         * doc/trouble.texi: Likewise.
22880         * doc/cppopts.texi: Likewise.
22881         * doc/install.texi: Likewise.
22882         * c.opt (std=c90,std=gnu90): New options.
22883         * c-opts.c (c_common_handle_option): Handle them.
22884
22885 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22886
22887         PR c/24577
22888         * c-decl.c (undeclared_variable): Use an informative note.
22889
22890 2010-02-26  Richard Guenther  <rguenther@suse.de>
22891
22892         PR tree-optimization/43186
22893         * gimple.h (gimple_fold): Remove.
22894         * gimple.c (gimple_fold): Remove.  Inline into single user ...
22895         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
22896         Try harder for conditions.
22897
22898 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
22899
22900         PR debug/43190
22901         * function.c (used_types_insert): Don't skip through named pointer
22902         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
22903         and it is different from the main variant's type.
22904
22905 2010-02-26  Nick Clifton  <nickc@redhat.com>
22906
22907         * config/rx/rx.md (sminsi3): Remove bogus alternative.
22908
22909 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
22910
22911         * config.gcc: Support --with-fpmath=sse for x86.
22912
22913         * config/i386/ssemath.h: New.
22914
22915         * doc/install.texi (--with-fpmath=sse): Documented.
22916
22917 2010-02-26  Richard Guenther  <rguenther@suse.de>
22918
22919         PR tree-optimization/43188
22920         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
22921         vector types of over-aligned element type.
22922
22923 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
22924
22925         PR target/43175
22926         * config/i386/i386.c (expand_vec_perm_blend): Use correct
22927         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
22928
22929 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
22930
22931         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
22932
22933 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
22934
22935         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
22936         * var-tracking.c: Include diagnostic.h.
22937         (debug_dv): New function.
22938         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
22939
22940         PR debug/43160
22941         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
22942         (add_value_chain, add_value_chains, remove_value_chain,
22943         remove_value_chains): Handle DEBUG_EXPRs.
22944         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
22945
22946         PR debug/43161
22947         * regcprop.c (struct queued_debug_insn_change): New type.
22948         (struct value_data_entry): Add debug_insn_changes field.
22949         (struct value_data): Add n_debug_insn_changes field.
22950         (debug_insn_changes_pool): New variable.
22951         (free_debug_insn_changes, apply_debug_insn_changes,
22952         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
22953         (kill_value_one_regno): Call free_debug_insn_changes if needed.
22954         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
22955         fields.
22956         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
22957         changes for them.
22958         (copyprop_hardreg_forward_1): Don't call apply_change_group for
22959         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
22960         changes, call cprop_find_used_regs via note_stores.
22961         (copyprop_hardreg_forward): When copying vd from predecessor
22962         which has any queued DEBUG_INSN changes, make sure the pointers are
22963         cleared.  At the end call df_analyze and then if there are any
22964         DEBUG_INSN changes queued at the end of some basic block for still
22965         live registers, apply them.
22966         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
22967
22968 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
22969
22970         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
22971         (arm*-*-*): Ditto.
22972
22973 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
22974
22975         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
22976         targets.  Set the default with_cpu/with_arch from arch/cpu.
22977         Allow x86-64 and native for with_cpu/with_arch.
22978
22979 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
22980
22981         * ebitmap.c: Change calls to verify_popcount with calls to
22982         sbitmap_verify_popcount.
22983         (ebitmap_clear_bit): Fixed map->cacheindex test and
22984         map>cache update when bit clearing results in an empty
22985         element.
22986
22987 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
22988
22989         PR target/43154
22990         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
22991         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
22992         and support both V2DF and V2DI modes.
22993         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
22994         support both V2DF and V2DI modes.
22995         (general): Delete trailing whitespace from a few patterns.
22996
22997         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22998         V2DF/V2DI interleave high/low builtins.
22999
23000         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
23001         new VSX builtins.
23002
23003         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
23004         interleave high/low functions.
23005
23006 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
23007
23008         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
23009         #pragma extern_prefix.
23010
23011 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
23012
23013         PR debug/43166
23014         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
23015         BLKmode, assert op0 is a MEM and just adjust its mode.
23016
23017         PR debug/43165
23018         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
23019         if bitpos isn't multiple of mode's bitsize.
23020
23021 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23022
23023         * c.opt (-ftemplate-depth=): New.
23024         (-ftemplate-depth-): Deprecate.
23025         * optc-gen.awk: Handle -ftemplate-depth=.
23026         * opth-gen.awk: Likewise.
23027         * c-opts.c (c_common_handle_option): Likewise.
23028         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
23029
23030 2010-02-24  Jason Merrill  <jason@redhat.com>
23031
23032         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
23033
23034 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23035
23036         * cfg.c (alloc_aux_for_block): Remove inline.
23037         (alloc_aux_for_edge): Likewise.
23038
23039 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23040
23041         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
23042
23043 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23044
23045         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
23046         * config/i386/sol2-gas.h: New file.
23047         * config.gcc (i[34567]86-*-solaris2*): Use it.
23048
23049 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23050
23051         PR c/43128
23052         * c-typeck.c (ep_convert_and_check): New.
23053         (build_conditional_expr): Use it.
23054         (build_binary_op): Likewise.
23055
23056 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
23057
23058         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
23059
23060         PR debug/43150
23061         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
23062         bounds even for -O+.
23063         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
23064         expr needs to have DECL_NAME set.
23065
23066 2010-02-24  Nick Clifton  <nickc@redhat.com>
23067
23068         * config/mep/mep.c: Include gimple.h.
23069         (mep_function_uses_sp): Delete unused function.
23070         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
23071         parameters.  Use unsigned integers to count args.  Return a
23072         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
23073
23074 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
23075
23076         PR target/43107
23077         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
23078         greater or equal to nelt instead of 2 * nelt.
23079         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
23080         with nelt - 1.
23081
23082 2010-02-23  Jason Merrill  <jason@redhat.com>
23083
23084         PR debug/42800
23085         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
23086         in cfun->local_decls even if they have register types.
23087
23088         PR c++/42837
23089         * stor-layout.c (place_field): Don't warn about unnecessary
23090         DECL_PACKED if the type is packed.
23091
23092 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
23093
23094         PR target/43139
23095         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
23096         GOTOFF relocs, even when the base reg isn't pic pointer.
23097
23098 2010-02-23  Michael Matz  <matz@suse.de>
23099
23100         PR debug/43077
23101         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
23102         (expand_gimple_basic_block): Generate and use debug temps if there
23103         are debug uses left after the last real use of TERed ssa names.
23104         Unlink debug immediate uses when they are expanded.
23105
23106 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23107
23108         PR 43123
23109         * config/i386/i386.c (override_options): Reorganise to provide
23110         better error messages.
23111
23112 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
23113
23114         PR middle-end/43083
23115         * graphite-scop-detection.c (create_single_exit_edge): Move
23116         the call to find_single_exit_edge to....
23117         (create_sese_edges): ...here.  Don't handle multiple edges
23118         exiting the function.
23119         (build_graphite_scops): Don't handle multiple edges
23120         exiting the function.
23121
23122 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
23123
23124         PR middle-end/43097
23125         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
23126         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
23127
23128 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
23129
23130         PR middle-end/43026
23131         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
23132
23133 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23134
23135         PR c++/43126
23136         * c-typeck.c (convert_arguments): Print declaration location.
23137         * c-common.c (validate_nargs): Rename as
23138         builtin_function_validate_nargs.
23139         (check_builtin_function_arguments): Update.
23140
23141 2010-02-22  Richard Guenther  <rguenther@suse.de>
23142
23143         PR lto/43045
23144         * tree-inline.c (declare_return_variable): Use the type of
23145         the call stmt lhs if available.
23146
23147 2010-02-22  Duncan Sands  <baldrick@free.fr>
23148
23149         * passes.c (register_pass): Always consider all pass lists when
23150         ref_pass_instance_number is zero.
23151
23152 2010-02-22  Richard Guenther  <rguenther@suse.de>
23153
23154         PR tree-optimization/42749
23155         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
23156         parameter.  Do arithmetic in the original type.
23157         (update_accumulator_with_ops): Likewise.
23158         (adjust_accumulator_values): Adjust.
23159
23160 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23161
23162         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
23163         (QI to BLKmode splitter): New splitter.
23164
23165 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
23166
23167         * config/i386/i386.c (initial_ix86_tune_features): Turn on
23168         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
23169
23170 2010-02-22  Richard Guenther  <rguenther@suse.de>
23171
23172         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
23173
23174 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
23175
23176         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
23177         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
23178         ($(T)crti.o, $(T)crtn.o): Remove rules.
23179
23180 2010-02-21  Tobias Burnus  <burnus@net-b.de>
23181
23182         PR fortran/35259
23183         * doc/invoke.texi (-fassociative-math): Document that this
23184         option is automatically enabled for Fortran.
23185
23186 2010-02-20  David S. Miller  <davem@davemloft.net>
23187
23188         * configure.ac: Test if linker and assembler properly support
23189         GOTDATA_OP relocations.
23190         * configure: Rebuild.
23191         * config.in: Likewise.
23192         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
23193         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
23194         (movsi_high_pic): Likewise.
23195         (movdi_lo_sum_pic): Likewise.
23196         (movdi_high_pic): Likewise.
23197         (movsi_pic_gotdata_op): New pattern.
23198         (movdi_pic_gotdata_op): Likewise.
23199         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
23200         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
23201
23202 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
23203
23204         PR target/43067
23205         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
23206         attribute to ssemul.
23207         (xop_mulv2div2di3_high): Ditto.
23208
23209 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23210
23211         PR c++/35669
23212         * c.opt (Wconversion-null): New option.
23213         * doc/invoke.texi (Wconversion-null): Document.
23214
23215 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23216
23217         * common.opt (Wlarger-than-): Add Undocumented.
23218
23219 2010-02-19  Mike Stump  <mikestump@comcast.net>
23220
23221         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
23222
23223 2010-02-19  Jason Merrill  <jason@redhat.com>
23224
23225         PR target/40332
23226         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
23227         * configure: Likewise.
23228
23229 2010-02-20  Alan Modra  <amodra@gmail.com>
23230
23231         PR middle-end/42344
23232         * cgraph.h (cgraph_make_decl_local): Declare.
23233         * cgraph.c (cgraph_make_decl_local): New function.
23234         (cgraph_make_node_local): Use it.
23235         * cgraphunit.c (cgraph_function_versioning): Likewise.
23236         * ipa.c (function_and_variable_visibility): Likewise.
23237
23238 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
23239
23240         PR bootstrap/43121
23241         * except.c (sjlj_emit_function_enter): Don't call
23242         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
23243         directly.
23244         * rtl.h (add_reg_br_prob_note): Remove prototype.
23245
23246 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23247
23248         PR 41779
23249         * c-common.c (conversion_warning): Remove widening conversions
23250         before checking the conversion of integers to reals.
23251
23252 2010-02-19  Mike Stump  <mikestump@comcast.net>
23253
23254         PR middle-end/43125
23255         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
23256
23257         PR objc/43061
23258         * cgraphunit.c (process_function_and_variable_attributes): Check
23259         DECL_PRESERVE_P instead of looking up attribute "used".
23260         * ipa-pure-const.c (check_decl): Likewise.
23261         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
23262         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
23263         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
23264         instead of attribute "used".
23265         * config/sol2-c.c (solaris_pragma_init): Likewise.
23266         (solaris_pragma_fini): Likewise.
23267
23268 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
23269
23270         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
23271         Use XCNEW instead of xcalloc.
23272         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
23273         XNEW instead of xmalloc.
23274         (get_fields): Use XNEWVEC instead of xmalloc.
23275
23276         PR debug/43084
23277         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
23278         populate vars array.
23279         (create_new_general_access): For debug stmts just reset value.
23280         (get_stmt_accesses): For accesses within debug stmts just record them
23281         using add_access_to_acc_sites instead of preventing the peeling or
23282         counting them as accesses.
23283
23284         PR middle-end/42233
23285         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
23286
23287 2010-02-19  Richard Guenther  <rguenther@suse.de>
23288
23289         PR tree-optimization/42916
23290         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
23291         instructions.
23292
23293 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
23294
23295         * configure.ac: Replace all uses of changequote in macro arguments
23296         with proper quoting.
23297
23298 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
23299
23300         PR middle-end/42233
23301         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
23302
23303 2010-02-19  Richard Guenther  <rguenther@suse.de>
23304
23305         PR tree-optimization/42944
23306         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
23307         test for aliasing with errno.
23308
23309 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
23310
23311         PR middle-end/42233
23312         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
23313         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
23314         * dojump.c: Include output.h.
23315         (inv): New inline function.
23316         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
23317         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
23318         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
23319         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
23320         argument, pass it down to other calls.
23321         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
23322         add REG_BR_PROB note to the conditional jump.
23323         * cfgexpand.c (add_reg_br_prob_note): Removed.
23324         (expand_gimple_cond): Don't call it, add the probability
23325         as last argument to jumpif_1/jumpifnot_1.
23326         * Makefile.in (dojump.o): Depend on output.h.
23327         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
23328         callers.
23329         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
23330         * stmt.c (do_jump_if_equal): Likewise.
23331         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
23332         * loop-unswitch.c (compare_and_jump_seq): Likewise.
23333         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
23334         Likewise.
23335         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
23336         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
23337         jumpifnot_1 callers.
23338         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
23339         callers.
23340         (store_expr): Adjust jumpifnot caller.
23341         (store_constructor): Adjust jumpif caller.
23342
23343         PR middle-end/42233
23344         * gimplify.c (gimple_boolify): For __builtin_expect call
23345         gimple_boolify also on its first argument.
23346
23347 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
23348
23349         * configure.ac (gnu-unique-object): Wrap regexps using [] in
23350         changequote block.
23351         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
23352         * configure: Regenerated.
23353
23354 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23355
23356         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
23357         lang_hooks.types_compatible_p instead of comptypes.
23358
23359 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
23360
23361         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
23362         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
23363         if __prefer_thumb__ is defined.
23364
23365 2010-02-18  Martin Jambor  <mjambor@suse.cz>
23366
23367         PR tree-optimization/43066
23368         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
23369         array with zero-sized element type.
23370
23371 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
23372
23373         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
23374         rtx, allocate struct var_loc_node here and return it to the
23375         caller, and only if it is actually needed.
23376         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
23377         move it earlier and return immediately if it returns NULL.
23378
23379 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
23380
23381         * config/sparc/gas.h: New file.  Restore
23382         TARGET_ASM_NAMED_SECTION to its ELF default.
23383         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
23384         check !HAVE_GNU_AS.
23385         * config/sparc/sparc.c (sparc_elf_asm_named_section):
23386         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
23387         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
23388         after sparc/sysv4.h.
23389
23390 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
23391
23392         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
23393
23394 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
23395
23396         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
23397         patterns from predicated pattern.
23398
23399 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
23400
23401         PR target/43103
23402         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
23403         for insn mnemonic suffix.
23404
23405 2010-02-17  Richard Guenther  <rguenther@suse.de>
23406
23407         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
23408         to loop PHI nodes.
23409
23410 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
23411
23412         PR debug/42918
23413         * caller-save.c (save_call_clobbered_regs): If BB ends with
23414         a DEBUG_INSN, move any notes in between last real insn and the last
23415         DEBUG_INSN after the last DEBUG_INSN.
23416
23417 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
23418
23419         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
23420         Fix return type.  Fix argument type.  Explain meaning of return value.
23421
23422 2010-02-16  Richard Guenther  <rguenther@suse.de>
23423
23424         PR tree-optimization/41043
23425         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
23426         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
23427         statements ...
23428         (vrp_visit_phi_node): ... but only for loop PHI nodes.
23429
23430 2010-02-16  Ira Rosen  <irar@il.ibm.com>
23431
23432         PR tree-optimization/43074
23433         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
23434         * tree-vect-loop.c (vect_analyze_loop_operations): Add
23435         vectorizable cycles in hybrid SLP check.
23436         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
23437
23438 2010-02-16  Richard Guenther  <rguenther@suse.de>
23439
23440         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
23441         (true_dependence): If memrefs_conflict_p computes must-alias
23442         trust it.  Move TBAA check after offset-based disambiguation.
23443         (canon_true_dependence): Likewise.
23444
23445 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
23446
23447         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
23448         * doc/invoke.texi: Document it.
23449         * var-tracking.c: Include toplev.h and params.h.
23450         (vt_find_locations): Return bool indicating success.  Compute
23451         hash sizes unconditionally.  Check new parameter, report.
23452         (variable_tracking_main_1): Check vt_find_locations results and
23453         retry.  Renamed from...
23454         (variable_tracking_main): ... this.  New wrapper to preserve
23455         flag_var_tracking_assignments.
23456         * Makefile.in (var-tracking.o): Adjust dependencies.
23457
23458 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
23459             Jakub Jelinek  <jakub@redhat.com>
23460
23461         PR target/42854
23462         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
23463         if weak_import attribute is present.
23464         * config/darwin.c (machopic_select_section): Likewise.
23465
23466 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
23467
23468         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
23469         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
23470         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
23471         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
23472
23473         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
23474         types.
23475
23476         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
23477         Fix argument types.
23478
23479         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
23480         Rewrite text to refer to the names.
23481
23482 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
23483
23484         * config/i386/i386-builtin-types.def
23485         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
23486         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
23487         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
23488         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
23489         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
23490         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
23491         IX86_BUILTIN_VPERMIL2PS256.
23492         (MULTI_ARG_4_DF2_DI_I): Defined.
23493         (MULTI_ARG_4_DF2_DI_I1): Defined.
23494         (MULTI_ARG_4_SF2_SI_I): Defined.
23495         (MULTI_ARG_4_SF2_SI_I1): Defined.
23496         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
23497         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
23498         __builtin_ia32_vpermil2ps256.
23499         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
23500         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
23501         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
23502         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
23503         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
23504         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
23505         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
23506         CODE_FOR_xop_vpermil2v8sf3.
23507         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
23508         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
23509         * config/i386/xopintrin.h (_mm_permute2_pd): New.
23510         (_mm256_permute2_pd): New.
23511         (_mm_permute2_ps): New.
23512         (_mm256_permute2_ps): New.
23513
23514 2010-02-15  Nick Clifton  <nickc@redhat.com>
23515
23516         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
23517         boolean parameters.  Use emit_jump_insn when emitting a pop
23518         instruction containing a return insn.
23519         (push): Use 'true' rather than '1' as second parameter to F.
23520         (h8300_expand_prologue): Likewise.
23521         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
23522         (h8300_expand_epilogue): Likewise.
23523
23524 2010-02-15  Richard Guenther  <rguenther@suse.de>
23525
23526         PR middle-end/43068
23527         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
23528         if that is zero.
23529
23530 2010-02-15  Nick Clifton  <nickc@redhat.com>
23531
23532         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
23533         delta.
23534
23535 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
23536
23537         * intl.c (fake_ngettext): New function.
23538         * intl.h (fake_ngettext): Declare.
23539         (ngettext): Define macro.
23540         * collect2.c (notice_translated): New function.
23541         (main): Use notice_translated and ngettext.
23542         * collect2.h (notice_translated): Declare.
23543
23544 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
23545
23546         * reorg.c (delete_computation): Comment fixes.
23547         * caller-save.c (setup_save_areas): Idem.
23548         * sel-sched-dump.c (dump_lv_set): Idem.
23549         * rtl.def: Idem.
23550
23551 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23552
23553         * config/s390/s390.c (s390_sched_init): New function.
23554         (TARGET_SCHED_INIT): Target hook defined.
23555
23556 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
23557             Jack Howarth  <howarth@bromo.med.uc.edu>
23558             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
23559
23560         PR target/42982
23561         Partial revert of unintended change in fix for PR41605.
23562         * config/darwin.h: Fix typo.
23563         * config/darwin9.h: Same.
23564
23565 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
23566
23567         * c-pch.c (pch_init): Clear v.
23568
23569 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
23570
23571         PR middle-end/42930
23572         * graphite-scop-detection.c (graphite_can_represent_scev): Call
23573         graphite_can_represent_init for MULT_EXPR.
23574
23575 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
23576
23577         PR middle-end/42914
23578         PR middle-end/42530
23579         * graphite-sese-to-poly.c (remove_phi): New.
23580         (translate_scalar_reduction_to_array): Call remove_phi.
23581
23582 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
23583
23584         PR middle-end/42771
23585         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
23586         * graphite-clast-to-gimple.h (gloog): Update declaration.
23587         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
23588         * graphite-poly.h (struct poly_bb): Add missing comments.
23589         (struct scop): Add poly_scop_p field.
23590         (POLY_SCOP_P): New.
23591         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
23592         * graphite.c (graphite_transform_loops): Build the polyhedral
23593         representation for each scop before code generation.
23594         * sese.c (rename_variables_in_operand): Removed.
23595         (rename_variables_in_expr): Return the renamed expression.
23596         (rename_sese_parameters): New.
23597         * sese.h (rename_sese_parameters): Declared.
23598
23599 2010-02-11  Richard Guenther  <rguenther@suse.de>
23600
23601         PR tree-optimization/42998
23602         * tree-ssa-pre.c (create_expression_by_pieces): Treat
23603         POINTER_PLUS_EXPR properly.
23604
23605 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
23606             Changpeng Fang  <changpeng.fang@amd.com>
23607
23608         PR middle-end/40886
23609         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
23610         the cost of an IV candidate when the IV is used in a test against zero.
23611
23612         * gcc.dg/tree-ssa/ivopts-3.c: New.
23613
23614 2010-02-11  Richard Guenther  <rguenther@suse.de>
23615
23616         PR lto/41664
23617         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
23618         pointer-vs-decl case by swapping refs.  Handle some cases
23619         of pointer-vs-decl disambiguations more conservatively.
23620         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
23621         to false after expanding.
23622
23623 2010-02-11  Richard Guenther  <rguenther@suse.de>
23624
23625         PR driver/43021
23626         * gcc.c (process_command): Handle LTO file@offset case more
23627         appropriately.
23628
23629 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
23630
23631         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
23632         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
23633         of DEBUG_INSNs.
23634         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
23635
23636         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
23637         if MEM's mode size isn't DWARF2_ADDR_SIZE.
23638         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
23639         Optimize eq/ne comparisons when both arguments are known to be
23640         zero-extended.
23641         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
23642         Don't mask operands unnecessarily if they are known to be already
23643         zero-extended.
23644
23645 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
23646
23647         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
23648         instead of loop.
23649
23650 2010-02-10  Richard Guenther  <rguenther@suse.de>
23651
23652         PR tree-optimization/43017
23653         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
23654         for wrapping signed arithmetic.
23655
23656 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
23657
23658         PR debug/43010
23659         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
23660         if no debug info should be emitted for it.
23661
23662 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
23663
23664         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
23665         note when flag_exceptions is set.
23666
23667 2010-02-10  Duncan Sands  <baldrick@free.fr>
23668
23669         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
23670
23671 2010-02-10  Richard Guenther  <rguenther@suse.de>
23672
23673         PR c/43007
23674         * tree.c (get_unwidened): Handle constants.
23675         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
23676
23677 2010-02-10  Martin Jambor  <mjambor@suse.cz>
23678
23679         PR lto/42985
23680         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
23681         check for variable argument counts independently.
23682
23683 2010-02-10  Christian Bruel  <christian.bruel@st.com>
23684
23685         PR target/42841
23686         * config/sh/sh.c (find_barrier): Increase length for non delayed
23687         conditional branches.
23688
23689 2010-02-10  Christian Bruel  <christian.bruel@st.com>
23690
23691         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
23692
23693 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
23694
23695         * builtins.c (set_builtin_user_assembler_name): Also handle
23696         ffs if int is smaller than word.
23697
23698 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
23699
23700         PR middle-end/42973
23701         * ira-conflicts.c (get_dup): Remove.
23702         (process_reg_shuffles): Add new parameter.  Use it as an
23703         additional guard for copy generation.
23704         (add_insn_allocno_copies): Rewrite.
23705
23706 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
23707
23708         * common.opt (fsched2-use-traces): Preserved for backward
23709         compatibility.
23710         * doc/invoke.texi: Remove the documentation about option
23711         -fsched2-use-traces.
23712         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
23713         flag_sched2_use_traces.
23714         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
23715         the backward compatibility flag section.
23716
23717 2010-02-09  Richard Guenther  <rguenther@suse.de>
23718
23719         PR tree-optimization/43008
23720         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
23721         make HEAP variables initialized from global memory if they
23722         are not known builtin functions.
23723         (find_func_aliases): Adjust.
23724
23725 2010-02-09  Richard Guenther  <rguenther@suse.de>
23726
23727         PR tree-optimization/43000
23728         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
23729         arithmetic manually.
23730
23731 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
23732
23733         PR tree-optimization/42931
23734         * tree-loop-linear.c (try_interchange_loops): Don't call
23735         double_int_mul if estimated_loop_iterations failed.
23736
23737 2010-02-08  Martin Jambor  <mjambor@suse.cz>
23738
23739         PR middle-end/42898
23740         * tree-sra.c (build_accesses_from_assign): Do not mark in
23741         should_scalarize_away_bitmap if stmt has volatile ops.
23742         (sra_modify_assign): Do not process assigns piecemeal if if stmt
23743         has volatile ops.
23744
23745 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
23746
23747         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
23748
23749 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
23750
23751         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
23752         before the pattern.
23753
23754 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
23755
23756         PR middle-end/42946
23757         * df-core.c (df_finish_pass): Change type of saved_flags to int.
23758
23759 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
23760
23761         PR middle-end/42988
23762         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
23763         to unknown_dependence.
23764         (graphite_legal_transform_dr): Handle the unknown_dependence.
23765         (graphite_carried_dependence_level_k): Same.
23766
23767 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
23768
23769         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
23770
23771 2010-02-07  Richard Guenther  <rguenther@suse.de>
23772
23773         PR middle-end/42991
23774         * expr.c (get_inner_reference): Always initialize *pbitsize.
23775
23776 2010-02-07  Richard Guenther  <rguenther@suse.de>
23777
23778         PR middle-end/42956
23779         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
23780         new ARRAY_REFs on variable size element or minimal index arrays.
23781         Complete.
23782         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
23783         gimple_fold_indirect_ref.
23784
23785 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
23786
23787         PR target/42957
23788         * arm.c (arm_override_options): Just return if the user has specified
23789         an invalid fpu name.
23790
23791 2010-02-03  Jason Merrill  <jason@redhat.com>
23792
23793         PR c++/42870
23794         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
23795         i386_pe_maybe_record_exported_symbol.
23796
23797 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
23798
23799         PR target/42924
23800         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
23801         (pa_delegitimize_address): New function.
23802
23803 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
23804
23805         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
23806         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
23807
23808 2010-02-05  Richard Guenther  <rguenther@suse.de>
23809
23810         PR lto/42762
23811         * lto-streamer-in.c (get_resolution): Deal with references
23812         to undefined functions.
23813
23814 2010-02-05  Richard Guenther  <rguenther@suse.de>
23815
23816         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
23817         (fold_const_aggregate_ref): Likewise.
23818         (ccp_fold_stmt): Substitute loads.
23819         (maybe_fold_reference): Verify types before substituting.
23820         Unshare properly.
23821         (fold_gimple_assign): Unshare properly.
23822         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
23823
23824 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
23825
23826         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
23827         for rs6000_gen_cell_microcode.
23828
23829 2010-02-04  Richard Guenther  <rguenther@suse.de>
23830
23831         PR rtl-optimization/42952
23832         * dse.c (const_or_frame_p): Remove MEM handling.
23833
23834 2010-02-04  Nick Clifton  <nickc@redhat.com>
23835
23836         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
23837         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
23838         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
23839         (mn10300_asm_output_mi_thunk): New function.
23840         (mn10300_can_output_mu_thunk): New function.
23841         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
23842         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
23843         (FUNCTION_ARG): Delete incorrect comment.
23844
23845 2010-02-03  Jason Merrill  <jason@redhat.com>
23846
23847         PR c++/40138
23848         * fold-const.c (operand_equal_p): Handle erroneous types.
23849
23850 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
23851
23852         * config/h8300/h8300.md (can_delay): Fix attibute condition.
23853
23854 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
23855
23856         PR rtl-optimization/42941
23857         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
23858         of xmalloc.
23859
23860 2010-02-03  Jason Merrill  <jason@redhat.com>
23861
23862         PR c++/35652
23863         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
23864
23865 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
23866
23867         PR debug/42896
23868         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
23869         (cselib_reset_table): Renamed from...
23870         (cselib_reset_table_with_next_value): ... this.
23871         (cselib_get_next_uid): Renamed from...
23872         (cselib_get_next_unknown_value): ... this.
23873         * cselib.c (next_uid): Renamed from...
23874         (next_unknown_value): ... this.
23875         (cselib_clear_table): Adjust.
23876         (cselib_reset_table): Adjust.  Renamed from...
23877         (cselib_reset_table_with_next_value): ... this.
23878         (cselib_get_next_uid): Adjust.  Renamed from...
23879         (cselib_get_next_unknown_value): ... this.
23880         (get_value_hash): Use hash.
23881         (cselib_hash_rtx): Likewise.
23882         (new_cselib_val): Adjust.  Set and dump uid.
23883         (cselib_lookup_mem): Pass next_uid as hash.
23884         (cselib_subst_to_values): Likewise.
23885         (cselib_log_lookup): Dump uid.
23886         (cselib_lookup): Pass next_uid as hash.  Adjust.
23887         (cselib_process_insn): Adjust.
23888         (cselib_init): Initialize next_uid.
23889         (cselib_finish): Adjust.
23890         (dump_cselib_table): Likewise.
23891         * dse.c (canon_address): Dump value uid.
23892         * print-rtl.c (print_rtx): Print value uid.
23893         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
23894         (dvuid): New type.
23895         (dv_uid): New function, sort of renamed from...
23896         (dv_htab_hash): ... this, reimplemented in terms of it and...
23897         (dv_uid2hash): ... this.  New.
23898         (variable_htab_eq): Drop excess assertions.
23899         (tie_break_pointers): Removed.
23900         (canon_value_cmp): Compare uids.
23901         (variable_post_merge_New_vals): Print uids.
23902         (vt_add_function_parameters): Adjust.
23903         (vt_initialize): Reset table.  Adjust.
23904
23905 2010-02-03  Richard Guenther  <rguenther@suse.de>
23906
23907         PR tree-optimization/42944
23908         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
23909         (call_may_clobber_ref_p_1): Likewise.  Properly handle
23910         malloc and calloc clobbering errno.
23911
23912 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
23913
23914         * doc/invoke.texi: Fix name of sched1 dump.
23915
23916         * opts.c (decode_options): Set flag_tree_switch_conversion
23917         only conditionally on optimize >= 2.
23918
23919         * gcse.c: Assorted comment fixes in pass description.
23920
23921 2010-02-03  Anthony Green  <green@moxielogic.com>
23922
23923         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
23924         nop padding in order to maintain alignment of storage location of
23925         target function address.
23926         (moxie_trampoline_init): Store target function address at newly
23927         aligned location.
23928         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
23929         to 32.
23930         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
23931
23932 2010-02-03  Richard Guenther  <rguenther@suse.de>
23933
23934         PR middle-end/42927
23935         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
23936
23937 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23938
23939         * config.gcc: Reenable check for obsolete targets.
23940         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
23941         mips-sgi-irix6.[0-4]*.
23942
23943 2010-02-02  Nick Clifton  <nickc@redhat.com>
23944
23945         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
23946         constant size of 4 as being the same as 0.
23947         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
23948         can take values in the range 0..4.
23949
23950 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
23951
23952         PR java/41991
23953         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
23954         as _darwin10_Unwind_FindEnclosingFunction().
23955         * libgcc-libsystem.ver: New.
23956
23957 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
23958
23959         PR target/41399
23960         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
23961         implicitly set registers.
23962
23963 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
23964
23965         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
23966         (arm_override_options): Allow automatic selection of the thread
23967         pointer register if thumb2.
23968         (legitimize_pic_address): Improve code sequences for Thumb2.
23969         (arm_call_tls_get_addr): Likewise.
23970         (legitimize_tls_address): Likewise.
23971         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
23972         (pic_load_addr_32bit): ... this.  New named pattern.
23973         * thumb2.md (pic_load_addr_thumb2): Delete.
23974         (pic_load_dot_plus_four): Delete.
23975         (tls_load_dot_plus_four): New named pattern.
23976
23977 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23978
23979         PR libgomp/29986
23980         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
23981         Document fix for TLS bug.
23982
23983 2010-01-31  Richard Guenther  <rguenther@suse.de>
23984
23985         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
23986         conservatively correct.
23987
23988 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23989
23990         PR target/42850
23991         Revert:
23992         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23993
23994         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
23995
23996 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23997
23998         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
23999
24000 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
24001
24002         * config.gcc: Adjust order of makefile fragments for mingw targets.
24003
24004 2010-01-31  Richard Guenther  <rguenther@suse.de>
24005
24006         PR middle-end/42898
24007         * gimplify.c (gimplify_init_constructor): For volatile LHS
24008         initialize a temporary.
24009
24010 2010-01-31  Matthias Klose  <doko@ubuntu.com>
24011
24012         * configure.ac: Fix __stack_chk_fail check for cross builds configured
24013         --with-headers
24014         * configure: Regenerate.
24015
24016 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
24017
24018         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
24019         the same alias set and their sizes different constantness.
24020         (aliasing_component_refs_p): Revert 2009-10-24 change.
24021
24022 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24023
24024         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
24025         unused.
24026
24027 2010-01-29  Richard Guenther  <rguenther@suse.de>
24028
24029         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
24030         Assert we successfully updated the call.
24031
24032 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
24033
24034         PR rtl-optimization/42889
24035         * df.h (df_set_bb_dirty_nonlr): New prototype.
24036         * df-core.c (df_set_bb_dirty_nonlr): New function.
24037         * df-scan.c (df_insn_rescan): Call it instead of
24038         df_set_bb_dirty for DEBUG_INSNs.
24039
24040 2010-01-29  Richard Guenther  <rguenther@suse.de>
24041
24042         PR middle-end/37448
24043         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
24044         quadratic behavior in most cases.
24045
24046 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
24047
24048         PR target/42891
24049         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
24050         in the call to gen_x86_movsicc_0_m1.
24051
24052 2010-01-28  Richard Guenther  <rguenther@suse.de>
24053
24054         PR tree-optimization/42871
24055         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
24056
24057 2010-01-28  Richard Guenther  <rguenther@suse.de>
24058
24059         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
24060         into call arguments.
24061
24062 2010-01-28  Richard Guenther  <rguenther@suse.de>
24063
24064         PR middle-end/42883
24065         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
24066         the forwarder if the destination is an EH landing pad.
24067
24068 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
24069
24070         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
24071         block list passed to gimple_duplicate_sese_tail.
24072         (parallelize_loops): Avoid parallelization when the function
24073         has_nonlocal_label.
24074         Avoid parallelization when the preheader is IRREDUCIBLE.
24075         Try to optimize when estimated_loop_iterations_int is unresolved.
24076         Add the loop's location to the dump file.
24077         * tree-cfg.c (add_phi_args_after_redirect): Remove.
24078         (gimple_duplicate_sese_tail): Remove the check for the latch.
24079         Redirect nexits to the exit block.
24080         Remove handling of the incoming edges to the latch.
24081         Redirect the backedge from the copied latch to the exit bb.
24082
24083 2010-01-28  Michael Matz  <matz@suse.de>
24084
24085         PR target/42881
24086         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
24087         Wrap force_reg into a sequence, emit it before user.
24088
24089 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
24090
24091         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
24092         (arm_rev): New.
24093         (arm_legacy_rev): Likewise.
24094         (thumb_legacy_rev): Likewise.
24095
24096 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
24097
24098         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
24099         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
24100         on MEM's address failed, try avoid_constant_pool_reference and
24101         recurse if it returned something different.
24102         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
24103         address, try avoid_constant_pool_reference and recurse if it
24104         returned something different.
24105         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
24106         address and avoid_constant_pool_reference returned something
24107         different, don't set have_address.
24108
24109 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
24110
24111         PR debug/42861
24112         * var-tracking.c (val_store): Add modified argument, obey it.
24113         Adjust callers.
24114         (count_uses): Move down logging of main.
24115         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
24116         don't need resolution.
24117         (emit_notes_in_bb): Likewise.
24118
24119 2010-01-27  Richard Guenther  <rguenther@suse.de>
24120
24121         PR middle-end/42878
24122         * tree-inline.c (remap_decl): Delay remapping of SSA name
24123         default definitions until we need them.
24124
24125 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
24126
24127         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
24128         (rs6000_delegitimize_address): New function.
24129
24130         * config/s390/s390.c (s390_delegitimize_address): Call
24131         delegitimize_mem_from_attrs.
24132
24133         PR middle-end/42874
24134         * tree-inline.c (cannot_copy_type_1): Removed.
24135         (copy_forbidden): Don't forbid copying of functions containing
24136         records/unions with variable length fields.
24137
24138 2010-01-27  Christian Bruel  <christian.bruel@st.com>
24139
24140         Revert:
24141         PR target/42841
24142         * config/sh/sh.c (find_barrier): Increase length for non delayed
24143         conditional branches.
24144
24145 2010-01-27  Matthias Klose  <doko@ubuntu.com>
24146
24147         * configure.ac (gnu-unique-object): Fix ldd version check.
24148         * configure: Regenerate.
24149
24150 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24151
24152         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
24153         HAVE_GNU_AS value.
24154         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
24155         Test for HAVE_GNU_AS value.
24156
24157 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24158
24159         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
24160         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
24161         INT64_TYPE): Define.
24162         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
24163         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
24164         INT_LEAST64_TYPE): Define.
24165         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
24166         UINT_LEAST64_TYPE): Define.
24167         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
24168         INT_FAST64_TYPE): Define.
24169         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
24170         UINT_FAST64_TYPE): Define.
24171         (INTMAX_TYPE, UINTMAX_TYPE): Define.
24172         (INTPTR_TYPE, UINTPTR_TYPE): Define.
24173         (SIG_ATOMIC_TYPE): Define.
24174
24175 2010-01-26  Richard Guenther  <rguenther@suse.de>
24176
24177         * df-scan.c (df_scan_set_bb_info): Remove assert.
24178         (df_insn_rescan_debug_internal): Merge asserts.
24179         (df_install_ref): Likewise.
24180         (df_mark_reg): Use bitmap_set_range.
24181         (df_hard_reg_used_p): Remove assert.
24182         (df_hard_reg_used_count): Likewise.
24183
24184 2010-01-26  Richard Guenther  <rguenther@suse.de>
24185
24186         PR rtl-optimization/42685
24187         * web.c (web_main): Ignore DEBUG_INSNs.
24188
24189 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
24190
24191         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
24192
24193         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
24194         Fix types of fndecl and arglist parameters.
24195
24196 2010-01-26  Richard Guenther  <rguenther@suse.de>
24197
24198         PR middle-end/42806
24199         * tree-eh.c (unsplit_eh): Skip debug insns.
24200
24201 2010-01-26  Richard Guenther  <rguenther@suse.de>
24202
24203         PR tree-optimization/42250
24204         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
24205
24206 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
24207
24208         PR fortran/42866
24209         * omp-low.c (expand_omp_sections): Only use single_pred if
24210         l2_bb is single_pred_p.
24211
24212 2010-01-25  Christian Bruel  <christian.bruel@st.com>
24213
24214         PR target/42841
24215         * config/sh/sh.c (find_barrier): Increase length for non delayed
24216         conditional branches.
24217         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
24218
24219 2010-01-24  David S. Miller  <davem@davemloft.net>
24220
24221         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
24222         define if not using GAS.
24223         * config/sparc/sparc.c (sparc_elf_asm_named_section):
24224         Likewise.  Delete SECTION_MERGE code, which is only applicable
24225         when using GAS.
24226
24227 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
24228
24229         PR c++/42748
24230         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
24231         mangling of va_list in system headers.
24232
24233 2010-01-23  Toon Moene  <toon@moene.org>
24234
24235         * tree-predcom.c (combine_chains): Return NULL, not false.
24236
24237 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
24238
24239         * tree-loop-distribution.c (distribute_loop): Fix declaration and
24240         initialization of variable res to agree with return type.
24241
24242 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
24243
24244         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
24245         * tree-sra.c: Add include of expr.h.
24246
24247 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
24248
24249         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
24250         insert the debug stmt on the single non-EH edge from the stmt.
24251
24252 2010-01-22  Richard Henderson  <rth@redhat.com>
24253
24254         PR tree-opt/42833
24255         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
24256         the RHS until after generate_subtree_copies has insertted its
24257         code before the current statement.
24258
24259 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
24260
24261         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
24262
24263         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
24264
24265 2010-01-21  Martin Jambor  <mjambor@suse.cz>
24266
24267         PR tree-optimization/42585
24268         * tree-sra.c (struct access): New field grp_total_scalarization.
24269         (dump_access): Dump the new field.
24270         (should_scalarize_away_bitmap): New variable.
24271         (cannot_scalarize_away_bitmap): Likewise.
24272         (sra_initialize): Allocate new bitmaps.
24273         (sra_deinitialize): Free new bitmaps.
24274         (create_access_1): New function.
24275         (create_access): Parts moved to create_access_1.
24276         (type_consists_of_records_p): New function.
24277         (completely_scalarize_record): Likewise.
24278         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
24279         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
24280         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
24281         access.
24282         (analyze_all_variable_accesses): Completely scalarize small eligible
24283         records.
24284
24285 2010-01-21  Martin Jambor  <mjambor@suse.cz>
24286
24287         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
24288
24289 2010-01-21  Andrew Haley  <aph@redhat.com>
24290
24291         * gcc.c (process_command): Move lang_specific_driver before
24292         setting cc_libexec_prefix.
24293
24294 2010-01-21  Richard Guenther  <rguenther@suse.de>
24295
24296         PR middle-end/19988
24297         * fold-const.c (negate_expr_p): Pretend only negative
24298         real constants are easily negatable.
24299
24300 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
24301             Jason Merrill  <jason@redhat.com>
24302
24303         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
24304         (TYPE_TRANSPARENT_AGGR): this, for union and record.
24305         * calls.c (initialize argument_information): Handle it.
24306         * c-common.c (handle_transparent_union_attribute): Use new name.
24307         * c-decl.c (finish_struct): Ditto.
24308         * c-typeck.c (type_lists_compatible_p): Ditto.
24309         (convert_for_assignment): Use new name and also handle record.
24310         * function.c (aggregate_value_p): Handle it.
24311         (pass_by_reference): Ditto.
24312         (assign_parm_data_types): Ditto.
24313         * print-tree.c (print_node): Ditto.
24314         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
24315         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
24316         * tree.c (first_field): New fn.
24317
24318 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
24319
24320         PR target/42818
24321         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
24322         even when linking statically, for now.
24323
24324 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
24325
24326         PR debug/42715
24327         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
24328         without a cselib val.
24329         (count_uses): Accept MO_VAL_SET with no val on stores.
24330         (add_stores): Likewise.
24331
24332 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
24333
24334         * var-tracking.c (check_value_val): Add a compile time assertion.
24335         (dv_is_decl_p): Simplify.
24336         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
24337         gcc_assert if ENABLE_CHECKING.
24338
24339 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
24340
24341         PR debug/42782
24342         * var-tracking.c: Include tree-flow.h.
24343         (mem_dies_at_call): New.
24344         (dataflow_set_preserve_mem_locs): Use it.
24345         (dataflow_set_remove_mem_locs): Likewise.
24346         (dump_var): Renamed from dump_variable.  Adjust all callers.
24347         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
24348         * Makefile.in (var-tracking.o): Adjust deps.
24349
24350 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
24351
24352         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
24353
24354 2010-01-20  Richard Guenther  <rguenther@suse.de>
24355
24356         PR tree-optimization/42717
24357         * tree-ssa-dce.c (get_live_post_dom): Remove.
24358         (forward_edge_to_pdom): Take an arbitrary edge to copy
24359         degenerate PHI args from.
24360         (remove_dead_stmt): Use the first post-dominator even if it
24361         does not contain live statements as redirection destination.
24362
24363 2010-01-20  Richard Guenther  <rguenther@suse.de>
24364
24365         * tree-inline.c (estimate_num_insns): Handle EH builtins.
24366
24367 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
24368
24369         * sel-sched.c (create_speculation_check): Remove set but not used
24370         variable twin.
24371         (try_transformation_cache): Remove set but not used variable ds.
24372         (calculate_privileged_insns): Remove set but not used variables
24373         cur_insn and min_spec_insn.
24374         (find_best_expr): Remove set but not used variable avail_n.
24375         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
24376         variable e.
24377         * cgraphunit.c (assemble_thunk): Remove set but not used variable
24378         false_label.
24379         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
24380         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
24381         new_scop_exit_edge.
24382
24383 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
24384
24385         PR bootstrap/42786
24386         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
24387         cpu types.  Add support for *-sse3 cpu types.
24388         (x86_64-*-*): Ditto.
24389
24390 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
24391
24392         PR middle-end/42803
24393         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
24394         argument, call initializer_constant_valid_p_1 instead of
24395         initializer_constant_valid_p, pass CACHE to it, return NULL
24396         immediately if first call returns NULL.
24397         (initializer_constant_valid_p_1): New function.
24398         (initializer_constant_valid_p): Use it.
24399
24400 2010-01-20  Thomas Quinot  <quinot@adacore.com>
24401
24402         * tree.def (PLACEHOLDER_EXPR): Fix comment.
24403
24404 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
24405
24406         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
24407         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
24408         (loc_list_from_tree): Don't handle unsigned division.  Handle
24409         signed modulo using DW_OP_{over,over,div,mul,minus}.
24410         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
24411         modulo instead of signed.
24412
24413 2010-01-20  DJ Delorie  <dj@redhat.com>
24414
24415         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
24416         (Fpa): Pass it
24417         (h8300_emit_stack_adjustment): Propogate it.
24418         (push): Pass it.
24419         (h8300_expand_prologue): Likewise.
24420         (h8300_expand_epilogue): Likewise.
24421
24422 2010-01-19  Michael Matz  <matz@suse.de>
24423
24424         PR tree-optimization/41783
24425         * tree-data-ref.c (toplevel): Include flags.h.
24426         (dump_data_dependence_relation):  Also dump the inputs if the
24427         result will be unknown.
24428         (split_constant_offset_1): Look through some conversions.
24429         * tree-predcom.c (determine_roots_comp): Restart a new chain if
24430         the offset from last element is too large.
24431         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
24432         (reassociate_to_the_same_stmt): Handle vector registers.
24433         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
24434         (e.g. conversions).
24435         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
24436         wide_prolog_niters argument, emit widening instructions.
24437         (vect_do_peeling_for_alignment): Adjust caller, use widened
24438         variant of the iteration cound.
24439         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
24440
24441 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24442
24443         PR target/38697
24444         * config/arm/neon-testgen.m (emit_automatics): New parameter
24445         features. Adjust for Fixed_return_reg feature.
24446         (test_intrinsic): Call emit_automatics with new feature.
24447         * config/arm/neon.ml: Update copyright years.
24448         (features): New Fixed_return_reg feature.
24449         (ops): Update feature for Vget_low.
24450
24451 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
24452
24453         PR tree-optimization/42719
24454         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
24455         stmt uses.
24456
24457         PR debug/42728
24458         * fwprop.c (all_uses_available_at): Return false if def_set dest
24459         is a REG that is used in def_insn.
24460
24461 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
24462
24463         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
24464
24465         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
24466         Add argument names.
24467
24468         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
24469
24470         * target.h (struct gcc_target) <secondary_reload>: Change type
24471         of last argument to secondary_reload_info *.
24472
24473 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
24474
24475         PR target/42774
24476         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
24477         memory references with unaligned offsets.  Remove CQImode handling.
24478         (unaligned_memory_operand): Return 1 for memory references with
24479         unaligned offsets.  Remove CQImode handling.
24480
24481 2010-01-18  Richard Guenther  <rguenther@suse.de>
24482
24483         PR middle-end/39954
24484         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
24485         builtin calls.
24486
24487 2010-01-18  Richard Guenther  <rguenther@suse.de>
24488
24489         PR tree-optimization/42781
24490         * tree-ssa-structalias.c (find_what_var_points_to): Skip
24491         restrict processing only if the original variable was artificial.
24492
24493 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
24494
24495         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
24496         find number of popped argument bytes.
24497
24498         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
24499         Fix the text that describes the return value for invalid insns.
24500
24501         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
24502
24503         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
24504         Clarify what 'cost of the -dependence' is.  Fix quoting.
24505
24506         * toplev.c (default_get_pch_validity): Rename argument to "sz".
24507         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
24508
24509 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
24510
24511         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
24512         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
24513
24514 2010-01-17  Richard Guenther  <rguenther@suse.de>
24515
24516         PR middle-end/42248
24517         * function.c (split_complex_args): Take a VEC to modify.
24518         (assign_parms_augmented_arg_list): Build a VEC instead of
24519         a chain of PARM_DECLs.
24520         (assign_parms_unsplit_complex): Take a VEC of arguments.
24521         Do not fixup unmodified parms.
24522         (assign_parms): Deal with the VEC.
24523         (gimplify_parameters): Likewise.
24524
24525 2010-01-17  Richard Guenther  <rguenther@suse.de>
24526
24527         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
24528         node existence check.
24529         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
24530         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
24531         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
24532         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
24533         (gimple_execute_on_growing_pred): Likewise.
24534
24535 2010-01-17  Richard Guenther  <rguenther@suse.de>
24536
24537         PR tree-optimization/42773
24538         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
24539         (compute_antic_aux): Likewise.
24540         (compute_partial_antic_aux): Likewise.
24541
24542 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
24543
24544         PR debug/42767
24545         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
24546         and US_TRUNCATE.
24547
24548 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
24549
24550         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
24551         appearance.
24552
24553         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
24554         Fix markup for strict argument.
24555
24556         (TARGET_SCHED_REORDER2): Fix argument types.
24557
24558         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
24559         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
24560
24561         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
24562         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
24563
24564         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
24565         Add argument name.
24566
24567         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
24568         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
24569         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
24570         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
24571         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
24572
24573         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
24574
24575         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
24576
24577         (TARGET_ASM_RELOC_RW_MASK): Add return type.
24578         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
24579
24580         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
24581
24582         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
24583         Use prototype.
24584
24585         (TARGET_ASM_NAMED_SECTION): Fix argument list.
24586
24587         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
24588         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
24589
24590         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
24591
24592         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
24593
24594         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
24595         referring to it.  Fix language.
24596
24597         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
24598
24599         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
24600
24601         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
24602
24603         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
24604
24605         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
24606         '@var{stream}.  Remove stray 'and'.
24607
24608         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
24609
24610         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
24611
24612         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
24613
24614         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
24615         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
24616
24617         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
24618         Fix description of return value.
24619         Rename argument "sz" to "len."
24620
24621         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
24622         Clarify meaning of 'true' return value.
24623
24624         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
24625
24626         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
24627         rep_mode versus mode_rep.
24628
24629         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
24630
24631         (TARGET_BUILTIN_DECL): Fix name.
24632
24633         (TARGET_COMMUTATIVE_P): Fix type of first argument.
24634
24635         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
24636
24637         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
24638
24639         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
24640
24641         (TARGET_RELAXED_ORDERING): Use @deftypevr.
24642
24643         (TARGET_GET_DRAP_RTX): Note that this is a hook.
24644         Clarify language.
24645
24646         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
24647         Rename argument tm_fn to md_fn.
24648
24649         (TARGET_OPTION_PRINT): Fix argument list.
24650
24651 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
24652
24653         PR target/42664
24654         * config/i386/i386.c (ix86_fixup_binary_operands):
24655         Revert FMA4 fixup of operands.
24656
24657 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24658
24659         PR gcc/42525
24660         * Makefile.in (write_entries_to_file, install-plugin):
24661         Use \012 instead of \n with tr.
24662
24663 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
24664
24665         * configure.ac (HAVE_AS_REF): New C macro.
24666         * configure: Regenerate.
24667         * config.in: Likewise.
24668         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
24669         if HAVE_AS_REF.
24670         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
24671         if HAVE_AS_REF.
24672
24673 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
24674
24675         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
24676
24677         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
24678
24679         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
24680
24681         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
24682
24683         (TARGET_IN_SMALL_DATA_P): Fix argument type.
24684
24685         (TARGET_BINDS_LOCAL_P): Fix argument type.
24686
24687         (TARGET_ASM_FILE_END): Use prototype.
24688
24689         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
24690
24691         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
24692
24693         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
24694
24695         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
24696
24697         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
24698         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
24699
24700         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
24701         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
24702
24703         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
24704         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
24705         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
24706         (TARGET_ADDR_SPACE_CONVERT): Likewise.
24707
24708         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
24709
24710         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
24711
24712         (TARGET_INIT_BUILTINS): Use prototype.
24713
24714         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
24715         Put 'const char *' in braces.  Fix parameter types.
24716         (TARGET_INVALID_CONVERSION): Fix parameter types.
24717         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
24718         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
24719
24720         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
24721         Fix argument type.
24722
24723         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
24724
24725         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
24726
24727 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
24728
24729         * doc/tm.texi (TARGET_HELP): Fix return type.
24730
24731         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
24732         in braces.  Fix argument types.
24733
24734         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
24735
24736         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
24737
24738         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
24739
24740         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
24741         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
24742
24743         (TARGET_MANGLE_TYPE): Fix argument types.
24744
24745         (TARGET_IRA_COVER_CLASSES): Use prototype.
24746
24747         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
24748
24749         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
24750
24751         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
24752
24753         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
24754
24755         (TARGET_CALLEE_COPIES): Fix argument types.
24756
24757         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
24758
24759         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
24760
24761         (TARGET_FUNCTION_VALUE): Fix argument types.
24762
24763         (TARGET_RETURN_IN_MSB): Fix argument type.
24764
24765         (TARGET_RETURN_IN_MEMORY): Fix argument types.
24766
24767         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
24768
24769         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
24770
24771         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
24772         agree with return type.
24773
24774         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
24775
24776 2010-01-15  Jing Yu  <jingyu@google.com>
24777
24778         PR rtl-optimization/42691
24779         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
24780         a pseudo to a constant and are merged, and adjust comments.
24781
24782 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
24783
24784         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
24785
24786 2010-01-15  Richard Guenther  <rguenther@suse.de>
24787
24788         PR middle-end/42739
24789         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
24790         labels of computed or non-local gotos to the destination.
24791         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
24792         landing pad label is the first label.
24793
24794 2010-01-15  Richard Guenther  <rguenther@suse.de>
24795
24796         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
24797
24798 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
24799
24800         PR target/42747
24801         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
24802         to allow generation of the xssqrtdp instruction on power7.
24803         (sqrtdf2_fpr): Ditto.
24804
24805 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
24806
24807         PR middle-end/42674
24808         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
24809         functions with noreturn attribute.
24810
24811         PR c++/42608
24812         * varasm.c (declare_weak): Add weak attribute to decl if it
24813         doesn't have one already.
24814         (assemble_external): Only add decls to weak_decls if they also
24815         have weak attribute.
24816
24817 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
24818
24819         * var-tracking.c (var_reg_delete): Don't delete the association
24820         between REGs and values or one-part variables if the register
24821         isn't clobbered.
24822
24823 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
24824
24825         PR debug/42657
24826         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
24827         because its first operand is a non-localized variable.
24828
24829 2010-01-14  Martin Jambor  <mjambor@suse.cz>
24830
24831         PR tree-optimization/42706
24832         * tree-sra.c (encountered_recursive_call): New variable.
24833         (encountered_unchangable_recursive_call): Likewise.
24834         (sra_initialize): Initialize both new variables.
24835         (callsite_has_enough_arguments_p): New function.
24836         (scan_function): Call decl and flags check only for IPA-SRA, check
24837         whether there is a recursive call and whether it has enough arguments.
24838         (all_callers_have_enough_arguments_p): New function.
24839         (convert_callers): Look for recursive calls only when
24840         encountered_recursive_call is set.
24841         (ipa_early_sra): Bail out either if
24842         !all_callers_have_enough_arguments_p or
24843         encountered_unchangable_recursive_call.
24844
24845 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24846
24847         * sel-sched.c: Add 2010 to copyright years.
24848         * sel-sched-ir.c: Likewise.
24849         * sel-sched-ir.h: Likewise.
24850
24851 2010-01-14  Martin Jambor  <mjambor@suse.cz>
24852
24853         PR tree-optimization/42714
24854         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
24855         constructors specially.
24856
24857 2010-01-14  Andi Kleen  <ak@linux.intel.com>
24858
24859         * config/i386/drivers-i386.c (detect_caches_intel):
24860         Add l2sizekb parameter and fill in.
24861         (host_detect_local_cpu): Add l2sizekb, fill in.
24862         Add Atom small cache heuristic.
24863
24864 2010-01-14  Andi Kleen  <ak@linux.intel.com>
24865
24866         * config/i386/drivers-i386.c (detect_caches_cpuid4):
24867         Add level3 parameter and fill in.
24868         (detect_caches_intel): Handle level3 cache.
24869
24870 2010-01-14  Andi Kleen  <ak@linux.intel.com>
24871
24872         * config/i386/drivers-i386.c (host_detect_local_cpu):
24873         Fix core duo detection.
24874
24875 2010-01-14  Andi Kleen  <ak@linux.intel.com>
24876
24877         * config/i386/drivers-i386.c (host_detect_local_cpu):
24878         Fix Atom detection.
24879
24880 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24881
24882         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
24883         (rs6000_variable_issue_1): this.  Use...
24884         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
24885
24886 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24887
24888         * sel-sched-ir.c (sel_restore_other_notes): Rename to
24889         sel_restore_notes.  Update all callers.  Call reemit_notes
24890         for all insns.
24891
24892 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
24893
24894         PR rtl-optimization/42246
24895         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
24896         loops.
24897
24898 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
24899
24900         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
24901         all successors is the same as number of successors in current region.
24902
24903 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24904
24905         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
24906         to rename is not separable.  Otherwise check that its LHS is not NULL.
24907
24908 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24909
24910         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
24911
24912 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24913
24914         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
24915         available registers when failed to discover LHS register class.
24916         Fix indentation.  Update comment.
24917
24918 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
24919             Alexander Monakov  <amonakov@ispras.ru>
24920
24921         PR rtl-optimization/42389
24922         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
24923         to can_issue_more.
24924         (advance_state_on_fence): Likewise.
24925         (sel_target_adjust_priority): Print debug output only when
24926         sched_verbose >= 4, not 2.
24927         (get_expr_cost): Do not issue all unique insns on the next cycle.
24928         (fill_insns): Initialize can_issue_more from the value saved
24929         with the fence.
24930         * sel-sched-ir.c (flist_add): New parameter issue_more.
24931         Init FENCE_ISSUE_MORE with it.
24932         (merge_fences): Likewise.
24933         (init_fences): Update call to flist_add.
24934         (add_to_fences, add_clean_fence_to_fences)
24935         (add_dirty_fence_to_fences): Likewise.
24936         (move_fence_to_fences): Update call to merge_fences.
24937         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
24938         sched groups.
24939         * sel-sched-ir.h (struct _fence): New field issue_more.
24940         (FENCE_ISSUE_MORE): New accessor macro.
24941
24942 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
24943
24944         PR rtl-optimization/42388
24945         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
24946         that have no predecessors nor successors.  Do not call move_bb_info
24947         for empty blocks outside of current region.
24948
24949 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24950
24951         PR rtl-optimization/42294
24952         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
24953         * sel-sched.c (move_exprs_to_boundary): Transitively add all
24954         originators' originators.
24955
24956 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24957
24958         PR rtl-optimization/39453
24959         PR rtl-optimization/42246
24960         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
24961         for pipelining_p.
24962         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
24963
24964 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
24965             Alexander Monakov  <amonakov@ispras.ru>
24966
24967         PR middle-end/42245
24968         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
24969         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
24970         argument.  Update all callers.
24971         (tidy_control_flow): ... and here.  Recompute topological order
24972         of basic blocks in region if necessary.
24973         (sel_redirect_edge_and_branch): Change return type.  Return true
24974         if topological order might have been invalidated.
24975         (purge_empty_blocks): Export and move from...
24976         * sel-sched.c (purge_empty_blocks): ... here.
24977         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
24978         (maybe_tidy_empty_bb): Delete prototype.
24979         (purge_empty_blocks): Declare.
24980
24981 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
24982
24983         PR rtl-optimization/42249
24984         * sel-sched.c (try_replace_dest_reg): When chosen register
24985         and original register is the same, do not bail out early, but
24986         still check all original insns for validity of replacing destination
24987         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
24988         in this case.
24989
24990 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
24991
24992         PR c/42721
24993         Port from no-undefined-overflow branch:
24994         2009-03-09  Richard Guenther  <rguenther@suse.de>
24995
24996         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
24997
24998 2010-01-14  Richard Guenther  <rguenther@suse.de>
24999
25000         PR lto/42665
25001         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
25002
25003 2010-01-14  Ira Rosen  <irar@il.ibm.com>
25004
25005         PR tree-optimization/42709
25006         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
25007         as scalar type in creation of constant vector operand.
25008
25009 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25010
25011         PR testsuite/42414
25012         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
25013         (check-parallel-%): Match `testsuite' directory component only
25014         at the end.
25015
25016 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
25017
25018         PR translation/39521
25019         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
25020         strings with _().
25021
25022 2010-01-13  Richard Guenther  <rguenther@suse.de>
25023
25024         PR tree-optimization/42730
25025         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
25026         offset zero.
25027
25028 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
25029
25030         PR target/pr42542
25031         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
25032         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
25033         them signed.
25034
25035 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
25036
25037         * config/bfin/libgcc-bfin.ver: Regenerate based on current
25038         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
25039         ___umulsi3_highpart.
25040
25041         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
25042         rather than schedule_insns if the pass is enabled.
25043
25044 2010-01-13  Martin Jambor  <mjambor@suse.cz>
25045
25046         PR tree-optimization/42704
25047         * tree-sra.c (sra_modify_assign): Do not delete assignments to
25048         SSA_NAMEs.
25049
25050 2010-01-13  Martin Jambor  <mjambor@suse.cz>
25051
25052         PR tree-optimization/42703
25053         * tree-sra.c (analyze_access_subtree): Check that we can build a
25054         reference to the original data within the aggregate.
25055
25056 2010-01-13  Richard Guenther  <rguenther@suse.de>
25057
25058         PR tree-optimization/42705
25059         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
25060
25061 2010-01-13  Richard Guenther  <rguenther@suse.de>
25062
25063         PR middle-end/42716
25064         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
25065
25066 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
25067
25068         PR debug/41371
25069         * var-tracking.c (values_to_unmark): New variable.
25070         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
25071         values_to_unmark vector.  Moved body to...
25072         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
25073         instead queue it into values_to_unmark vector.
25074         (vt_find_locations): Free values_to_unmark vector.
25075
25076 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
25077
25078         * config/s390/s390.c (override_options): Set
25079         default of max-pending-list-length to 256
25080
25081 2010-01-13  Richard Guenther  <rguenther@suse.de>
25082
25083         PR lto/42678
25084         * tree-pass.h (PROP_gimple_lcx): New.
25085         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
25086         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
25087         before the final cleanup_eh.
25088         (dump_properties): Dump PROP_gimple_lcx.
25089         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
25090         (tree_lower_complex_O0): Remove.
25091         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
25092         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
25093         tree_lower_complex, schedule TODO_update_ssa.
25094         * lto-streamer-out.c (output_function): Stream the functions
25095         properties.
25096         * lto-streamer-in.c (input_function): Likewise.
25097         (lto_read_body): Do not override them here.
25098
25099 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
25100
25101         PR c/42708
25102         * c-typeck.c (build_c_cast): Fold value cast to union type before
25103         wrapping it in a CONSTRUCTOR.
25104
25105 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
25106
25107         PR rtl-optimization/42699
25108         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
25109         involved.
25110
25111 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25112
25113         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
25114         SUBTARGET_WARN_UNUSED_SPEC): Move ...
25115         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
25116         SUBTARGET_WARN_UNUSED_SPEC): ... here
25117         * config/mips/iris5.h (LIBGCC_SPEC): Define.
25118
25119 2010-01-12  Julian Brown  <julian@codesourcery.com>
25120
25121         * config/arm/neon-schedgen.ml (Utils): Don't try to
25122         open missing module.
25123         (find_with_result): New.
25124
25125 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
25126
25127         PR debug/42662
25128         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
25129         sharing when canonicalizing ({lt,ge}u (plus a b) b).
25130
25131         PR tree-optimization/42645
25132         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
25133         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
25134         decl_map, set processing_debug_stmt to -1 and return name without
25135         any remapping.
25136
25137 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
25138
25139         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
25140         binutils version, and reword target configuration description.
25141
25142 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
25143
25144         * config/avr/avr.h (LINKER_NAME): Remove.
25145
25146 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
25147
25148         PR target/42416
25149         * config/rs6000/rs6000.c (rs6000_override_options): On targets
25150         that support VSX, warn for -mno-altivec if vsx is not disabled,
25151         and disable vsx.
25152
25153 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
25154             Shujing Zhao  <pearly.zhao@oracle.com>
25155
25156         PR translation/42469
25157         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
25158         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
25159         character between option name and help text.
25160         * c.opt (imultilib): Likewise.
25161
25162 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
25163
25164         * lto-streamer-out.c (output_unreferenced_globals): Output static
25165         variables.
25166
25167 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
25168
25169         PR rtl-optimization/42621
25170         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
25171         optimizing for size.
25172         (duplicate_computed_gotos): Remove now-redundant check.
25173
25174 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
25175
25176         PR target/37454
25177         * configure.ac: Save and restore LDFLAGS and LIBS
25178         * configure: Regenerate.
25179
25180 2010-01-10  Richard Guenther  <rguenther@suse.de>
25181
25182         PR middle-end/42667
25183         * builtins.c (fold_builtin_strlen): Add type argument and
25184         convert the resulting length to it.
25185         (fold_builtin_1): Adjust.
25186
25187 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
25188
25189         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
25190         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
25191         1 insn.
25192         (num_insns_constant_wide): Adjust for that change.
25193
25194 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
25195
25196         PR debug/42631
25197         * web.c (union_defs): Add used argument, to combine uses of
25198         uninitialized regs.
25199         (entry_register): Adjust type and tests of used argument.
25200         (web_main): Widen used for new use.  Pass it to union_defs.
25201         * df.h (union_defs): Adjust prototype.
25202
25203 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
25204
25205         PR debug/42630
25206         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
25207         uses in new incoming argument.  Free body.
25208         (reset_debug_uses_in_loop): New.
25209         (analyze_insn_to_expand_var): Call the latter if the former found
25210         anything.  Fix whitespace.  Reject invalid dest overlaps before
25211         going through all insns in the loop.
25212
25213 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
25214
25215         PR debug/42629
25216         * haifa-sched.c (dying_use_p): Debug insns don't count.
25217
25218 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
25219
25220         PR middle-end/42363
25221         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
25222         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
25223         (verify_gimple_call): Reject LHS in noreturn calls.
25224
25225 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
25226
25227         PR debug/42604
25228         PR debug/42395
25229         * tree-vect-loop-manip.c (adjust_info): New type.
25230         (adjust_vec): New pointer to vector.
25231         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
25232         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
25233         (slpeel_update_phis_for_duplicate_loop): Use them.
25234         (slpeel_update_phi_nodes_for_guard1): Likewise.
25235         (slpeel_update_phi_nodes_for_guard2): Likewise.
25236         (slpeel_tree_peel_loop_to_edge): Likewise.
25237         (vect_update_ivs_after_vectorizer): Likewise.
25238
25239 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
25240
25241         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
25242         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
25243
25244 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
25245
25246         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
25247         bogus uninitialized warning.
25248
25249 2010-01-09  Richard Guenther  <rguenther@suse.de>
25250
25251         PR middle-end/42512
25252         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
25253         the evolution is compatible with the initial condition.
25254
25255 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
25256
25257         * gcc.c (process_command): Update copyright notice dates.
25258         * gcov.c (print_version): Likewise.
25259         * gcov-dump.c (print_version): Likewise.
25260         * mips-tfile.c (main): Likewise.
25261         * mips-tdump.c (main): Likewise.
25262
25263 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
25264
25265         PR target/41885
25266         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
25267         (rotlhi3): Delete.
25268         (rotlhi3_8): Delete.
25269         (rotlsi3): Delete.
25270         (rotlsi3_8): Delete.
25271         (rotlsi3_16): Delete.
25272         (rotlsi3_24): Delete.
25273         (rotl<mode>3): New.
25274         (*rotw<mode>3): New.
25275         (*rotb<mode>3): New.
25276         * config/avr/avr.c (avr_rotate_bytes): New function.
25277         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
25278
25279 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
25280
25281         PR target/37454
25282         * configure.ac: Modify -rdynamic check.
25283         * configure: Regenerate.
25284
25285 2010-01-08  DJ Delorie  <dj@redhat.com>
25286
25287         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
25288         register popping order.
25289
25290 2010-01-08  Richard Guenther  <rguenther@suse.de>
25291
25292         PR lto/42528
25293         * c.opt (fsigned-char): Also let LTO handle this option.
25294         (funsigned-char): Likewise.
25295
25296 2010-01-07  Richard Guenther  <rguenther@suse.de>
25297
25298         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
25299         (gimple_op): Likewise.
25300         (gimple_op_ptr): Likewise.
25301         (gimple_assign_set_lhs): Remove gcc_assert.
25302         (gimple_assign_set_rhs1): Likewise.
25303         (gimple_assign_set_rhs2): Likewise.
25304         (gimple_call_set_lhs): Likewise.
25305         (gimple_call_set_fn): Likewise.
25306         (gimple_call_set_fndecl): Likewise.
25307         (gimple_call_fndecl): Likewise.
25308         (gimple_call_return_type): Likewise.
25309         (gimple_call_set_chain): Likewise.
25310         (gimple_call_num_args): Likewise.
25311         (gimple_call_set_arg): Likewise.
25312         (gimple_cond_set_code): Likewise.
25313         (gimple_cond_set_lhs): Likewise.
25314         (gimple_cond_set_rhs): Likewise.
25315         (gimple_cond_set_true_label): Likewise.
25316         (gimple_cond_set_false_label): Likewise.
25317         (gimple_label_set_label): Likewise.
25318         (gimple_goto_set_dest): Likewise.
25319         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
25320         (gimple_debug_bind_get_value): Likewise.
25321         (gimple_debug_bind_get_value_ptr): Likewise.
25322         (gimple_debug_bind_set_var): Likewise.
25323         (gimple_debug_bind_set_value): Likewise.
25324         (gimple_debug_bind_reset_value): Likewise.
25325         (gimple_debug_bind_has_value_p): Likewise.
25326         (gimple_return_retval_ptr): Remove gcc_assert.
25327         (gimple_return_retval): Likewise.
25328         (gimple_return_set_retval): Likewise.
25329         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
25330         (safe_referenced_var_iterator): Remove.
25331         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
25332         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
25333         (fill_referenced_var_vec): Remove.
25334         (first_readonly_imm_use): Remove redundant gcc_assert.
25335         (phi_arg_index_from_use): Combine gcc_asserts.
25336         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
25337         (first_imm_use_stmt): Remove redundant gcc_assert.
25338         * tree-cfg.c (verify_gimple_call): Verify function and chain
25339         operands.  Verify arguments.
25340         (verify_types_in_gimple_stmt): Verify condition code and labels.
25341
25342 2010-01-07  Richard Guenther  <rguenther@suse.de>
25343
25344         PR tree-optimization/42641
25345         * sese.c (rename_map_elt_info): Use the SSA name version, do
25346         not hash pointers.
25347
25348 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
25349
25350         PR tree-optimization/42625
25351         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
25352         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
25353
25354 2010-01-07  Duncan Sands  <baldrick@free.fr>
25355
25356         * Makefile.in (PLUGIN_HEADERS): Add version.h.
25357
25358 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
25359
25360         PR target/42511
25361         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
25362         note itself is not function_invariant_p.
25363
25364 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
25365
25366         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
25367         Do not add the DF_NOTE problem.
25368         * store-motion.c (execute_rtl_store_motion): Likewise.
25369
25370 2010-01-07  Martin Jambor  <mjambor@suse.cz>
25371
25372         PR tree-optimization/42157
25373         * tree-sra.c (compare_access_positions): Stabilize sort if both
25374         accesses have integer types, return zero immediately if they are the
25375         same.
25376
25377 2010-01-06  Richard Henderson  <rth@redhat.com>
25378
25379         PR middle-end/41883
25380         * haifa-sched.c (add_to_note_list): Merge into ...
25381         (concat_note_lists): ... here, and ...
25382         (unlink_other_notes, rm_other_notes): Merge into...
25383         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
25384         NOTE_INSN_EPILOGUE_BEG.
25385
25386 2010-01-06  Richard Guenther  <rguenther@suse.de>
25387
25388         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
25389         not inline regular functions into always-inline functions.
25390
25391 2010-01-06  Nick Clifton  <nickc@redhat.com>
25392
25393         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
25394         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
25395         used together.
25396         (OVERRIDE_OPTIONS): Delete.
25397         (OPTIMIZATION_OPTIONS): Define.
25398         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
25399         * config/rx/rx.c (rx_handle_option): Issue an error message if
25400         -mcpu=rx200 and -fpu are used together.
25401         (rx_set_optimization_options): New function.  Issue an error
25402         message if an optimization attribute attempts to reset the FPU/
25403         math optimization pairing.
25404         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
25405         * config/rx/rx.opt: Set the default to 32-bit doubles.
25406         * config/rx/t-rx: Add multilibs for -nofpu option.
25407         * doc/invoke.texi: Update documentation of RX options.
25408
25409 2010-01-06  Richard Guenther  <rguenther@suse.de>
25410
25411         * tree-ssa-pre.c (name_to_id): New global.
25412         (alloc_expression_id): Simplify SSA name handling.
25413         (lookup_expression_id): Likewise.
25414         (init_pre): Zero name_to_id.
25415         (fini_pre): Free it.
25416
25417 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
25418
25419         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
25420
25421 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
25422
25423         PR target/42542
25424         * config/i386/sse.md (smaxv2di3): New.
25425         (umaxv2di3): Likewise.
25426         (sminv2di3): Likewise.
25427         (uminv2di3): Likewise.
25428
25429 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
25430
25431         PR target/42564
25432         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
25433         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
25434         (legitimize_tls_address): Likewise.
25435         (sparc_tls_referenced_p): Likewise.
25436         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
25437         and adjust calls to legitimize_pic_address.
25438         (legitimate_constant_p) Use sparc_tls_referenced_p.
25439         (legitimate_pic_operand_p): Likewise.
25440         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
25441         (sparc_tls_symbol_ref_1): Delete.
25442         (sparc_tls_referenced_p): Make static, recognize specific patterns.
25443         (legitimize_tls_address): Make static, handle CONST patterns.
25444         (legitimize_pic_address): Make static, remove unused parameter and
25445         adjust recursive calls.
25446         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
25447         and adjust call to legitimize_pic_address.
25448         (sparc_output_mi_thunk): Likewise.
25449
25450 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
25451             H.J. Lu  <hongjiu.lu@intel.com>
25452
25453         PR target/42542
25454         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
25455         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
25456         operands to make them signed.
25457
25458         Revert:
25459         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
25460
25461         PR target/42542
25462         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
25463         GTU to GT for V4SI and V2DI.
25464
25465         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
25466         (umin<mode>3): Removed.
25467         (uminv8hi3): New.
25468         (uminv4si3): Likewise.
25469
25470 2010-01-05  Martin Jambor  <mjambor@suse.cz>
25471
25472         PR tree-optimization/42462
25473         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
25474         current_function_decl to helper functions and macros.
25475
25476 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25477
25478         PR bootstrap/41771
25479         * flags.h: Don't include real.h.
25480         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
25481         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
25482         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
25483         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
25484         * dominance.c: Update copyright.
25485         * gimple.c (walk_gimple_op): Remove inline.
25486         * tree-ssa-reassoc.c: Include real.h.
25487         * Makefile.in (FLAGS_H): Remove $(REAL_H).
25488         (tree-ssa-reassoc.o): Depend on $(REAL_H).
25489
25490 2010-01-05  Nick Clifton  <nickc@redhat.com>
25491
25492         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
25493         register to push into the stack frame when the accumulator has to
25494         be saved during interrupts.
25495
25496 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
25497
25498         * doc/invoke.texi: Remove the documentation about option
25499         -Wunreachable-code.
25500         * common.opt (Wunreachable-code):  Preserved for backward
25501         compatibility.
25502         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
25503         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
25504         the backward compatibility flag section.
25505
25506 2010-01-05  Richard Guenther  <rguenther@suse.de>
25507
25508         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
25509
25510 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
25511
25512         PR other/42611
25513         * cfgexpand.c (expand_one_var): Diagnose too large variables.
25514
25515         PR tree-optimization/42508
25516         * tree-sra.c (convert_callers): Check for recursive call
25517         by comparing cgraph nodes instead of decls.
25518         (modify_function): Call ipa_modify_formal_parameters also
25519         on all same_body aliases.
25520
25521         * cgraphunit.c (cgraph_materialize_all_clones): Compare
25522         cgraph nodes when checking for same_body aliases.
25523
25524 2010-01-05  Richard Guenther  <rguenther@suse.de>
25525
25526         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
25527         allocation and lookup.
25528         (get_or_alloc_expr_for_constant): Likewise.
25529         (phi_translate): Sink allocation.
25530
25531 2010-01-04  Richard Guenther  <rguenther@suse.de>
25532
25533         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
25534         a new entry only if needed.
25535         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
25536         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
25537         hashtable lookup.
25538         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
25539         the result array.
25540         (phi_translate): Handle CONSTANTs early.
25541
25542 2010-01-04  Martin Jambor  <mjambor@suse.cz>
25543
25544         PR tree-optimization/42398
25545         * tree-sra.c (struct access): Removed flag grp_different_types.
25546         (dump_access): Do not dump the removed flag.
25547         (sort_and_splice_var_accesses): Do not set the removed flag.
25548         (sra_modify_expr): Check for type compatibility directly.
25549
25550 2010-01-04  Martin Jambor  <mjambor@suse.cz>
25551
25552         PR tree-optimization/42366
25553         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
25554         edges with variable number of parameters.
25555         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
25556         flag instead of asserting it.
25557         (ipa_read_node_info): Read uses_analysis_done flag.
25558
25559 2010-01-04  Richard Guenther  <rguenther@suse.de>
25560
25561         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
25562         iterative_hash_* as intended.
25563         (vn_reference_compute_hash): Likewise.  Simplify hashing
25564         SSA names.
25565         (vn_reference_lookup_2): Likewise.
25566         (vn_nary_op_compute_hash): Likewise.
25567         (vn_phi_compute_hash): Likewise.
25568         (expressions_equal_p): Remove strange code.
25569         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
25570         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
25571         (bitmap_insert_into_set_1): Take value-id as parameter.
25572         (add_to_value): Pass it.
25573         (bitmap_insert_into_set): Likewise.
25574         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
25575
25576 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
25577
25578         PR driver/42442
25579         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
25580         (do_self_spec): For switches with SWITCH_IGNORE set set also
25581         SWITCH_IGNORE_PERMANENTLY.
25582         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
25583         of SWITCH_IGNORE.
25584
25585 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
25586
25587         * lto-streamer-out.c (output_unreferenced_globals): Output the full
25588         tree of an unreferenced global var.
25589
25590 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
25591
25592         PR target/42542
25593         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
25594         GTU to GT for V4SI and V2DI.
25595
25596         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
25597         (umin<mode>3): Removed.
25598         (uminv8hi3): New.
25599         (uminv4si3): Likewise.
25600
25601 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
25602
25603         PR lto/42581
25604         * collect2.c (main): Turn on trace in collect2 if -v is passed
25605         to gcc with LTO.
25606
25607 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
25608
25609         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
25610         description of expression operand.
25611
25612 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
25613
25614         * configure.ac: Add install-html to target_list for Make-hooks.
25615         * configure: Regenerate.
25616         * fortran/Make-lang.in (F95_HTMLFILES): New.
25617         (fortran.html): Use it.
25618         (fortran.install-html): New.
25619         * Makefile.in (install-html): Add lang.install-html.
25620         * java/Make-lang.in (JAVA_HTMLFILES): New.
25621         (java.html): Use it.
25622         (java.install-html): New.
25623         * objc/Make-lang.in (objc.install-html): New.
25624         * objcp/Make-lang.in (obj-c++.install-html): New.
25625         * cp/Make-lang.in (c++.install-html): New.
25626         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
25627         * lto/Make-lang.in (lto.install-html): New.
25628
25629 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
25630
25631         PR lto/42520
25632         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
25633
25634 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
25635
25636         PR rtl-optimization/41862
25637         * store-motion.c (store_killed_in_insn, compute_store_table,
25638         remove_reachable_equiv_notes, replace_store_insn,
25639         build_store_vectors): Ignore all DEBUG_INSNs.
25640
25641 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
25642
25643         PR lto/41564
25644         * common.opt: Add dumpdir.
25645
25646         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
25647         isn't specified.
25648         (option_map): Add --dumpdir.
25649
25650         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
25651
25652         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
25653
25654         * opts.c (decode_options): Try dump_dir_name first if
25655         dump_base_name isn't an absolute path.
25656         (common_handle_option): Handle OPT_dumpdir.
25657
25658         * toplev.c (dump_dir_name): New.
25659         (print_switch_values): Also ignore -dumpdir.
25660
25661         * toplev.h (dump_dir_name): New.
25662
25663 2010-01-03  Richard Guenther  <rguenther@suse.de>
25664
25665         PR tree-optimization/42589
25666         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
25667         double-word expansion of bswap32.
25668
25669 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
25670
25671         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
25672         with BLOCK_FOR_INSN.
25673         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
25674         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
25675         noce_process_if_block): Likewise.
25676         * gcse.c (compute_local_properties, insert_expr_in_table,
25677         insert_set_in_table, canon_list_insert, find_avail_set,
25678         pre_insert_copy_insn): Likewise.
25679
25680         * basic-block.h (BLOCK_NUM): Move from here...
25681         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
25682
25683 2010-01-03  Richard Guenther  <rguenther@suse.de>
25684
25685         PR tree-optimization/42438
25686         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
25687         contains_may_not_return_call flag.
25688         (BB_MAY_NOTRETURN): New.
25689         (valid_in_sets): Trapping nary operations are not valid
25690         in blocks that may not return.
25691         (insert_into_preds_of_block): Remove check for trapping expressions.
25692         (compute_avail): Compute also BB_MAY_NOTRETURN.
25693
25694 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
25695
25696         * doc/invoke.texi: Add 2010 to copyright years.
25697
25698 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
25699
25700         * config/sparc/sparc.c: Fix formatting nits.
25701
25702 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
25703             Alexander Monakov  <amonakov@ispras.ru>
25704
25705         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
25706
25707 2010-01-02  Richard Guenther  <rguenther@suse.de>
25708
25709         PR middle-end/42577
25710         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
25711         (simplify_switch_using_ranges): Mark to be removed edges
25712         as non-executable.
25713
25714 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25715
25716         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
25717
25718         * collect2.c (scan_libraries): Add missing argument in call to
25719         scan_prog_file.
25720
25721 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
25722
25723         PR target/42448
25724         * config/alpha/predicates.md (aligned_memory_operand): Return false
25725         for CQImode.
25726         (unaligned_memory_operand): Return true for CQImode.
25727         * config/alpha/alpha.c (get_aligned_mem): Assert that location
25728         doesn not cross aligned SImode word boundary.
25729
25730 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
25731
25732         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
25733         Remove.
25734         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
25735         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
25736
25737 2010-01-02  Richard Guenther  <rguenther@suse.de>
25738
25739         PR lto/41597
25740         * toplev.c (compile_file): Emit LTO marker properly.  Change
25741         it to __gnu_lto_v1.
25742         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
25743
25744 2010-01-01  Richard Guenther  <rguenther@suse.de>
25745
25746         PR debug/42455
25747         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
25748
25749 2010-01-01  Richard Guenther  <rguenther@suse.de>
25750
25751         PR c/42570
25752         * c-decl.c (grokdeclarator): For zero-size arrays force
25753         structural equality checks as layout_type does.
25754
25755 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
25756
25757         * builtins.c: Update copyright to 2010.
25758
25759 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
25760
25761         PR lto/42531
25762         * lto-streamer-out.c (produce_asm): Revert the last change.
25763         (copy_function): Likewise.
25764
25765         * lto-streamer.c (lto_get_section_name): Skip any leading
25766         asterisk in name.
25767
25768 2010-01-01  Richard Guenther  <rguenther@suse.de>
25769
25770         PR middle-end/42559
25771         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
25772         for LABEL_DECLs.
25773
25774 \f
25775 Copyright (C) 2010 Free Software Foundation, Inc.
25776
25777 Copying and distribution of this file, with or without modification,
25778 are permitted in any medium without royalty provided the copyright
25779 notice and this notice are preserved.