OSDN Git Service

Don't set enable_decimal_float to dpd if DFP is disabled.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
2
3         PR target/45524
4         * configure.ac (enable_decimal_float): Set to
5         $default_decimal_float.
6         * configure: Regenerated.
7
8 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9
10         * combine.c (try_combine): Set subst_low_luid to i0.
11
12 2010-09-06  Richard Guenther  <rguenther@suse.de>
13
14         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
15         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
16         (build_aligned_type): Declare.
17         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
18         (check_aligned_type): New function.
19         (build_aligned_type): Likewise.
20         * expr.c (expand_assignment): Handle misaligned stores via
21         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
22         (expand_expr_real_1): Likewise.
23         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
24         * tree-vect-stmts.c (vectorizable_store): Do not build
25         MISALIGNED_INDIRECT_REF but initialize alignment information.
26         (vectorizable_load): Likewise.
27         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
28         handling.
29         * cfgexpand.c (expand_debug_expr): Likewise.
30         * dwarf2out.c (loc_list_from_tree): Likewise.
31         * fold-const.c (maybe_lvalue_p): Likewise.
32         (operand_equal_p): Likewise.
33         (build_fold_addr_expr_with_type_loc): Likewise.
34         * gimplify.c (gimplify_addr_expr): Likewise.
35         (gimplify_expr): Likewise.
36         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
37         (verify_gimple_assign_single): Likewise.
38         * tree-dump.c (dequeue_and_dump): Likewise.
39         (tree_could_trap_p): Likewise.
40         * tree-predcom.c (ref_at_iteration): Likewise.
41         * tree-pretty-print.c (dump_generic_node): Likewise.
42         (op_code_prio): Likewise.
43         (op_symbol_code): Likewise.
44         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
45         * tree-ssa-loop-im.c (for_each_index): Likewise.
46         (gen_lsm_tmp_name): Likewise.
47         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
48         (find_interesting_uses_address): Likewise.
49         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
50         * tree-ssa-operands.c (get_expr_operands): Likewise.
51         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
52         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
53         (ao_ref_init_from_vn_reference): Likewise.
54         * tree.c (staticp): Likewise.
55         (build1_stat): Likewise.
56         (reference_alias_ptr_type): Likewise.
57         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
58         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
59         MISALIGNED_INDIRECT_REF handling.
60
61 2010-09-06  Richard Guenther  <rguenther@suse.de>
62
63         PR tree-optimization/45534
64         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
65         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
66         on the target.
67         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
68         valid on the target.
69
70 2010-09-06  Andreas Schwab  <schwab@redhat.com>
71
72         * configure.ac: Quote argument of AC_MSG_WARN.
73         * configure: Regenerate.
74
75 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
76
77         * sel-sched.c (move_cond_jump): Correct arguments to
78         maybe_tidy_empty_bb.
79         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
80
81 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
82
83         PR rtl-optimization/44919
84         * sel-sched.c (move_cond_jump): Remove assert, check that
85         the several blocks case can only happen with mutually exclusive
86         insns instead.  Rewrite the movement code to support moving through
87         several basic blocks.
88
89 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
90
91         * config/i386/i386.md (iptrsize): New mode attribute.
92         (tp_seg): Ditto.
93         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
94         mode iterator.
95         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
96         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
97         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
98         (stack_tls_protect_set_<mode>): Ditto from
99         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
100         of thread base pointer load.
101         (stack_tls_protect_test_<mode>): Ditto from
102         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
103         of thread base pointer load.
104         (stack_protect_set): Rewrite using indirect functions.
105         (stack_protect_test): Ditto.
106         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
107         (ix86_print_operand): Handle '@'.
108
109 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
110
111         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
112         MINUS_EXPR.
113
114 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
115
116         * doc/invoke.texi: Document -Wdouble-promotion.
117         * c-typeck.c (convert_arguments): Check for implicit conversions
118         from float to double.
119         (do_warn_double_promotion): New function.
120         (build_conditional_expr): Use it.
121         (build_binary_op): Likewise.
122
123 2010-09-05  Richard Guenther  <rguenther@suse.de>
124
125         PR tree-optimization/45535
126         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
127         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
128         dereferencing it.
129         (indirect_refs_may_alias_p): Likewise.
130
131 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
132
133         * config/sh/sh.c (sh_option_override): Make static.
134         Adjust comments.  Declare.
135         (sh_function_value_regno_p): Likewise.
136         (sh_register_move_cost): Modify the arguments, make static.
137         Adjust comments.  Declare.
138         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
139         TARGET_FUNCTION_VALUE_REGNO_P): Define.
140         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
141         REGISTER_MOVE_COST): Delete.
142         * config/sh/sh-protos.h (sh_override_options): Delete.
143         (sh_register_move_cost): Delete.
144         (sh_function_value_regno_p): Delete.
145
146 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
147
148         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
149         m32r_function_value_regno_p): New functions.
150         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
151         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
152         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
153         FUNCTION_VALUE_REGNO_P): Remove.
154
155 2010-09-04  Jan Hubicka  <jh@suse.cz>
156
157         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
158         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
159         fold_read_from_constant_string.
160
161         * gimple.h (canonicalize_constructor_val): Declare.
162         * gimple-fold.c (canonicalize_constructor_val): New function.
163         (get_symbol_constant_value):Use it.
164         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
165
166 2010-09-04  Jan Hubicka  <jh@suse.cz>
167
168         * tree-switch-conversion.c (build_one_array): Set constructor to be
169         static.
170         * varpool.c (varpool_finalize_decl): Compute const_value_known.
171
172 2010-09-04  Richard Guenther  <rguenther@suse.de>
173
174         PR bootstrap/45519
175         * tree-flow.h (force_gimple_operand_1): Declare.
176         (force_gimple_operand_gsi_1): Likewise.
177         * gimplify.c (force_gimple_operand_1): New worker taking a
178         gimple predicate for ...
179         (force_gimple_operand): ... which now wraps it.
180         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
181         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
182         last change.
183         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
184         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
185         (create_mem_ref): Likewise.
186
187 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
188
189         * config/i386/predicates.md (sse_reg_operand): New predicate.
190         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
191         predicate for operand 1.
192         (XFmode push splitter): Use fp_register_operand predicate
193         for operand 1.
194         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
195         (SF-DF float_extend push splitter): Add reload_completed insn
196         predicate.
197         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
198         MODEF mode macro.  Add reload_completed insn predicate.
199
200 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
201
202         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
203         (struct df_extract_ref): Remove.
204         (union df_ref_d): Remove extract_ref member.
205         (df_ref_create): Remove last three arguments.
206         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
207         * df-scan.c (df_ref_record): Remove last three arguments, do not
208         pass them to df_ref_create_structure.
209         (df_uses_record): Remove first and last three arguments.  Replace
210         first argument with DF_REF_REGULAR, adjust calls to remove the
211         width, offset and mode.  Always call recursively on the second
212         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
213         (df_ref_create_structure): Remove first argument.
214         (struct df_scan_problem_data): Remove ref_extract_pool.
215         (df_scan_free_internal): Do not free it.
216         (df_scan_alloc): Do not allocate it.
217         (df_ref_create): Remove last three arguments, do not pass them to
218         df_ref_create_structure.
219         (df_free_ref): Remove DF_REF_EXTRACT case.
220         (df_notes_rescan): Adjust call to df_uses_record.
221         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
222         Remove DF_REF_EXTRACT case.
223         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
224         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
225         and SUBREG definitions.
226         (df_get_conditional_uses): Remove references to width/offset/mode,
227         adjust call to df_ref_create_structure.
228         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
229         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
230         calls to df_uses_record and df_ref_record.
231         * fwprop.c (update_df): Remove references to width/offset/mode,
232         adjust call to df_ref_create.
233
234 2010-09-03  Jan Hubicka  <jh@suse.cz>
235
236         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
237         (build_cdtor_fns): Update use of build_cdtor.
238
239 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
240
241         * doc/options.texi (SeparateAlias): Document.
242         * opt-functions.awk (switch_flags): Handle SeparateAlias.
243         * opth-gen.awk: Generate enumeration names for options marked
244         SeparateAlias, but not for those marked Ignore.
245         * opts-common.c (generate_canonical_option): Don't output separate
246         argument for options marked CL_SEPARATE_ALIAS.
247         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
248         * opts.h (CL_SEPARATE_ALIAS): New.
249         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
250         CL_COMMON): Adjust definitions.
251         * config/i386/darwin.opt, config/mips/sde.opt: New.
252         * common.opt (fdump-final-insns): New.
253         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
254         i386/darwin.opt.
255         (mips*-sde-elf*): Add mips/sde.opt.
256         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
257         -mno-data-in-code and -mcode-xonly here.
258         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
259         * gcc.c (option_map): Add "j" to --dump entry.
260         (translate_options): Don't translate -d to -foutput-class-dir= here.
261
262 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
263
264         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
265         DR_IS_WRITE.
266         (compute_all_dependences): Same.
267         (create_rdg_edge_for_ddr): Same.
268         * tree-data-ref.h (DR_IS_WRITE): New.
269         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
270         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
271         (write_memrefs_written_at_least_once): Same.
272         * tree-predcom.c (suitable_component_p): Same.
273         (determine_roots_comp): Same.
274         (execute_load_motion): Same.
275         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
276         (vect_enhance_data_refs_alignment): Same.
277         (vect_analyze_group_access): Same.
278
279 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
280
281         PR testsuite/42843
282         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
283         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
284
285 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
286
287         * dwarf2out.c (file scope): Remove #if0'd code.
288         (gen_subprogram_die): Same.
289
290 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
291
292         PR middle-end/45484
293         * dwarf2out.c (flush_queued_reg_saves): Rename to...
294         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
295         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
296         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
297         * config/i386/i386.c (output_set_got): Call it.
298
299 2010-09-03  Michael Matz  <matz@suse.de>
300
301         PR middle-end/45415
302         * tree-sra.c (sra_modify_assign): If we modify the statement,
303         say so.
304
305         * tree-ssa.c (verify_ssa): Check number of operands and links
306         per statement to agree.
307
308 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
309             Iain Sandoe  <iains@gcc.gnu.org>
310
311         PR target/45476
312         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
313         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
314         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
315
316 2010-09-03  Richard Guenther  <rguenther@suse.de>
317
318         * lto-streamer-out.c (output_function): Output function
319         start and end loci.
320         * lto-streamer-in.c (input_function): Input function start
321         and end loci.
322
323 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
324
325         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
326         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
327         * configure: Regenerate.
328         * aclocal.m4: Regenerate.
329
330 2010-09-03  Jan Hubicka  <jh@suse.cz>
331
332         PR lto/44812
333         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
334         on functions/variables in other partition.
335
336 2010-09-03  Jan Hubicka  <jh@suse.cz>
337
338         * cgraph.h (struct varpool_node): Add const_value_known.
339         (varpool_decide_const_value_known): Declare.
340         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
341         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
342         (input_varpool_node): Restore const_value_known.
343         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
344         initializer folding.
345         * ipa.c (ipa_discover_readonly_nonaddressable_var,
346         function_and_variable_visibility): Compute const_value_known.
347         * gimple-fold.c (get_symbol_constant_value): Use varpool for
348         initializer folding.
349         * varpool.c (varpool_decide_const_value_known): New function.
350
351 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
352
353         * config/i386/i386.md: Remove empty preparation statements
354         from splitters.
355
356 2010-09-03  Jan Hubicka  <jh@suse.cz>
357
358         * passes.c (rest_of_decl_compilation): Do not add local vars into
359         varpool.
360         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
361         static or extern vars are in varpool.
362         (varpool_finalize_decl): Sanity check that only static vars are
363         finalized.
364
365 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
366
367         PR debug/45500
368         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
369         not just generic vectors with BLKmode.
370
371 2010-09-03  Richard Guenther  <rguenther@suse.de>
372
373         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
374         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
375         * tree.h (TMR_SYMBOL): Remove.
376         (TMR_BASE, TMR_OFFSET): Adjust.
377         (TMR_INDEX2): New.
378         * alias.c (ao_ref_from_mem): Use TMR_BASE.
379         * builtins.c (get_object_alignment): Merge TMR_BASE and
380         TMR_SYMBOL handling.
381         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
382         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
383         handling.  Also allow TARGET_MEM_REF as base address.
384         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
385         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
386         base.  Gimplify TMR_INDEX2.
387         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
388         * tree-dfa.c (get_ref_base_and_extent): Likewise.
389         (get_addr_base_and_unit_offset): Likewise.
390         * tree-eh.c (tree_could_trap_p): Likewise.
391         * tree-pretty-print.c (dump_generic_node): Likewise.
392         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
393         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
394         base to index2.
395         (get_address_description): Reconstruct addres description
396         from merged TMR_BASE and TMR_INDEX2.
397         (maybe_fold_tmr): Fold propagated addresses.
398         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
399         MEM_REF and TARGET_MEM_REF paths.
400         (indirect_refs_may_alias_p): Likewise.
401         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
402         instead of TMR_SYMBOL.
403         * tree-ssa-operands.c (get_tmr_operands): Simplify.
404         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
405         according to changes ...
406         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
407         Split TARGET_MEM_REF into two fields plus the base.
408         * tree.c (mem_ref_offset): Simplify.
409         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
410         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
411         Strip NOPs when folding MEM_REF addresses.
412         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
413         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
414         (fold_gimple_assign): ... not here.
415
416 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
417
418         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
419         * config/mips/mips.c (mips_shift_truncation_mask): New function.
420         (TARGET_SHIFT_TRUNCATION_MASK): Define.
421
422 2010-09-02  Richard Henderson  <rth@redhat.com>
423
424         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
425         instead of readelf in the test.
426         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
427         in the .debug_frame section for coff targets.
428         * configure: Rebuild.
429
430 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
431
432         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
433         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
434         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
435         (m32c_class_likely_spilled_p): Make static. Change argument type to
436         reg_class_t. Change result type to bool.
437
438 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
439
440         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
441         to convert (double)(long) into a single FRIZ instruction or not
442         when -ffast-math is used.
443
444         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
445         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
446         or FRIZ instruction if -ffast-math.
447         * config/rs6000/rs6000.md (friz): Ditto.
448
449         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
450
451 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
452
453         * opth-gen.awk (quote, comma): Remove unused variables.
454
455 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
456
457         * arm.c (arm_override_options): Correct fall-back code to use
458         SUBTARGET_CPU_DEFAULT.
459
460 2010-09-02  Julian Brown  <julian@codesourcery.com>
461
462         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
463         unspecs.
464         (vcond<mode>, vcondu<mode>): New expanders.
465         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
466         comparisons with zero.
467         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
468         * config/arm/constraints.md (Dz): New constraint.
469
470 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
471
472         * target.def (class_likely_spilled_p): New hook.
473         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
474         * doc/tm.texi: Regenerate.
475         * targhooks.c (default_class_likely_spilled_p): New function.
476         * targhooks.h (default_class_likely_spilled_p): Declare.
477         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
478         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
479         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
480         Use fixed_reg_set instead of fixed_regs.
481         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
482         * calls.c (avoid_likely_spilled_reg): Ditto.
483         * ira-conflicts.c (ira_build_conflicts): Ditto.
484         * ira.c (update_equiv_regs): Ditto.
485         * mode-switching.c (create_pre_exit): Ditto.
486         * regmove.c (find_matches): Ditto.
487         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
488         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
489         (small_register_class_p): New inline function.
490         (push_secondary_reload, find_reusable_reload, find_reloads): Use
491         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
492
493         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
494         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
495         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
496
497 2010-09-02  Richard Guenther  <rguenther@suse.de>
498
499         PR tree-optimization/44937
500         PR tree-optimization/45412
501         * ipa-split.c (split_function): Properly remove PHI nodes.
502
503 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
504
505         * opts.h (struct cl_option): Add warn_message field.
506         (struct cl_decoded_option): Add warn_message field.
507         * doc/options.texi (Ignore, Warn): Document.
508         * opt-functions.awk (needs_state_p): Don't consider aliases or
509         ignored options to need state saved.
510         * optc-gen.awk: Handle Warn and Ignore.
511         * opth-gen.awk: Output OPT_SPECIAL_ignore.
512         * opts-common.c (decode_cmdline_option): Set warn_message field.
513         Handle ignored options.
514         (decode_cmdline_options_to_array, generate_option,
515         generate_option_input_file): Set warn_message field.
516         (read_cmdline_option): Generate warnings from warn_message field.
517         Handle ignored options.
518         * common.opt (Wunreachable-code, fargument-alias,
519         fargument-noalias, fargument-noalias-global,
520         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
521         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
522         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
523         ftree-salias): Mark Ignore.
524         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
525         -mintel-syntax and -mno-intel-syntax here.
526         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
527         using Warn.
528         * opts.c (common_handle_option): Don't handle options marked as
529         ignored.
530         (enable_warning_as_error): Handle ignored options.
531
532 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
533
534         PR driver/44076
535         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
536         alias_target fields.
537         * opt-functions.awk (opt_sanitized_name): Don't handle
538         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
539         * optc-gen.awk: Generate alias fields.
540         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
541         Don't generate such constants for aliases.
542         * opts-common.c (generate_canonical_option): New.
543         (decode_cmdline_option): Handle aliases.  Use
544         generate_canonical_option for known options instead of copying the
545         input option text.
546         * doc/options.texi (Alias): Document.
547         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
548         fstack-check, specs): Mark as aliases.
549         * gcc.c (driver_handle_option): Canonicalize -L options to joined
550         arguments.
551         (driver_handle_option): Don't handle OPT_specs.
552         * opts.c (common_handle_option): Don't handle options marked as
553         aliases.
554         (enable_warning_as_error): Handle aliases.
555         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
556         OPT_Wlarger_than_eq.
557         * tree-optimize.c (tree_rest_of_compilation): Use
558         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
559
560 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
561
562         * config/i386/i386.md (nonmemory_operand): New mode attribute.
563         (push memory peephole2): Macroize peepholes using SWI mode iterator.
564         (move immediate to memory peephole2): Macroize peepholes using
565         SWI124 mode iterator.
566         (non-pairable NOT peephole2): Macroize peepholes using SWI124
567         mode iterator.
568         (simple lea add peephole2): Macroize peepholes using SWI48
569         mode iterator.
570         (simple lea mult peephole2): Ditto.
571         (imul by 3,5,9 to lea peephole2): Ditto.
572         (mov $-1, reg peephole2): Macroize peepholes using SWI248
573         mode iterator.
574         (imul $32bit_imm,mem,reg peephole2): Ditto.
575         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
576
577 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
578
579         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
580
581 2010-09-02  Olivier Hainque  <hainque@adacore.com>
582
583         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
584         (allocno_priority_compare_func): Use it instead of a straight
585         difference computation over priorities.
586
587 2010-09-02  Andi Kleen  <ak@linux.intel.com>
588
589         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
590
591 2010-09-02  Ira Rosen  <irar@il.ibm.com>
592
593         * tree-vectorizer.h (get_later_stmt): New function.
594         (vect_analyze_data_ref_dependences): Add argument.
595         * tree-vect-loop.c (vect_analyze_loop): Update call to
596         vect_analyze_data_ref_dependences.
597         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
598         New function.
599         (vect_analyze_data_ref_dependence): Add argument for basic block
600         dependencies. Check dependencies in basic block vectorization.
601         (vect_analyze_data_ref_dependences): Add argument and update call to
602         vect_analyze_data_ref_dependences.
603         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
604         (vect_bb_vectorizable_with_dependencies): New.
605         (vect_slp_analyze_bb): Check dependencies in basic block.
606         (vect_schedule_slp_instance): Insert stores before the last store in
607         SLP instance.
608
609 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
610
611         PR target/45476
612         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
613         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
614
615 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
616
617         PR middle-end/45458
618         * bb-reorder.c (add_labels_and_missing_jumps): Treat
619         bbs ending with throwing insns like blocks ending with a call.
620         (fix_up_fall_thru_edges): Likewise.
621
622 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
623
624         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
625         (m32c_function_arg_advance): Delete.
626         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
627         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
628         comments.  Take a const_tree and a bool.  Declare.
629         (m32c_function_arg_advance): Likewise.
630         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
631
632 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
633
634         PR target/45476
635         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
636         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
637         * config/i386/mingw32.h: ... here.
638
639 2010-09-01  Andi Kleen  <ak@linux.intel.com>
640
641         PR lto/45475
642         * lto-streamer-in.c (lto_input_ts_target_option): Add.
643         (lto_input_tree_pointers): Call lto_input_ts_target_option.
644         * lto-streamer-out (lto_output_ts_target_option): Add.
645         (lto_output_tree_pointers): Call lto_output_ts_target_option.
646
647 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
648
649         PR/target 45452
650         * config/i386/cygwin.h: Change order of specified import libraries.
651         * config/i386/mingw32.h: Likewise.
652         * config/i386/t-cygwin: Likewise.
653         * config/i386/t-mingw32: Likewise.
654         * config/i386/t-mingw-w32: Likewise.
655         * config/i386/t-mingw-w64: Likewise.
656
657 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
658
659         * config/arm/neon-schedgen.ml (core): New type.
660         (allCores): List of supported cores.
661         (availability_table): Add supported cores.
662         (collate_bypasses): Accept core as a parameter.
663         (worst_case_latencies_and_bypasses): Accept core as a parameter.
664         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
665         and coreStr to get tune attribute and prefix for functional units.
666         (emit_bypasses): Accept core name and use it.
667         (calculate_per_core_availability_table): New.
668         (filter_core): New.
669         (calculate_core_availability_table): New.
670         (main): Use calculate_core_availablity_table.
671         * config/arm/cortex-a8-neon.md: Update copyright year.
672         Regenerated from ml file and merged in.
673         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
674         cortex_a8_neon_mrc.
675
676 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
677
678         * Makefile.in (tree-switch-conversion.o): Update dependencies.
679
680 2010-09-01  Richard Guenther  <rguenther@suse.de>
681
682         * alias.c (ao_ref_from_mem): Adjust.
683         * builtins.c (get_object_alignment): Likewise.
684         * cfgexpand.c (expand_debug_expr): Likewise.
685         * gimple.c (get_base_address): Likewise.
686         * tree-dfa.c (get_ref_base_and_extent): Likewise.
687         (get_addr_base_and_unit_offset): Likewise.  Fix for
688         both TMR_SYMBOL and TMR_BASE being set.
689         * tree-eh.c (tree_could_trap_p): Likewise.
690         * gimplify.c (gimplify_expr): Do not attempt to gimplify
691         TMR_SYMBOL.  Always gimplify TMR_BASE.
692         * tree-cfg.c (verify_types_in_gimple_reference): Verify
693         TMR_BASE if there is a TMR_SYMBOL.
694         * tree-pretty-print.c (dump_generic_node): Adjust.
695         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
696         (tree_mem_ref_addr): Likewise.
697         (create_mem_ref_raw): Likewise.
698         (move_fixed_address_to_symbol): Likewise.
699         (create_mem_ref): Likewise.
700         (dump_mem_address): Likewise.
701         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
702         Fix for both TMR_SYMBOL and TMR_BASE being set.
703         (indirect_refs_may_alias_p): Likewise.
704         * tree-ssa-operands.c (get_tmr_operands): Adjust.
705         * tree.def (TARGET_MEM_REF): Adjust documentation.
706
707 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
708
709         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
710         Rename from X86_TUNE_ADD_ESP_4.
711         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
712         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
713         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
714         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
715         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
716         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
717         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
718         * config/i386/i386.c (initial_ix86_tune_features)
719         <X86_TUNE_SINGLE_POP>: Invert members.
720         <X86_TUNE_DOUBLE_POP>: Ditto.
721         <X86_TUNE_SINGLE_PUSH>: Ditto.
722         <X86_TUNE_DOUBLE_PUSH>: Ditto.
723         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
724         No longer exported.
725         (push peephole2 patterns): Macroize peepholes using P mode iterator.
726         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
727         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
728         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
729
730 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
731
732         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
733         a volatile LHS if the constructor has only one element.
734
735 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
736
737         PR bootstrap/45321
738         * tree.c (stdarg_p): Make fntype parameter const.
739         * tree.h (stdarg_p): Likewise.
740         (function_args_iterator): Remove unused fntype field.
741         (function_args_iter_init): Do not initialize fntype
742         field.  Make fntype parameter const.
743
744 2010-09-01  Richard Guenther  <rguenther@suse.de>
745
746         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
747         estimate.
748         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
749         (execute_vrp): Compute number of iteration estimates.
750         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
751         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
752         * tree-data-ref.c (estimated_loop_iterations): Adjust.
753         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
754         Infer loop bounds from undefined behavior based on a new parameter.
755         (estimate_numbers_of_iterations): Likewise.
756         (scev_probably_wraps_p): Adjust.
757         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
758
759 2010-09-01  Nick Clifton  <nickc@redhat.com>
760
761         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
762         where appropriate.
763         (xstormy16_legitimate_address_p): Use true and false instead of 1
764         and 0.
765         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
766         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
767         magic constant 2.
768         (xstormy16_expand_call): Fix comment at start of function.
769
770 2010-09-01  Nick Clifton  <nickc@redhat.com>
771
772         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
773         when pushing accumulator register.
774         (rx_get_stack_layout): Always save call clobbered registers inside
775         interrupt handlers.
776         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
777
778 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
779
780         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
781         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
782
783         * libgcc-std.ver (GCC_4.6.0): Define version.
784
785 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
786
787         * tree-nested.c (convert_all_function_calls): Iterate until after the
788         sum of static chains in the nest doesn't change.
789
790 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
791
792         * config/m32c/m32c.c (classes_intersect): Remove.
793         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
794         reg_classes_intersect_p instead of classes_intersect.
795         (class_can_hold_mode): Change arguments type from enum reg_class to
796         reg_class_t.  Use reg_class_contents instead of class_contents.
797         (m32c_register_move_cost): Make static. Change arguments type from
798         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
799         classes_intersect. Use reg_class_contents instead of class_contents.
800         (m32c_memory_move_cost): Make static. Change arguments type from
801         enum reg_class to reg_class_t.
802         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
803         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
804         * config/m32c/m32c-protos.h (m32c_register_move_cost,
805         m32c_memory_move_cost): Remove.
806
807 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
808
809         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
810         (arm_function_arg): Delete.
811         (arm_needs_doubleword_align): Take a const_tree.
812         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
813         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
814         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
815         (arm_function_arg): Make static.  Take a const_tree and a bool.
816         (arm_function_arg_advance): Likewise.
817         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
818
819 2010-08-31  Andi Kleen  <ak@linux.intel.com>
820
821         * common.opt (fwhopr=): Update for -fwhopr=jobserver
822         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
823         * lto-wrapper.c (run_gcc): Add jobserver mode.
824         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
825         argument.
826
827 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
828
829         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
830         (popsi1): Ditto.
831         (*popdi1_epilogue): Ditto.
832         (*popsi1_epilogue): Ditto.
833         (popsi, popdi peephole2 patterns): Update peepholes for changed
834         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
835
836         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
837         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
838
839         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
840         (override_options): Do not initialize removed ix86_gen_pop1.
841         (gen_pop): New static function.
842         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
843         (release_scratch_register_on_entry): Ditto.
844         (ix86_restore_reg_using_pop): Ditto.
845         (ix86_expand_epilogue): Ditto.
846
847 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
848
849         PR middle-end/45461
850         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
851
852 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
853
854         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
855         semicolons.
856
857 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
858
859         * doc/extend.texi: Fix documentation of the return value of
860         __builtin_choose_expr.
861
862 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
863
864         * config/v850/v850-protos.h (function_arg): Delete.
865         * config/v850/v850.h (FUNCTION_ARG): Delete.
866         (FUNCTION_ARG_ADVANCE): Move code to...
867         * config/v850/v850.c (v850_function_arg_advance): ...here.
868         (v850_function_arg): Make static.  Take a const_tree and a bool.
869         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
870
871 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
872
873         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
874         these...
875         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
876         ...and these...
877         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
878         ..to here..
879         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
880         ...and here.
881         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
882
883 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
884
885         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
886         Delete.
887         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
888         * config/rx/rx.c (rx_function_arg_size): Make static.
889         (rx_function_arg): Likewise.
890         (rx_function_arg_advance): New function.
891         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
892
893 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
894
895         * config/arm/arm.c (arm_override_options): Remove superfluous test.
896         Fix indentation.
897
898 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
899
900         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
901         (dwarf2out_decl) <CONST_DECL>: Likewise.
902
903 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
904
905         Stack usage support
906         * common.opt (-fstack-usage): New option.
907         * doc/invoke.texi (Debugging options): Document it.
908         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
909         allocate_dynamic_stack_space.
910         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
911         and propagate it to allocate_dynamic_stack_space.
912         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
913         * calls.c (initialize_argument_information): Pass TRUE as 4th
914         argument to allocate_dynamic_stack_space.
915         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
916         to 1 when pushing a variable-sized argument onto the stack.  Pass
917         TRUE as 4th argument to allocate_dynamic_stack_space.
918         Update current_function_pushed_stack_size.
919         (emit_library_call_value_1): Likewise.
920         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
921         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
922         attempt to find an upper bound.  Remove redundant code for the
923         SETJMP_VIA_SAVE_AREA case.
924         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
925         * function.h (struct stack_usage): New structure.
926         (current_function_static_stack_size): New macro.
927         (current_function_dynamic_stack_size): Likewise.
928         (current_function_pushed_stack_size): Likewise.
929         (current_function_dynamic_alloc_count): Likewise.
930         (current_function_has_unbounded_dynamic_stack_size): Likewise.
931         (current_function_allocates_dynamic_stack_space): Likewise.
932         (struct function): Add new field 'su'.
933         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
934         add the value of the dynamic offset to the dynamic stack usage.
935         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
936         for variable-sized objects.
937         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
938         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
939         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
940         BUILT_IN_ALLOCA for variable-sized objects.
941         * output.h (output_stack_usage): Declare.
942         * toplev.c (stack_usage_file): New file pointer.
943         (output_stack_usage): New function.
944         (open_auxiliary_file): Likewise.
945         (lang_dependent_init): Open file if flag_stack_usage is set.
946         (finalize): Close file if stack_usage_file is not null.
947         * tree.h (ALLOCA_FOR_VAR_P): New macro.
948         * config/alpha/alpha.c (compute_frame_size): New function.
949         (alpha_expand_prologue): Use it.
950         (alpha_start_function): Likewise.
951         (alpha_expand_epilogue): Likewise.  Set stack usage info.
952         * config/i386/i386.c (ix86_expand_prologue): Likewise.
953         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
954         * config/mips/mips.c (mips_expand_prologue): Likewise.
955         * config/pa/pa.c (hppa_expand_prologue): Likewise.
956         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
957         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
958
959 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
960
961         PR tree-optimization/45427
962         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
963         Handle the case that the exit is never taken correctly.
964         (number_of_iterations_ne): Pass exit_must_be_taken to
965         number_of_iterations_ne_max.
966
967 2010-08-30  Catherine Moore  <clm@codesourcery.com>
968
969         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
970         Infer -mdspr2 for the the 74K.
971
972 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
973
974         PR debug/45419
975         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
976
977         PR middle-end/45423
978         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
979         and TRUTH_{AND,OR,XOR}_EXPR.
980         * c-parser.c (c_parser_omp_atomic): Handle boolean
981         {PRE,POST}_{INC,DEC}REMENT.
982
983 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
984
985         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
986         (function_arg): Delete.
987         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
988         (FUNCTION_INCOMING_ARG): Delete.
989         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
990         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
991         and a bool.
992         (function_arg): Rename to...
993         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
994         a bool.
995         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
996         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
997         (TARGET_FUNCTION_INCOMING_ARG): Define.
998
999 2010-08-30  Richard Guenther  <rguenther@suse.de>
1000
1001         PR tree-optimization/21602
1002         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
1003         using points-to information.
1004
1005 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
1006
1007         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
1008
1009 2010-08-30  Richard Guenther  <rguenther@suse.de>
1010
1011         PR tree-optimization/45449
1012         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
1013         variables.
1014
1015 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
1016
1017         * opts.h (CL_ERR_NEGATIVE): Define.
1018         * opts.c (unknown_option_callback): Don't postpone warnings for
1019         options marked with CL_ERR_NEGATIVE.
1020         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
1021         for negative versions of CL_REJECT_NEGATIVE options.
1022
1023 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
1024
1025         * config/i386/i386.md (zero_extendsidi2_1): Rename from
1026         zero_extendsidi2_32.
1027         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
1028         using SWI12 mode iterator.
1029         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
1030         to define_insn_and_split pattern.
1031         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
1032         using SWI24 mode iterator.
1033         (*zero_extendqi<mode>2_and): Macroize insn from
1034         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
1035         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
1036         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
1037         SWI24 mode iterator.
1038         (*zero_extendqi<mode>2_movzbl): Ditto from
1039         *zero_extendqi{hi,si}2_movzbl.
1040         (extendsidi2_1): Rename from extendsidi2_32.
1041         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
1042         SWI12 mode iterator.
1043
1044 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
1045
1046         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
1047         general purpose registers.
1048         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
1049         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
1050         with general purpose registers and memory operands.  Add associated
1051         CCImode post-reload splitter.
1052         * config/ia64/div.md: Change BImode to CCImode throughout.
1053
1054 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
1055
1056         * config/ia64/ia64.md (cstorebi4): Fix thinko.
1057
1058 2010-08-28  Hariharan Sandanagobalane <hariharan@picochip.com>
1059
1060         * config/picochip/picochip.c (reorder_var_tracking_notes): This
1061         function was dropping debug insns which caused PR45299.
1062
1063 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
1064
1065         * config/i386/sse.md (extsuffix): New code attribute.
1066         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
1067         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
1068         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
1069         and sse4_1_zero_extendv4qiv4si2.
1070         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
1071         and sse4_1_zero_extendv2qiv2di2.
1072         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
1073         and sse4_1_zero_extendv4hiv4si2.
1074         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
1075         and sse4_1_zero_extendv2hiv2di2.
1076         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
1077         and sse4_1_zero_extendv2siv2di2
1078
1079         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
1080         using any_extend code iterator.
1081         (*avx_<s>mulv8hi3_highpart): Macroize insn from
1082         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
1083         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
1084
1085         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
1086         gen_sse4_1_sign_extend* functions.
1087         (struct builtin_description bdesc_args): Ditto.
1088
1089 2010-08-27  Xinliang David Li  <davidxl@google.com>
1090
1091         PR/45422
1092         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
1093         (iv_ca_set_no_cp): Update used inv expr count.
1094         (iv_ca_set_cp): Ditto.
1095         (iv_ca_new): Initialize new member.
1096         (iv_ca_free): Free memory.
1097
1098 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
1099
1100         * config/sh/sh-protos.h (sh_function_arg): Delete.
1101         (sh_function_arg_advance): Delete.
1102         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1103         (PASS_IN_REG_P): Eliminate cast.
1104         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
1105         const_tree and a bool.
1106         (sh_function_arg): Likewise.
1107         (sh_output_mi_thunk): Call sh_function_arg_advance) and
1108         sh_function_arg.
1109         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1110
1111 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
1112             Kaz Kojima  <kkojima@gcc.gnu.org>
1113
1114         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
1115         when possible.
1116         (sh_expand_epilogue): Likewise.
1117         * config/sh/sh.md (movml_push_banked): New insn.
1118         (movml_pop_banked): Likewise.
1119
1120 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
1121
1122         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
1123         gen_regexp_oneof, gen_regexp_sequence): Use the string found
1124         in vector element 0 rather than the original string when there's
1125         only one element.
1126         (gen_regexp): Remove extra semicolon.
1127
1128         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
1129         thumb2_movsf_vfp): Set attribute "insn".
1130         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
1131         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
1132         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
1133         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
1134         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
1135         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
1136         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
1137         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
1138         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
1139         if_not_arith, if_arith_not, cond_move_not): Likewise.
1140
1141 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1142
1143         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
1144         New declaration.
1145         (rs6000_allocate_stack_temp): Ditto.
1146         (rs6000_expand_convert_si_to_sfdf): Ditto.
1147
1148         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
1149         line.  Update the options set if power6 or power7 server/embedded
1150         type options are used.  If we give a warning for no vsx under
1151         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
1152         (rs6000_allocate_stack_temp): New function to allocate a stack
1153         tempoary and adjust the address so it meets either REG+OFFSET or
1154         REG+REG addressing requirements.
1155         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
1156         that they can be used with the LFIWAX/LFIWZX instrucitons.
1157         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
1158         converting signed/unsigned SImode to either SFmode/DFmode.
1159
1160         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
1161         whether certain instructions can be generated.
1162         (TARGET_FCTIDZ): Ditto.
1163         (TARGET_STFIWX): Ditto.
1164         (TARGET_LFIWAX): Ditto.
1165         (TARGET_LFIWZX): Ditto.
1166         (TARGET_FCFIDS): Ditto.
1167         (TARGET_FCFIDU): Ditto.
1168         (TARGET_FCFIDUS): Ditto.
1169         (TARGET_FCTIDUZ): Ditto.
1170         (TARGET_FCTIWUZ): Ditto.
1171
1172         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
1173         (UNSPEC_FCTID): Ditto.
1174         (UNSPEC_LFIWAX): Ditto.
1175         (UNSPEC_LFIWZX): Ditto.
1176         (UNSPEC_FCTIWUZ): Ditto.
1177         (rreg): Use correct constraints.
1178         (SI_CONVERT_FP): New mode attribute for floating point conversion
1179         tests.
1180         (E500_CONVERT): Ditto.
1181         (lfiwax): New insns for converting from integer to floating point
1182         utilizing newer instructions.  Attempt to optimize conversions
1183         that come from memory so that we don't load the value into a GPR,
1184         spill it to the stack and reload it into a FPR.
1185         (floatsi<mode>2_lfiwax): Ditto.
1186         (floatsi<mode>2_lfiwax_mem): Ditto.
1187         (floatsi<mode>2_lfiwax_mem2): Ditto.
1188         (lfiwzx): Ditto.
1189         (floatunssi<mode>2_lfiwzx): Ditto.
1190         (floatunssi<mode>2_lfiwzx_mem): Ditto.
1191         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
1192         (floatdidf2_mem): Ditto.
1193         (floatunsdidf2_fcfidu): Ditto.
1194         (floatunsdidf2_mem): Ditto.
1195         (floatunsdisf2): Ditto.
1196         (floatunsdisf2_fcfidus): Ditto.
1197         (floatunsdisf2_mem): Ditto.
1198         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
1199         Use FCFID on 32-bit hosts that support it.
1200         (floatsidf2_internal): Ditto.
1201         (floatunssisf2): Ditto.
1202         (floatunssidf2): Ditto.
1203         (floatunssidf2_internal): Ditto.
1204         (floatsisf2): Ditto.
1205         (floatdidf2): Ditto.
1206         (floatdidf2_fpr): Ditto.
1207         (floatunsdidf2): Ditto.
1208         (floatdisf2): Ditto.
1209         (floatdisf2_fcfids): Ditto.
1210         (floatdisf2_internal1): Ditto.
1211         (fixuns_truncsfsi2): Delete, merge into common pattern for both
1212         SF/DF.  Add power7 support.
1213         (fix_truncsfsi2): Ditto.
1214         (fixuns_truncdfsi2): Ditto.
1215         (fixuns_truncdfdi2): Ditto.
1216         (fix_truncdfsi2): Ditto.
1217         (fix_truncdfsi2_internal): Ditto.
1218         (fix_truncdfsi2_internal_gfxopt): Ditto.
1219         (fix_truncdfsi2_mfpgpr): Ditto.
1220         (fctiwz): Ditto.
1221         (btruncdf2): Ditto.
1222         (btruncdf2_fpr): Ditto.
1223         (btructsf2): Ditto.
1224         (ceildf2): Ditto.
1225         (ceildf2_fpr): Ditto.
1226         (ceilsf2): Ditto.
1227         (floordf2): Ditto.
1228         (floordf2_fpr): Ditto.
1229         (floorsf2): Ditto.
1230         (rounddf2): Ditto.
1231         (rounddf2_fpr): Ditto.
1232         (roundsf2): Ditto.
1233         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
1234         (fix_trunc<mode>di2): Ditto.
1235         (fixuns_trunc<mode>si2): Ditto.
1236         (fixuns_trunc<mode>di2): Ditto.
1237         (fctiwz_<mode>): Ditto.
1238         (btrunc<mode>2): Ditto.
1239         (btrunc<mode>2_fpr): Ditto.
1240         (ceil<mode>2): Ditto.
1241         (ceil<mode>2_fpr): Ditto.
1242         (floor<mode>2): Ditto.
1243         (float<mode>2_fpr): Ditto.
1244         (round<mode>2): Ditto.
1245         (round<mode>2_fpr): Ditto.
1246         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
1247         (fixuns_trunc<mode>si2_stfiwx): Ditto.
1248         (fix_truncdfsi2_internal): Ditto.
1249         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
1250         converted value on stack, loaded into GPR, and then stored into
1251         the final destination.
1252         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
1253         FCTIDZ.
1254         (lrint<mode>di2): New insn, provide the lrint builtin functions.
1255         (ftruncdf2): Delete, unused.
1256         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
1257
1258         * config/rs6000/vsx.md (toplevel): Update copyright year.
1259         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
1260         (VSr3): Ditto.
1261
1262 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
1263             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1264
1265         * gengtype.c (output_type_enum): Test the right union member.
1266
1267 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
1268
1269         PR target/41484
1270         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
1271         operands for operand 1.
1272         (sse4_1_extendv4qiv4si2): Ditto.
1273         (sse4_1_extendv2qiv2di2): Ditto.
1274         (sse4_1_extendv4hiv4si2): Ditto.
1275         (sse4_1_extendv2hiv2di2): Ditto.
1276         (sse4_1_extendv2siv2di2): Ditto.
1277         (sse4_1_zero_extendv8qiv8hi2): Ditto.
1278         (sse4_1_zero_extendv4qiv4si2): Ditto.
1279         (sse4_1_zero_extendv2qiv2di2): Ditto.
1280         (sse4_1_zero_extendv4hiv4si2): Ditto.
1281         (sse4_1_zero_extendv2hiv2di2): Ditto.
1282         (sse4_1_zero_extendv2siv2di2): Ditto.
1283         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
1284         (*sse4_1_extendv4qiv4si2): Ditto.
1285         (*sse4_1_extendv2qiv2di2): Ditto.
1286         (*sse4_1_extendv4hiv4si2): Ditto.
1287         (*sse4_1_extendv2hiv2di2): Ditto.
1288         (*sse4_1_extendv2siv2di2): Ditto.
1289         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
1290         (*sse4_1_zero_extendv4qiv4si2): Ditto.
1291         (*sse4_1_zero_extendv2qiv2di2): Ditto.
1292         (*sse4_1_zero_extendv4hiv4si2): Ditto.
1293         (*sse4_1_zero_extendv2hiv2di2): Ditto.
1294         (*sse4_1_zero_extendv2siv2di2): Ditto.
1295
1296 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
1297
1298         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
1299         (mips_function_arg): Delete.
1300         (mips_function_arg_boundary): Take a const_tree.
1301         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
1302         (mips_arg_info): Likewise.
1303         (mips_setup_incoming_varargs): Call mips_function_arg_advance
1304         instead of FUNCTION_ARG_ADVANCE.
1305         (mips_function_arg_advance): Adjust prototype.  Make static.
1306         (mips_function_arg): Likewise.
1307         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1308         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
1309
1310 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
1311
1312         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1313         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
1314         (function_arg): Delete.
1315         (function_arg_boundary): Take a const_tree.
1316         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
1317         (rs6000_spe_function_arg): Likewise.
1318         (rs6000_parm_start): Likewise.
1319         (rs6000_arg_size): Likewise.
1320         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
1321         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
1322         (rs6000_mixed_function_arg): Likewise.
1323         (function_arg): Rename to...
1324         (rs6000_function_arg): ...this.
1325         (function_arg_advance): Rename to...
1326         (rs6000_function_arg_advance_1): ...this
1327         (rs6000_function_arg_advance): New function.  Call it.
1328         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
1329         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
1330         (rs6000_function_value): Likewise.
1331         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1332
1333 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1334
1335         * config/arm/arm.md (enabled): Test the value of arch_enabled
1336         rather than just using it.
1337
1338 2010-08-27  Olivier Hainque  <hainque@adacore.com>
1339             Eric Botcazou  <ebotcazou@adacore.com>
1340
1341         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
1342         cover all the possible offsets from this base.
1343         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
1344
1345 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
1346
1347         PR tree-optimization/44485
1348         * calls.c (flags_from_decl_or_type): For const or pure
1349         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
1350         together with ECF_CONST resp. ECF_PURE.
1351         * builtins.c (expand_builtin): Use flags_from_decl_or_type
1352         instead of querying flags directly.
1353         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
1354         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
1355
1356 2010-08-26  Richard Guenther  <rguenther@suse.de>
1357
1358         PR tree-optimization/45255
1359         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
1360         and externals are also invariant.
1361
1362 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
1363
1364         PR rtl-optimization/44858
1365         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
1366         newi2pat, make sure they don't affect newpat.
1367
1368         PR rtl-optimization/45400
1369         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
1370         SUBREG_REG if both modes are of MODE_INT class.
1371
1372 2010-08-25  Julian Brown  <julian@codesourcery.com>
1373
1374         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
1375         * config/arm/arm.md (generic_sched): No for Cortex-A5.
1376         (generic_vfp): Likewise.
1377         (cortex-a5.md): Include.
1378         * config/arm/cortex-a5.md: New.
1379
1380 2010-08-25  Richard Guenther  <rguenther@suse.de>
1381
1382         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
1383         * gimple.c (gimple_get_alias_set): Remove special handling
1384         for pointers.
1385
1386 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
1387
1388         PR middle-end/45355
1389         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
1390         dead_or_set_p when computing i0_feeds_i2_n.
1391
1392         * combine.c (find_split_point): Undo canonicalization of multiply-add
1393         to (minus x (mult)) when it seems likely that this will increase the
1394         chances of a split.
1395
1396 2010-08-25  Richard Guenther  <rguenther@suse.de>
1397
1398         PR lto/44562
1399         * lto-streamer.c (lto_record_common_node): Do not mess with
1400         TYPE_CANONICAL when not in lto.
1401         * gimple.c (gimple_register_type): Likewise.
1402
1403 2010-08-25  Richard Guenther  <rguenther@suse.de>
1404
1405         PR tree-optimization/45316
1406         * tree-ssa-pre.c (eliminate): Properly clean EH info.
1407
1408 2010-08-25  Richard Guenther  <rguenther@suse.de>
1409
1410         PR tree-optimization/45393
1411         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
1412         and clean EH info.  Avoid SSA update.
1413         (execute_cse_sincos): Cleanup the CFG if it has changed.
1414
1415 2010-08-25  Richard Guenther  <rguenther@suse.de>
1416
1417         PR middle-end/45379
1418         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
1419         TARGET_MEM_REF in alignment computation.
1420
1421 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
1422
1423         PR tree-optimization/45059
1424         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
1425         type conversions from newop{1,2}.  Assert t is a comparison and
1426         newop{1,2} after the stripping are gimple vals.
1427
1428 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
1429
1430         * config/arm/iterators.md (VU, SE, V_widen_l): New.
1431         (V_unpack, US): New.
1432         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
1433         (vec_unpack<US>_lo_<mode>): Likewise.
1434         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
1435         (neon_vec_unpack<US>_lo_<mode>): Likewise.
1436         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
1437         (vec_widen_<US>mult_hi_<mode>): Likewise.
1438         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
1439         (neon_vec_<US>mult_hi_<mode>"): Likewise.
1440         (neon_unpack<US>_<mode>): Widening move intermediate step for
1441         vectorizing without -mvectorize-with-neon-quad.
1442         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
1443         for vectorizing without -mvectorize-with-neon-quad.
1444         * config/arm/predicates.md (vect_par_constant_high): Check for
1445         high-half lanes of a vector.
1446         (vect_par_constant_low): Check for low-half lanes of a vector.
1447
1448 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
1449
1450         * tree-if-conv.c (struct ifc_dr): New.
1451         (IFC_DR): New.
1452         (DR_WRITTEN_AT_LEAST_ONCE): New.
1453         (DR_RW_UNCONDITIONALLY): New.
1454         (memref_read_or_written_unconditionally): Use the cached values
1455         when possible.
1456         (write_memref_written_at_least_once): Same.
1457         (if_convertible_loop_p): Initialize and free DR->aux fields.
1458
1459 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
1460
1461         * gimple.c (gimple_could_trap_p_1): Not static anymore.
1462         Pass an extra bool parameter include_mem.
1463         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
1464         (gimple_assign_rhs_could_trap_p): Same.
1465         * gimple.h (gimple_could_trap_p_1): Declared.
1466         * tree-data-ref.h (same_data_refs_base_objects): New.
1467         (same_data_refs): New.
1468         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
1469         (write_memrefs_written_at_least_once): New.
1470         (ifcvt_memrefs_wont_trap): New.
1471         (operations_could_trap): New.
1472         (ifcvt_could_trap_p): New.
1473         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
1474         Gets a vector of data refs.
1475         (if_convertible_stmt_p): Same.
1476         (if_convertible_loop_p_1): New.
1477         (if_convertible_loop_p): Call if_convertible_loop_p_1.
1478
1479 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
1480
1481         * common.opt (ftree-loop-if-convert-stores): New flag.
1482         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
1483         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
1484         the created statement before GSI.
1485         (if_convertible_phi_p): Allow virtual phi nodes when
1486         flag_loop_if_convert_stores is set.
1487         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
1488         Do not handle types that do not match is_gimple_reg_type.
1489         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
1490         when flag_loop_if_convert_stores is set, as LHS can contain
1491         memory refs.
1492         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
1493         to if_convertible_gimple_assign_stmt_p.
1494         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
1495         (replace_phi_with_cond_gimple_assign_stmt): Renamed
1496         predicate_scalar_phi.  Do not handle virtual phi nodes.
1497         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
1498         Call predicate_scalar_phi.
1499         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
1500         just after the labels for flag_loop_if_convert_stores, otherwise
1501         insert the predicate in the end of the BB.
1502         (predicate_mem_writes): New.
1503         (combine_blocks): Call predicate_all_scalar_phis.  When
1504         flag_loop_if_convert_stores is set, call predicate_mem_writes.
1505         (tree_if_conversion): Call mark_sym_for_renaming when
1506         flag_loop_if_convert_stores is set.
1507         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
1508         flag_loop_if_convert_stores is set.
1509
1510 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
1511
1512         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
1513         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
1514         (pa_function_value): Make static.
1515         (override_options): Rename to...
1516         (pa_option_override): ...this. Make static.
1517         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
1518         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
1519         TARGET_OPTION_OVERRIDE): Define.
1520         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
1521         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
1522         Remove.
1523         * config/pa/pa-protos.h (override_options): Remove.
1524
1525 2010-08-24  Richard Guenther  <rguenther@suse.de>
1526
1527         PR middle-end/45379
1528         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
1529         if addr->index is NULL or zero.
1530         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
1531         TARGET_MEM_REF more properly.
1532         (indirect_ref_may_alias_decl_p): Likewise.
1533         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
1534         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
1535
1536 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
1537
1538         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
1539         (m32c_override_options): Rename to...
1540         (m32c_option_override): ...this. Make static.
1541         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
1542         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
1543         Remove.
1544         * config/m32c/m32c-protos.h (m32c_override_options,
1545         m32c_function_value_regno_p): Remove.
1546
1547 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
1548
1549         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
1550         Fix a typo in a previous commit.
1551
1552 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
1553
1554         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
1555         Pre-initialize innerloop_iters to one.
1556
1557 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
1558
1559         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
1560         existing static function global.
1561
1562         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
1563         is changed to global.
1564
1565         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
1566         may_be_nonaddressable_p on base, and don't collect this reference
1567         if the address of the base could not be taken.
1568
1569 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1570
1571         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
1572         enable the compiler to autovectorize mathmetical functions for
1573         power7 using the Mathematical Acceleration Subsystem library.
1574
1575         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
1576         handle which vector math library we have.
1577         (rs6000_override_options): Add -mveclibabi=mass support.
1578         (rs6000_builtin_vectorized_libmass): New function to handle auto
1579         vectorizing math functions that are in the MASS library.
1580         (rs6000_builtin_vectorized_function): Call it.
1581
1582         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1583         -mveclibabi=mass.
1584
1585 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1586
1587         PR boehm-gc/34544
1588         * gthr-posix.h (__gthread_active_init): Delete.
1589         (__gthread_active_p): Do activity check here.
1590         Don't include errno.h on hppa-hpux.  Update comment.
1591         * gthr-posix95.h (__gthread_active_init): Delete.
1592         (__gthread_active_p): Do activity check here.
1593         Don't include errno.h on hppa-hpux.  Update comment.
1594         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
1595         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
1596         add -lpthread when -mt or -pthread is specified.
1597         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
1598         (LINK_GCC_C_SEQUENCE_SPEC): Define.
1599         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
1600         (stublib.c, pthread_default_stacksize_np-stub.o,
1601         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
1602         $(T)libgcc_stub.a): Add methods.
1603         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
1604         (stublib.c, pthread_default_stacksize_np-stub.o,
1605         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
1606         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
1607         pthread_mutex_unlock): New stubs.
1608
1609 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
1610
1611         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
1612         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
1613         options.
1614         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
1615         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
1616         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
1617         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
1618         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
1619         "-l".
1620         * cppspec.c: Include opts.h.
1621         (lang_specific_driver): Use cl_decoded_option structures.
1622         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
1623         * doc/tm.texi: Regenerate.
1624         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
1625         (driver_handle_option): Allow driver options needing no special
1626         processing.
1627         (process_command): Decode options before call to
1628         lang_specific_driver.  Pass decoded options to
1629         lang_specific_driver.
1630         * gcc.h (lang_specific_driver): Update prototype.
1631         * gccspec.c: Include opts.h.
1632         (lang_specific_driver): Use cl_decoded_option structures.
1633         * opts-common.c (option_ok_for_language, generate_option,
1634         generate_option_input_file): New.
1635         (decode_cmdline_option): Use option_ok_for_language.
1636         (decode_cmdline_options_to_array): Use generate_option_input_file.
1637         (handle_generated_option): Use generate_option.
1638         * opts.h (generate_option, generate_option_input_file): Declare.
1639
1640 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
1641
1642         * config/mips/mips.c (mips_override_options): Rename to...
1643         (mips_option_override): ...this. Make static.
1644         (TARGET_OPTION_OVERRIDE): Define.
1645         (mips_in_small_data_p): Update comment.
1646         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
1647         (FIXED_REGISTERS): Update comment.
1648         * config/mips/mips-protos.h (mips_override_options): Remove.
1649
1650 2010-08-21  Olivier Hainque  <hainque@adacore.com>
1651
1652         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
1653
1654 2010-08-21  Olivier Hainque  <hainque@adacore.com>
1655
1656         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
1657         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
1658
1659 2010-08-20  Jan Hubicka  <jh@suse.cz>
1660
1661         * tree-pass.h (pass_ipa_cdtor_merge): New function.
1662         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
1663         heap allocated.
1664         (record_cdtor_fn): Move to ipa.c; do not test for
1665         have_ctors_dtors.
1666         (build_cdtor): Move to ipa.c; add code avoiding construction
1667         when target have ctors/dtors and there is only one ctor/dtor at given
1668         priority.
1669         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
1670         sort; reverse order of constructors.
1671         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
1672         (cgraph_finalize_function): Do not call record_cdtor_fn.
1673         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
1674         (cgraph_build_static_cdtor): Move to ipa.c.
1675         * ipa.c: Include target.h and tree-iterator.h.
1676         (cgraph_build_static_cdtor, static_ctors, static_dtors,
1677         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
1678         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
1679         pass_ipa_cdtor_merge): New.
1680         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
1681         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
1682         bounds access.
1683
1684 2010-08-20  Jan Hubicka  <jh@suse.cz>
1685
1686         PR c++/45307
1687         PR c++/17736
1688         * cgraph.h (cgraph_only_called_directly_p,
1689         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
1690         static cdtors.
1691         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
1692         are not needed.
1693         (cgraph_finalize_function): Static cdtors are reachable.
1694         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
1695
1696 2010-08-20  Jan Hubicka  <jh@suse.cz>
1697
1698         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
1699         flag_wpa.
1700         * lto-streamer-out.c (lto_output): Likewise.
1701         * passes.c (ipa_write_optimization_summaries): Initialize statement
1702         uids.
1703
1704 2010-08-20  Olivier Hainque  <hainque@adacore.com>
1705
1706         * tree.h (alias_diag_flags): New enum.
1707         (alias_pair): Add an 'emitted_diags' field.
1708         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
1709         (assemble_alias): Initialize emitted_diags of new pairs.
1710
1711 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
1712
1713         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
1714         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1715         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1716         (STACK_CHECK_PROTECT): Define.
1717         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
1718         (output_probe_stack_range): Likewise.
1719         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
1720         builtin stack checking is enabled.
1721         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
1722         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
1723         (probe_stack_range): New insn.
1724
1725 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1726
1727         PR target/45336
1728         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
1729         short first.
1730
1731         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
1732         char first.
1733
1734 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1735
1736         PR target/45336
1737         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
1738         to cover zero extension into 64-bit register.
1739         (*sse2_pextrw): Likewise.
1740         (*sse4_1_pextrd_zext): New insn.
1741
1742 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
1743
1744         revert r163410, partially revert r163267.
1745         * config/rs6000/darwin.h (LIB_SPEC): Remove.
1746         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
1747         Darwin versions.
1748
1749 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1750
1751         PR middle-end/44974
1752         * builtins.c (expand_builtin): Don't optimize away
1753         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
1754
1755 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
1756
1757         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
1758         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
1759         alternative 1 of operand 2.
1760
1761 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1762             Paolo Bonzini  <bonzini@gnu.org>
1763
1764         * simplify-rtx.c (simplify_unary_operation_1): Optimize
1765         (sign_extend (zero_extend (...)) and
1766         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
1767
1768 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1769
1770         PR rtl-optimization/45353
1771         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
1772         after bb_note is a BARRIER.
1773
1774 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
1775
1776         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
1777         linking libgcc.a.
1778
1779 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1780             Michael Matz  <matz@suse.de>
1781
1782         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
1783
1784 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
1785
1786         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
1787         (ggc_mark_roots): ...here.
1788
1789 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
1790
1791         * vec.h (FOR_EACH_VEC_ELT): Define.
1792         * c-decl.c: Use it.
1793         * cfgloop.c: Likewise.
1794         * cfgloopmanip.c: Likewise.
1795         * cgraph.c: Likewise.
1796         * cgraphunit.c: Likewise.
1797         * combine.c: Likewise.
1798         * config/bfin/bfin.c: Likewise.
1799         * config/mips/mips.c: Likewise.
1800         * config/rs6000/rs6000.c: Likewise.
1801         * dbxout.c: Likewise.
1802         * df-scan.c: Likewise.
1803         * dominance.c: Likewise.
1804         * dse.c: Likewise.
1805         * dwarf2out.c: Likewise.
1806         * except.c: Likewise.
1807         * expr.c: Likewise.
1808         * function.c: Likewise.
1809         * gcse.c: Likewise.
1810         * genattr.c: Likewise.
1811         * ggc-common.c: Likewise.
1812         * gimplify.c: Likewise.
1813         * graphite-blocking.c: Likewise.
1814         * graphite-clast-to-gimple.c: Likewise.
1815         * graphite-dependences.c: Likewise.
1816         * graphite-interchange.c: Likewise.
1817         * graphite-poly.c: Likewise.
1818         * graphite-scop-detection.c: Likewise.
1819         * graphite-sese-to-poly.c: Likewise.
1820         * graphite.c: Likewise.
1821         * haifa-sched.c: Likewise.
1822         * ifcvt.c: Likewise.
1823         * implicit-zee.c: Likewise.
1824         * ipa-prop.c: Likewise.
1825         * ipa-struct-reorg.c: Likewise.
1826         * ipa.c: Likewise.
1827         * ira-build.c: Likewise.
1828         * ira-color.c: Likewise.
1829         * ira-emit.c: Likewise.
1830         * lambda-code.c: Likewise.
1831         * loop-invariant.c: Likewise.
1832         * loop-unroll.c: Likewise.
1833         * lower-subreg.c: Likewise.
1834         * lto-cgraph.c: Likewise.
1835         * lto-opts.c: Likewise.
1836         * lto-streamer-in.c: Likewise.
1837         * lto-streamer-out.c: Likewise.
1838         * lto-streamer.c: Likewise.
1839         * lto-symtab.c: Likewise.
1840         * matrix-reorg.c: Likewise.
1841         * opts.c: Likewise.
1842         * predict.c: Likewise.
1843         * print-tree.c: Likewise.
1844         * sdbout.c: Likewise.
1845         * sel-sched-dump.c: Likewise.
1846         * sel-sched-ir.c: Likewise.
1847         * sel-sched.c: Likewise.
1848         * sese.c: Likewise.
1849         * stor-layout.c: Likewise.
1850         * tree-cfg.c: Likewise.
1851         * tree-cfgcleanup.c: Likewise.
1852         * tree-chrec.c: Likewise.
1853         * tree-data-ref.c: Likewise.
1854         * tree-emutls.c: Likewise.
1855         * tree-inline.c: Likewise.
1856         * tree-into-ssa.c: Likewise.
1857         * tree-loop-distribution.c: Likewise.
1858         * tree-loop-linear.c: Likewise.
1859         * tree-mudflap.c: Likewise.
1860         * tree-outof-ssa.c: Likewise.
1861         * tree-parloops.c: Likewise.
1862         * tree-predcom.c: Likewise.
1863         * tree-pretty-print.c: Likewise.
1864         * tree-scalar-evolution.c: Likewise.
1865         * tree-ssa-live.c: Likewise.
1866         * tree-ssa-loop-im.c: Likewise.
1867         * tree-ssa-loop-ivcanon.c: Likewise.
1868         * tree-ssa-loop-ivopts.c: Likewise.
1869         * tree-ssa-loop-manip.c: Likewise.
1870         * tree-ssa-loop-niter.c: Likewise.
1871         * tree-ssa-loop-prefetch.c: Likewise.
1872         * tree-ssa-phiprop.c: Likewise.
1873         * tree-ssa-pre.c: Likewise.
1874         * tree-ssa-reassoc.c: Likewise.
1875         * tree-ssa-sccvn.c: Likewise.
1876         * tree-ssa-structalias.c: Likewise.
1877         * tree-ssa.c: Likewise.
1878         * tree-vect-data-refs.c: Likewise.
1879         * tree-vect-loop-manip.c: Likewise.
1880         * tree-vect-loop.c: Likewise.
1881         * tree-vect-patterns.c: Likewise.
1882         * tree-vect-slp.c: Likewise.
1883         * tree-vect-stmts.c: Likewise.
1884         * tree-vrp.c: Likewise.
1885         * tree.c: Likewise.
1886         * value-prof.c: Likewise.
1887         * var-tracking.c: Likewise.
1888         * varasm.c: Likewise.
1889         * vmsdbgout.c: Likewise.
1890
1891 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
1892             Richard Guenther  <richard.guenther@gmail.com>
1893
1894         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
1895         copy the src value and return a copy.
1896         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
1897         (C++ Volatiles): Adjust to describe C++ semantics only.
1898
1899 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
1900
1901         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
1902         be zero or nonzero.
1903         * doc/tm.texi: Regenerate.
1904         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
1905         * df-scan.c (df_get_exit_block_use_set), reginfo.c
1906         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
1907         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
1908         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
1909         to 1.
1910
1911 2010-08-20  Olivier Hainque  <hainque@adacore.com>
1912
1913         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
1914         an extra nop past a sibling call at the very end.
1915
1916 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
1917
1918         PR bootstrap/45350
1919         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
1920         a comment.
1921
1922 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
1923
1924         * target.def (function_arg, function_incoming_arg): Remove const
1925         qualifier on CUMULATIVE_ARGS parameter.
1926         * targhooks.h (default_function_arg, default_function_incoming_arg):
1927         Likewise.
1928         * targhooks.c (default_function_arg, default_function_incoming_arg):
1929         Likewise.
1930         * config/i386/i386.c (ix86_function_arg): Likewise.
1931
1932 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
1933
1934         PR target/45336
1935         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
1936         SIGN_EXTENDs or ZERO_EXTENDs.
1937
1938 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
1939
1940         PR target/42172
1941         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
1942         Take its cost into account if nonnull.
1943         (insn_a_feeds_b): New static function.
1944         (combine_instructions): Look for four-insn combinations.
1945         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
1946         them into account when computing all_adjacent and looking for other
1947         uses.
1948         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
1949         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
1950         (try_combine): New arg I0.  Handle four-insn combinations.
1951         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
1952         like ELIM_I1.
1953
1954 2010-08-19  Jason Merrill  <jason@redhat.com>
1955
1956         PR c++/45307
1957         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
1958         if ctor is empty.
1959         (gimplify_modify_expr_rhs): Adjust.
1960
1961 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
1962
1963         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
1964         bitmap_bit_p.
1965         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
1966         * dominance.c (iterate_fix_dominators): Likewise.
1967         * dse.c (set_usage_bits): Likewise.
1968         (set_position_unneeded, record_store): Likewise.
1969         * gimple-fold.c (get_maxval_strlen): Likewise.
1970         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
1971         * ipa-inline.c (update_caller_keys): Likewise.
1972         * ipa-split.c (verify_non_ssa_vars): Likewise.
1973         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
1974         (close_type_exposed_parameter, close_type_full_escape): Likewise.
1975         (close_addressof_down): Likewise.
1976         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
1977         (setup_allocno_left_conflicts_size): Likewise.
1978         (ira_reassign_conflict_allocnos): Likewise.
1979         (ira_reassign_pseudos): Likewise.
1980         * ira-emit.c (change_loop): Likewise.
1981         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
1982         * lto-streamer-out.c (write_symbol): Likewise.
1983         * predict.c (expr_expected_value_1): Likewise.
1984         * regstat.c (regstat_bb_compute_ri): Likewise.
1985         * sel-sched.c (create_block_for_bookkeeping): Likewise.
1986         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
1987         * stmt.c (expand_case): Likewise.
1988         * tree-eh.c (emit_eh_dispatch): Likewise.
1989         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
1990         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
1991         Likewise.
1992         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
1993         (rdg_build_components): Likewise.
1994         * tree-object-size.c (collect_object_sizes_for): Likewise.
1995         * tree-sra.c (convert_callers): Likewise.
1996         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
1997         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
1998         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
1999
2000 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
2001
2002         * config/i386/i386.md (*lea_1): Use P mode iterator.
2003         (lea add splitter): Also handle DImode operands.
2004         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
2005         predicate.  Do not use ix86_lea_for_add_ok.
2006         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
2007         (lea ashift splitter): Also handle DImode operands.
2008         (DImode lea ashift splitter): Remove splitter.
2009
2010 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
2011
2012         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
2013         ix86_binary_operator_ok.
2014
2015 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
2016
2017         PR rtl-optimization/44691
2018         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
2019         is not a register.
2020
2021 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
2022
2023         PR target/45070
2024         * config/arm/arm.c (arm_output_epilogue): Ensure that return
2025          value of size 1-3 is handled correctly.
2026
2027 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
2028
2029         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
2030         type for the conditional has wide enough range.
2031
2032 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
2033
2034         PR target/45327
2035         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
2036         ix86_binary_operator_ok.
2037
2038 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
2039
2040         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
2041         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
2042         code to output insn mnemonic.  Fix comment.
2043         (*addsi_1_zext): Add r-r-0 alternative 1.
2044         <TYPE_LEA>: Split insn to lea.
2045         <default>: Handle alternative 1.
2046         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
2047         multi-level if_then_else RTX to set "type" attribute.
2048         <default>: Handle alternative 2.
2049         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
2050         Use cond RTX instead of multi-level if_then_else RTX to set
2051         "type" attribute.
2052         <default>: Handle alternatives 2 and 4.
2053         (lea splitters): Update calls to ix86_lea_for_add_ok.
2054
2055         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
2056         argument.
2057         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
2058
2059 2010-08-18  Richard Guenther  <rguenther@suse.de>
2060
2061         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
2062         use operand helpers.
2063
2064 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
2065
2066         PR middle-end/45292
2067         * optabs.c (expand_bool_compare_and_swap): Expand pending
2068         pops before trying the optab.
2069
2070 2010-08-18  Yao Qi  <yao@codesourcery.com>
2071
2072         PR target/45094
2073         * config/arm/arm.c (output_move_double): Fix typo generating
2074         instructions ('ldr'->'str').
2075
2076 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
2077
2078         PR rtl-optimization/42575
2079         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
2080         live ranges.
2081
2082 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2083
2084         * config/arm/arm-protos.h (arm_expand_sync): New.
2085         (arm_output_memory_barrier, arm_output_sync_insn): New.
2086         (arm_sync_loop_insns): New.
2087         * config/arm/arm.c (FL_ARCH7): New.
2088         (FL_FOR_ARCH7): Include FL_ARCH7.
2089         (arm_arch7): New.
2090         (arm_print_operand): Support %C markup.
2091         (arm_legitimize_sync_memory): New.
2092         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
2093         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
2094         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
2095         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
2096         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
2097         (arm_process_output_sync_insn, arm_output_sync_insn): New.
2098         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
2099         * config/arm/arm.h (struct arm_sync_generator): New.
2100         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
2101         (TARGET_HAVE_MEMORY_BARRIER): New.
2102         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
2103         * config/arm/arm.md: Include sync.md.
2104         (UNSPEC_MEMORY_BARRIER): New.
2105         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
2106         (VUNSPEC_SYNC_OP):New.
2107         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
2108         (sync_result, sync_memory, sync_required_value): New attributes.
2109         (sync_new_value, sync_t1, sync_t2): Likewise.
2110         (sync_release_barrier, sync_op): Likewise.
2111         (length): Add logic to length attribute defintion to call
2112         arm_sync_loop_insns when appropriate.
2113         * config/arm/sync.md: New file.
2114
2115 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
2116
2117         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
2118         ENABLE_TREE_CHECKING.
2119         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
2120         and GCC >= 4.3.
2121
2122 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
2123
2124         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
2125         or optimizing for size, always avoid lea if possible.
2126
2127         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
2128
2129 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
2130
2131         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
2132         Dunmmy function with NULL return unless the target is
2133         OSX >= 10.6 (Darwin10).
2134
2135 2010-08-17  Jack Howarth <howarth@bromo.med.uc.edu>
2136
2137         * gcc.c (spec_function): Add remove-outfile.
2138         (remove_outfile_spec_function): New function.
2139         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
2140         * invoke.texi (replace-outfile): Document.
2141
2142 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
2143
2144         PR target/45296
2145         * reginfo.c (globalize_reg): Reject stack registers.
2146
2147 2010-08-17  Richard Guenther  <rguenther@suse.de>
2148
2149         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
2150         list of conditional equivalences.
2151         (free_all_edge_infos): Adjust.
2152         (record_equivalences_from_incoming_edge): Likewise.
2153         (record_cond): Likewise.
2154         (build_and_record_new_cond): Likewise.
2155         (record_conditions): Likewise.
2156         (dom_opt_leave_block): Likewise.
2157
2158 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
2159
2160         * doc/invoke.texi (ms-extension): Add documentation.
2161
2162 2010-08-17  Richard Guenther  <rguenther@suse.de>
2163
2164         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
2165
2166 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
2167
2168         PR c/40563
2169         * c-decl.c (diagnose_uninitialized_cst_member): New function.
2170         (finish_decl): Use it to issue a -Wc++-compat warning about
2171         uninitialized const field in struct or union.
2172
2173         (finish_struct): Use strip_array_types.
2174
2175 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
2176
2177         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
2178         functions.
2179         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
2180         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
2181         call block_nreverse here.
2182         (blocks_nreverse): Rename decl temporary to block.
2183
2184 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
2185
2186         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
2187         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
2188         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
2189         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
2190         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
2191         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
2192         thumb2_iorsi3): Delete.
2193         (orsi_notsi_si): No longer a named pattern.
2194         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
2195         * config/arm/predicates.md (shift_amount_operand): New.
2196         (mult_operator): New.
2197         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
2198         attr enabled): New.
2199         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
2200         arch matches t2.
2201         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
2202         (not_shiftsi_compare0): Likewise, renamed from
2203         arm_notsi_shiftsi_compare0.
2204         (not_shiftsi_compare0_scratch): Likweise, renamed from
2205         arm_notsi_shiftsi_compare0_scratch.
2206         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
2207         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
2208         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
2209         so that the register alternative is disabled when the shift_operator
2210         is MULT.  Use "M" as the constraint for constants.
2211         (arith_shiftsi splitter): Enable for TARGET_32BIT.
2212         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
2213         constraint for constants.
2214         (arith_shiftsi_compare0_scratch): Likewise.
2215         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
2216         Handle Thumb2 alternative.
2217
2218 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
2219
2220         * doc/options.texi (NoDriverArg): Document.
2221         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
2222         -MDX and -MMDX.
2223         * opt-functions.awk (switch_flags): Handle NoDriverArg.
2224         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
2225         marking for CL_NO_DRIVER_ARG options when in the driver.
2226         * opts.h (CL_NO_DRIVER_ARG): Define.
2227         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2228         CL_COMMON): Update values.
2229
2230 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
2231
2232         * common.opt: Add driver options.
2233         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
2234         * doc/options.texi (Driver, RejectDriver): Document.
2235         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
2236         print_prog_name, print_multi_directory, print_sysroot,
2237         print_multi_os_directory, print_multi_lib,
2238         print_sysroot_headers_suffix, report_times, combine_flag,
2239         use_pipes, wrapper_string): Remove.
2240         (save_switch, driver_unknown_option_callback,
2241         driver_wrong_lang_callback, driver_post_handling_callback,
2242         driver_handle_option): New.
2243         (spec_lang, last_language_n_infiles): Make file-scope static
2244         instead of local to process_command.
2245         (process_command): Use decode_cmdline_options_to_array and
2246         read_cmdline_option for option processing.  Compute have_c in
2247         prescan of decoded options.
2248         * opt-functions.awk (switch_flags): Handle Driver and
2249         RejectDriver.
2250         (var_type, var_type_struct): Handle Separate options as generating
2251         const char * variables.
2252         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
2253         CL_TARGET to be passed by caller if required.
2254         (decode_cmdline_options_to_array): Update comment.
2255         * opts.c (complain_wrong_lang): Handle options only valid for the
2256         driver.
2257         (decode_options): Update call to decode_cmdline_options_to_array.
2258         (print_filtered_help): Ignore driver-only options.
2259         (print_specific_help): Ignore CL_DRIVER.
2260         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
2261         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
2262         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
2263         Update values.
2264
2265 2010-08-16  Richard Guenther  <rguenther@suse.de>
2266
2267         * tree-cfg.c (verify_types_in_gimple_reference): Verify
2268         TARGET_MEM_REF a bit.
2269         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
2270         (create_mem_ref_raw): Always create TMR_OFFSET, store the
2271         alias pointer type via it.
2272         (copy_mem_ref_info): Adjust.
2273         (maybe_fold_tmr): Likewise.
2274         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
2275         (reference_alias_ptr_type): Likewise.
2276         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
2277         adjust documentation of TMR_OFFSET operand.
2278         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
2279         use the alias pointer type.
2280         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
2281         initialize mem attrs but the TMR itself.
2282         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
2283         similar to MEM_REF.
2284         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
2285         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
2286         (unshare_and_remove_ssa_names): Likewise.
2287         (copy_ref_info): Adjust.
2288         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
2289         TARGET_MEM_REF case.
2290         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
2291         at TMR_ORIGINAL.
2292         * tree.h (TMR_ORIGINAL): Remove.
2293         * gimple.c (get_base_address): For TARGET_MEM_REF with a
2294         symbol return that.
2295         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
2296         with a symbol.
2297         (get_addr_base_and_unit_offset): Likewise.
2298         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
2299         TARGET_MEM_REFs.
2300         (indirect_ref_may_alias_decl_p): Likewise.
2301         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
2302
2303 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
2304
2305         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
2306         with GCC version 4.6, the default setting (when not optimizing
2307         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
2308         been changed to -fomit-frame-pointer.
2309
2310 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
2311
2312         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
2313         Darwin10.  Do not link libgcc.a for Darwin >= 9.
2314
2315 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
2316
2317         * doc/invoke.texi (Warning Options): Fix terminology and markup
2318         in the description of how unknown warning options are handled.
2319
2320 2010-08-15  Ira Rosen  <irar@il.ibm.com>
2321
2322         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
2323         in basic blocks.
2324         (vect_supportable_dr_alignment): Check alignment for basic blocks.
2325         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
2326         data references.
2327         (vect_bb_vectorization_profitable_p): New function.
2328         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
2329         check if it's worthwhile to vectorize the basic block.
2330
2331 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
2332
2333         * reload.h (register_move_cost, memory_move_secondary_cost,
2334         secondary_reload_class): Adjust prototype.
2335         * rtl.h (reg_class_subset_p): Adjust prototype.
2336         * reload.c (secondary_reload_class): Change arguments type from
2337         enum reg_class to reg_class_t. Change result type to reg_class_t.
2338         * reginfo.c (register_move_cost, reg_class_subset_p): Change
2339         arguments type from enum reg_class to reg_class_t.
2340         (memory_move_secondary_cost): Change arguments type from
2341         enum reg_class to reg_class_t. Change type of saved_flags to
2342         reg_class_t.
2343
2344         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
2345         Remove macros.
2346         (mips_cost): Remove.
2347         (struct mips_rtx_cost_data): Moved to mips.c.
2348         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
2349         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
2350         (mips_cost): Make static.
2351         (mips_canonicalize_move_class): Change argument type to reg_class_t.
2352         Change result type to reg_class_t.
2353         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
2354         type from enum reg_class to reg_class_t.
2355         (mips_register_move_cost): Make static. Change arguments
2356         type from enum reg_class to reg_class_t.
2357         (mips_memory_move_cost): New function.
2358         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2359
2360 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
2361
2362         PR rtl-optimization/43358
2363         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
2364         of a single hard register, using simplify_subreg_regno to decide
2365         what that register should be.
2366
2367 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
2368
2369         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
2370         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
2371         (loongson_pmull<V_suffix>): Rename to...
2372         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
2373
2374 2010-08-13  Jack Howarth <howarth@bromo.med.uc.edu>
2375
2376         * gcc/configure.ac: Enable -fomit-frame-pointer on darwin
2377         which support dwarf2.
2378         * config/i386/i386.c (override_options): Same.
2379
2380 2010-08-13  Jie Zhang  <jie@codesourcery.com>
2381
2382         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
2383
2384 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
2385
2386         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
2387         -MMD.
2388
2389 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
2390
2391         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
2392         up dot_prod pattern searching if a stmt is outside the loop.
2393
2394 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
2395             Uros Bizjak  <ubizjak@gmail.com>
2396
2397         * config.gcc: Handle --enable-frame-pointer.
2398
2399         * configure.ac: Add --enable-frame-pointer.
2400         * configure: Regenerated.
2401
2402         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
2403         (override_options): If not configured with --enable-frame-pointer,
2404         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
2405         optimizing for size), -fasynchronous-unwind-tables and
2406         -maccumulate-outgoing-args by default.
2407
2408 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
2409
2410         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
2411
2412         PR middle-end/45262
2413         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
2414         -a overflows.  Normalize the range.
2415
2416 2010-08-12  Richard Guenther  <rguenther@suse.de>
2417
2418         PR tree-optimization/45232
2419         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
2420         for types with undefined overflow.
2421         (reassociate_bb): Allow re-associating of bit and min/max
2422         operations for types with undefined overflow.
2423         * tree-ssa-forwprop.c (associate_plusminus): New function.
2424         (tree_ssa_forward_propagate_single_use_vars): Call it.
2425
2426 2010-08-12  Richard Guenther  <rguenther@suse.de>
2427
2428         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
2429         * tree-ssa-alias.c (get_ptr_info): Move ...
2430         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
2431         align and misalign fields conservatively.
2432         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
2433         derive alignment information.
2434         (evaluate_stmt): Derive alignment information from memory
2435         allocation functions.
2436         * tree.h (get_pointer_alignment): Make unsigned.
2437         * builtins.c (get_object_alignment): Use alignment information we
2438         have computed for pointers.
2439         (get_pointer_alignment): Likewise.  Make conservative, return
2440         and unsigned value.
2441         (expand_builtin_strlen): Adjust.
2442         (expand_builtin_memcmp): Likewise.
2443         (expand_builtin_strcmp): Likewise.
2444         (expand_builtin_strncmp): Likewise.
2445         (get_builtin_sync_mem): Use at least mode alignment.
2446         (fold_builtin_memset): Adjust.
2447         (fold_builtin_memory_op): Likewise.
2448         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
2449         information also dump pointer alignment knowledge.
2450         (dump_gimple_stmt): Likewise.
2451
2452 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
2453
2454         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
2455         (EMPTY_FIELD_BOUNDARY): Remove.
2456         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
2457
2458 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
2459
2460         PR debug/45259
2461         * caller-save.c (save_call_clobbered_regs): Only swap notes with
2462         DEBUG_INSNs if n_regs_saved.
2463
2464 2010-08-12  Wei Guozhi  <carrot@google.com>
2465
2466         PR target/44999
2467         * config/arm/arm.md (andsi3): Change to zero extension if possible.
2468         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
2469
2470 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
2471
2472         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
2473
2474         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
2475
2476 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2477
2478         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
2479         the case removed in the previous patch, when the only phi argument
2480         is defined in the same loop as the phi node itself.  Handle it
2481         separately from the invariant case by both propagating it outside
2482         the region and replacing the phi node with an assign.
2483
2484 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2485
2486         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
2487         constant phi nodes with one argument are is_gimple_min_invariant
2488         and SSA_NAME_IS_DEFAULT_DEF.
2489
2490 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2491
2492         * graphite-cloog-util.c (oppose_constraint):
2493         Extend loop counter's value range (CLOOG_ORG).
2494         (cloog_matrix_to_ppl_constraint): Same.
2495         (new_Constraint_System_from_Cloog_matrix): Same.
2496         * graphite-cloog-compat.h (matrix_num_type): New.
2497
2498 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2499
2500         * graphite.c (graphite_initialize): Do not initialize
2501         CLooG and initialize the Parma Polyhedra Library
2502         manually when using CLOOG_ORG.
2503         (graphite_finalize): Do not finalize CLooG and finalize
2504         the Parma Polyhedra Library manually when using CLOOG_ORG.
2505         * graphite-cloog-compat.h (cloog_initialize): Hide function
2506         when using CLOOG_ORG.
2507         (cloog_finalize): Same.
2508
2509 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2510
2511         * graphite-clast-to-gimple.c (free_scattering): Change
2512         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
2513         (CLOOG_ORG).
2514         (build_cloog_prog): Same.
2515         * graphite-cloog-compat.h (cloog_domain): Removed.
2516         (cloog_scattering): New.
2517         (cloog_set_domain): Removed.
2518         (cloog_set_scattering): New.
2519         (cloog_next_domain): Removed.
2520         (cloog_next_scattering): New.
2521         (cloog_set_next_domain): Removed.
2522         (cloog_set_next_scattering): New.
2523         (CloogScatteringList): New.
2524         (CloogScattering): New.
2525         (cloog_scattering_free): New.
2526         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
2527         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
2528         New.
2529
2530 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2531
2532         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
2533         CloogState.
2534         (set_cloog_options): Same.
2535         (print_clast_stmt): Same.
2536         (scop_to_clast): Same.
2537         (print_generated_program): Same.
2538         (gloog): Same.
2539         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
2540         (scop_to_clast): Extend with CloogState.
2541         * graphite-cloog-util.c: Include graphite-cloog-compat.h
2542         (new_Cloog_Domain_from_ppl_Polyhedron):
2543         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
2544         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
2545         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2546         * graphite-cloog-util.h (build_cloog_prog): Same.
2547         * graphite-cloog-copat.h (build_cloog_prog): New.
2548         (CloogState): New.
2549         (cloog_state_malloc): New.
2550         (cloog_state_free): New.
2551         (cloog_loop_malloc): New.
2552         (cloog_options_malloc): New.
2553         (cloog_statement_alloc): New.
2554         (cloog_domain_from_cloog_matrix): New.
2555         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
2556         (new_Cloog_Domain_from_ppl_Polyhedron): New.
2557
2558 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2559
2560         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
2561         type of NAME now depends on used CLooG version.
2562         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
2563         (gcc_type_for_clast_expr): Same.
2564         (print_clast_stmt): Replace pprint with clast_pprint.
2565         * graphite-cloog-compat.h: Provide compatibility macros for
2566         CLooG Legacy.
2567         (clast_name_p): New.
2568         (clast_expr_term): New.
2569         (clast_expr_red): New.
2570         (clast_expr_bin): New.
2571         (clast_pprint): New.
2572
2573 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2574
2575         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
2576         compatible to newer CLooG releases (CLOOG_ORG).
2577         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
2578         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
2579         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
2580         (build_cloog_prog) : New.
2581         (cloog_program_extract_scalars): New.
2582         (cloog_program_scatter): New.
2583
2584 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2585
2586         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
2587         conditionally (CLOOG_ORG).
2588         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
2589         (cloog_statement_usr): New.
2590         (cloog_domain): Same.
2591         (cloog_set_domain): Same.
2592         (cloog_next_domain): Same.
2593         (cloog_set_next_domain): Same.
2594         (cloog_program_nb_scattdims): Same.
2595         (cloog_program_set_nb_scattdims): Same.
2596         (cloog_program_names): Same.
2597         (cloog_program_set_names): Same.
2598         (cloog_program_set_context): Same.
2599         (cloog_program_set_loop): Same.
2600         (cloog_program_blocklist): Same.
2601         (cloog_program_set_blocklist): Same.
2602         (cloog_program_scaldims): Same.
2603         (cloog_program_set_scaldims): Same.
2604         (cloog_names_nb_parameters): Same.
2605         (cloog_names_set_nb_parameters): Same.
2606         (cloog_names_parameters): Same.
2607         (cloog_names_set_parameters): Same.
2608         (cloog_names_set_nb_iterators): Same.
2609         (cloog_names_set_iterators): Same.
2610         (cloog_names_set_nb_scattering): Same.
2611         (cloog_names_set_scattering): Same.
2612         (cloog_statement_set_usr): Same.
2613         (cloog_loop_set_next): Same.
2614         (cloog_loop_set_domain): Same.
2615         (cloog_loop_set_block): Same.
2616         (cloog_block_list_next): Same.
2617         (cloog_block_list_set_next):
2618         (cloog_block_list_set_block): Same.
2619
2620 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2621
2622         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
2623         a bool.
2624         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
2625         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
2626         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
2627         when something has been changed.
2628         (rewrite_commutative_reductions_out_of_ssa): Same.
2629
2630 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2631
2632         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
2633         handle the case when def is in the sese region.
2634         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
2635         for invariant expressions.
2636         (rewrite_cross_bb_phi_deps): Removed.
2637         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
2638         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
2639         rewrite_cross_bb_phi_deps.
2640
2641 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2642
2643         * graphite-sese-to-poly.c
2644         (rewrite_commutative_reductions_out_of_ssa_loop): Call
2645         scev_analyzable_p only on is_gimple_reg
2646
2647 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2648
2649         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
2650         (rewrite_close_phi_out_of_ssa): Propagate constant values or
2651         parametric expressions outside the scop region.
2652         (rewrite_cross_bb_scalar_deps): Same.
2653         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
2654
2655 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2656
2657         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
2658         SSA_NAME_DEF_STMT only on SSA_NAMEs.
2659
2660 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2661
2662         * tree-scalar-evolution.c (instantiate_scev_name): Do not
2663         instantiate default definitions.
2664
2665 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
2666             Sebastian Pop  <sebastian.pop@amd.com>
2667
2668         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
2669         (loop_exits_from_bb_p): New.
2670         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
2671         (loop_exits_from_bb_p): Declared.
2672         * graphite-scop-detection.c (scopdet_basic_block_info): Call
2673         loop_exits_to_bb_p.
2674
2675 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2676
2677         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
2678         extra parameter for the region.  Call scev_analyzable_p.
2679         (rewrite_reductions_out_of_ssa): Update call to
2680         rewrite_close_phi_out_of_ssa.
2681         (rewrite_cross_bb_phi_deps): Same.
2682         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
2683         parameter for the region.  Call scev_analyzable_p.
2684         (rewrite_commutative_reductions_out_of_ssa): Update call to
2685         rewrite_commutative_reductions_out_of_ssa_loop.
2686
2687 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2688
2689         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
2690
2691 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2692
2693         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
2694         SSA scalar phi nodes that can be scev_analyzable_p.
2695
2696 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2697
2698         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
2699         handle SSA_NAME_IS_DEFAULT_DEF.
2700
2701 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2702
2703         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
2704
2705 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2706
2707         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
2708         case non close-phi nodes with one argument.
2709
2710 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2711
2712         * sese.h (scev_analyzable_p): Scevs could be expressions without
2713         chrecs and still be scev_analyzable_p.
2714
2715 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2716
2717         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
2718
2719 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2720
2721         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
2722         * cfgloop.h (struct loop): Remove single_iv field.
2723         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
2724         (scop_canonicalize_loops): Removed.
2725         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
2726         over all the loop phi nodes in loop->header.
2727         (build_poly_scop): Remove use of scop_canonicalize_loops.
2728
2729 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2730
2731         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
2732         handle GIMPLE_CALL.
2733
2734 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2735
2736         * tree-chrec.c (chrec_apply): Should only apply to the specified
2737         variable.  Also handle multivariate chains of recurrences that
2738         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
2739
2740 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2741
2742         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
2743         (debug_clast_name_indexes_1): Removed.
2744         (debug_clast_name_indexes): Removed.
2745         (pbb_to_depth_to_oldiv): Removed.
2746         (build_iv_mapping): Replace the use of rename_map with iv_map.
2747         (translate_clast_user): Remove uses of rename_map.  Allocate and
2748         free iv_map.
2749         (translate_clast_for_loop): Remove uses of rename_map.
2750         (translate_clast_for): Same.
2751         (translate_clast_guard): Same.
2752         (translate_clast): Same.
2753         (gloog): Same.
2754         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
2755         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
2756         * sese.c (set_rename): Now static.
2757         (rename_variables_in_stmt): Removed.
2758         (rename_uses): New.
2759         (is_parameter): Removed.
2760         (is_iv): Removed.
2761         (expand_scalar_variables_call): Removed.
2762         (expand_scalar_variables_ssa_name): Removed.
2763         (expand_scalar_variables_expr): Removed.
2764         (expand_scalar_variables_stmt): Removed.
2765         (expand_scalar_variables): Removed.
2766         (rename_variables): Removed.
2767         (remove_condition): Removed.
2768         (get_true_edge_from_guard_bb): Removed.
2769         (get_false_edge_from_guard_bb): Removed.
2770         (struct igp): Removed.
2771         (default_before_guard): Removed.
2772         (convert_for_phi_arg): Removed.
2773         (add_guard_exit_phis): Removed.
2774         (insert_guard_phis): Removed.
2775         (graphite_copy_stmts_from_block): Now also uses iv_map and a
2776         region.  Do not copy conditions.  Do not copy induction variables.
2777         Call rename_uses.
2778         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
2779         the translated statement.  Use the iv_map for the induction
2780         variable renaming.
2781         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2782         (set_rename): Removed declaration.
2783         (scev_analyzable_p): ...here.
2784         * tree-chrec.c (chrec_apply_map): New.
2785         * tree-chrec.h (chrec_apply_map): Declared.
2786
2787 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2788
2789         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
2790         insert_loop_close_phis.
2791         * sese.c (name_defined_in_loop_p): Removed.
2792         (expr_defined_in_loop_p): Removed.
2793         (alive_after_loop): Removed.
2794         (close_phi_not_yet_inserted_p): Removed.
2795         (struct alep): Removed.
2796         (add_loop_exit_phis): Removed.
2797         (insert_loop_close_phis): Removed.
2798
2799 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2800
2801         * graphite-cloog-util.c
2802         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
2803         * graphite-poly.c
2804         (psct_scattering_dim_for_loop_depth): Same.
2805
2806 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2807
2808         * graphite-cloog-util.h: Added cloog.h.
2809         * graphite-blocking.c: Removed cloog.h.
2810         * graphite-dependences.c: Same.
2811         * graphite-interchange.c: Same.
2812         * graphite-poly.c: Same.
2813         * graphite-ppl.c: Same.
2814         * graphite-scop-detection.c: Same.
2815         * graphite-sese-to-poly.c:
2816         Removed cloog.h.
2817         Removed graphite-clast-to-gimple.h.
2818         (check_poly_representation): Removed (unused).
2819         * graphite-sese-to-poly.h
2820         (check_poly_representation): Removed (unused).
2821
2822 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2823
2824         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
2825         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
2826         (graphite-cloog-util.o): New.
2827         (graphite-ppl.o): Added graphite-cloog-util.h.
2828         * graphite-clast-to-gimple.c:
2829         Added graphite-cloog-util.h to include statements.
2830         * graphite-cloog-util.c: New.
2831         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
2832         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2833         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2834         (new_C_Polyhedron_from_Cloog_Matrix): Same.
2835         (insert_constraint_into_matrix): Same.
2836         (ppl_Constrain_System_number_of_constraints): Same.
2837         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
2838         (oppose_constraint): Same.
2839         (cloog_matrix_to_ppl_constraint): Same.
2840         (new_Constraint_System_from_Cloog_Matrix): Same.
2841         * graphite-cloog-util.h: New.
2842         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
2843         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2844         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2845         (new_C_Polyhedron_from_Cloog_Matrix): Same.
2846         (insert_constraint_into_matrix): Same.
2847         * graphite-ppl.c:
2848         Added graphite-cloog-util.h to include statements.
2849         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
2850         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2851         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2852         (new_C_Polyhedron_from_Cloog_Matrix): Same.
2853         (insert_constraint_into_matrix): Same.
2854         (ppl_Constrain_System_number_of_constraints): Same.
2855         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
2856         (oppose_constraint): Same.
2857         (cloog_matrix_to_ppl_constraint): Same.
2858         (new_Constraint_System_from_Cloog_Matrix): Same.
2859         * graphite-ppl.h:
2860         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
2861         graphite-cloog-util.h.
2862         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2863         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2864         (new_C_Polyhedron_from_Cloog_Matrix): Same.
2865         (insert_constraint_into_matrix): Same.
2866
2867 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2868
2869         * graphite-clast-to-gimple.c
2870         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
2871         (precision_for_interval): Same.
2872         (gcc_type_for_interval): Same.
2873         (compute_type_for_level): Same.
2874         * graphite-interchange.c
2875         (lst_interchange_profitable_p): Same.
2876         * graphite-poly.c
2877         (psct_scattering_dim_for_loop_depth): Same.
2878         * graphite-ppl.c
2879         (ppl_max_for_le_pointset): Same.
2880         (ppl_min_for_le_pointset): Same.
2881
2882 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2883
2884         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
2885         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
2886
2887 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2888
2889         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
2890         rewrite_close_phi_out_of_ssa.
2891
2892 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2893
2894         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
2895
2896 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2897
2898         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
2899         rename_map.
2900         * sese.c (debug_rename_map): Same.
2901         (get_rename): Same.
2902         (set_rename): Same.
2903         (rename_variables_in_stmt): Same.
2904         (expand_scalar_variables_call): Same.
2905         (expand_scalar_variables_ssa_name): Same.
2906         (expand_scalar_variables_expr): Same.
2907         (expand_scalar_variables_stmt): Same.
2908         (expand_scalar_variables): Same.
2909         (rename_variables): Same.
2910         (graphite_copy_stmts_from_block): Same.
2911         (copy_bb_and_scalar_dependences): Same.
2912
2913 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2914
2915         * graphite-clast-to-gimple.c (copy_renames): Removed.
2916         (translate_clast_for): Do not call copy_renames.
2917         (translate_clast_guard): Same.
2918
2919 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2920
2921         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
2922         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
2923         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
2924         before rewrite_cross_bb_scalar_deps.
2925
2926 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2927
2928         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
2929         Early return in when flag_associative_math is not set.
2930
2931 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2932
2933         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
2934         of SSA copies on edges except for loop->latch.
2935
2936 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2937
2938         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
2939         Split out of rewrite_reductions_out_of_ssa.
2940         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
2941         Declared.
2942         * graphite.c (graphite_transform_loops): Call it.
2943
2944 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2945
2946         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
2947
2948 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
2949
2950         * dbgcnt.def (graphite_scop): New counter.
2951         * graphite.c: Include dbgcnt.h.
2952         (graphite_transform_loops): Use new counter to limit transformations.
2953         * Makefile.in (graphite.o): Depend on DBGCNT_H.
2954
2955 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2956
2957         * passes.c (init_optimization_passes): Add pass_graphite.
2958         Schedule a pass_copy_prop before pass_graphite_transforms.
2959         * timevar.def (TV_GRAPHITE): Declared.
2960         * tree-pass.h (pass_graphite): Declared.
2961         * tree-ssa-loop.c (pass_graphite): New.
2962
2963 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2964
2965         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
2966         Remove calls to rename_nb_iterations and rename_sese_parameters.
2967         * graphite-clast-to-gimple.h (gloog): Update declaration.
2968         * graphite.c (graphite_transform_loops): Update call to gloog.
2969         * sese.c (rename_variables_in_expr): Removed.
2970         (rename_nb_iterations): Removed.
2971         (rename_sese_parameters): Removed.
2972         * sese.h (rename_nb_iterations): Removed.
2973         (rename_sese_parameters): Removed.
2974
2975 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2976
2977         * graphite-clast-to-gimple.c (gloog): Remove call to
2978         sese_adjust_liveout_phis.
2979         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
2980         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
2981         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
2982         rewrite_phi_out_of_ssa.
2983         * sese.c (get_vdef_before_sese): Removed.
2984         (sese_adjust_vphi): Removed.
2985         (sese_adjust_liveout_phis): Removed.
2986         * sese.h (sese_adjust_liveout_phis): Removed.
2987
2988 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2989
2990         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
2991         argument for the place after which to insert the out of SSA copy.
2992         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
2993         (rewrite_phi_out_of_ssa): Same.
2994         (rewrite_cross_bb_scalar_deps): Same.
2995         (insert_copyout): Removed.
2996         (insert_copyin): Removed.
2997         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
2998         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
2999         insert_copyin.
3000
3001 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3002
3003         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
3004         (rewrite_reductions_out_of_ssa): Same.
3005         (rewrite_commutative_reductions_out_of_ssa): Same.
3006         (build_poly_scop): Do not call these functions.
3007         * graphite-sese-to-poly.h (build_poly_scop): Declared.
3008         (rewrite_reductions_out_of_ssa): Declared.
3009         (rewrite_commutative_reductions_out_of_ssa): Declared.
3010         * graphite.c (graphite_transform_loops): Call on every scop
3011         rewrite_commutative_reductions_out_of_ssa before calling
3012         rewrite_reductions_out_of_ssa and build_scop_bbs.
3013
3014 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3015
3016         * graphite-dependences.c (dot_deps): Make system call to dotty run
3017         in background.
3018         (dot_deps_stmt): Same.
3019         * graphite-poly.c (dot_lst): Same.
3020
3021 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3022
3023         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
3024         phi_arg_in_outermost_loop.
3025         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
3026         (remove_invariant_phi): Same.
3027
3028 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
3029
3030         * target.def (output_addr_const_extra): New hook.
3031         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
3032         * doc/tm.texi: Regenerate.
3033         * targhooks.c (default_asm_output_addr_const_extra): New function.
3034         * targhooks.h (default_asm_output_addr_const_extra): Declare.
3035         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
3036         target hook.
3037
3038         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3039         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
3040         * config/i386/i386.h (output_addr_const_extra): Rename to...
3041         (i386_asm_output_addr_const_extra): ...this. Make static.
3042         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3043
3044 2010-08-11  Richard Henderson  <rth@redhat.com>
3045
3046         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
3047
3048 2010-08-11  Nick Clifton  <nickc@redhat.com>
3049
3050         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
3051         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
3052         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
3053         stormy16-lib2-cmpsi.c.
3054
3055         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
3056         -O2.
3057
3058 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
3059
3060         * opts.h (struct cl_option_handler_func): Make handler take
3061         cl_decoded_option structure as parameter, not individual elements.
3062         (struct cl_option_handlers): Make callbacks take cl_decoded_option
3063         structure as parameter, not individual elements.
3064         (handle_option): Take cl_decoded_option structure as parameter,
3065         not individual elements.
3066         (handle_generated_option): Declare.
3067         * opts-common.c (handle_option): Take cl_decoded_option structure
3068         as parameter, not individual elements.  Update calls to callback
3069         and handler functions.
3070         (handle_generated_option): New.
3071         (read_cmdline_option): Update calls to callback functions and
3072         handle_option.
3073         * opts.c (common_handle_option, complain_wrong_lang,
3074         unknown_option_callback, post_handling_callback,
3075         lang_handle_option, target_handle_option): Take cl_decoded_option
3076         structure as parameter, not individual elements.
3077         (lang_handle_option, target_handle_option, common_handle_option):
3078         Assert option has at most one argument.
3079         (enable_warning_as_error): Call handle_generated_option instead of
3080         handle_option.  Do not pass -Werror argument as argument of
3081         generated option.
3082
3083 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3084
3085         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
3086         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
3087         (SUBWORD_BOOL_CAS): Likewise.
3088         (SUBWORD_SYNC_OP): Likewise.
3089         (SUBWORD_TEST_AND_SET): Likewise.
3090         (FETCH_AND_OP_WORD): Parenthesise INF_OP
3091         (SUBWORD_SYNC_OP): Likewise.
3092         (OP_AND_FETCH_WORD): Likewise.
3093
3094 2010-08-10  Xinliang David Li  <davidxl@google.com>
3095
3096         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
3097         compute max/min offset in address.
3098
3099 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
3100
3101         * ira-live.c: Include sbitmap.h.
3102         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
3103         Compress live ranges even more.
3104
3105 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3106
3107         * coverage.c (ctr_labels): Delete.
3108
3109 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
3110
3111         PR bootstrap/45177
3112         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
3113         test here from arm_gen_load_multiple_1.
3114         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
3115         multiple_operation_profitable_p.
3116
3117 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3118
3119         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
3120         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
3121
3122 2010-08-10  Richard Henderson  <rth@redhat.com>
3123
3124         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
3125         after saving registers.  Assert that SSE registers are only saved
3126         with a sufficiently aligned frame.
3127         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
3128         remove stack_realign_fp handling.
3129         (ix86_expand_prologue): Save int registers before stack_realign_fp,
3130         and do not mark the stack alignment as frame related.
3131         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
3132
3133         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
3134         saves when re-aligning the stack.
3135
3136 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3137
3138         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
3139         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
3140         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
3141
3142 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3143
3144         * dwarf2out.c (struct die_struct): Move die_tag to the end.
3145
3146 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
3147
3148         * config/arm/iterators.md: New file.
3149         * config/arm/arm.md: Include iterators.md.
3150         (QHSI): Move to new file.
3151         (LTUGEU, cnb, optab, ior_xor): Likewise.
3152         * config/arm/iwmmxt.md (VMMX): Move to new file.
3153         (VSHFT, MMX_char): Likewise.
3154         * config/arm/neon.md (VD): Move to new file.
3155         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
3156         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
3157         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
3158         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
3159         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
3160         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
3161         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
3162         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
3163         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
3164         (Is_d_reg, V_mode_nunits): Likewise.
3165         * config/arm/vec-common.md (VALL): Move to new file.
3166         (VALLW, VINT, VINTW): Likewise.
3167
3168 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
3169
3170         PR middle-end/45182
3171         * combine.c (make_compound_operation): Don't try to convert
3172         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
3173
3174 2010-08-10  Richard Guenther  <rguenther@suse.de>
3175
3176         * tree.h (get_object_alignment): Adjust prototype.
3177         * builtins.c (get_object_alignment): Return unsigned int,
3178         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
3179         and TARGET_MEM_REF properly.
3180         (get_pointer_alignment): Adjust.
3181         * emit-rtl.c (get_mem_align_offset): Adjust comment.
3182         (set_mem_attributes_minus_bitpos): Adjust.
3183         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
3184
3185 2010-08-10  Richard Guenther  <rguenther@suse.de>
3186
3187         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
3188         (copy_prop_visit_assignment): Simplify.
3189         (copy_prop_visit_stmt): Also visit assignments from
3190         constants.
3191         (copy_prop_visit_phi_node): Use operand_equal_p.
3192
3193 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3194
3195         * ipa-split.c (find_split_points): Free stack.
3196
3197 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3198
3199         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
3200         * tree.c (tree_node_kind): Delete corresponding entries.
3201
3202 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
3203
3204         * alias.c (may_alias_p): Remove unused ret.
3205
3206 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
3207
3208         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
3209         alias_sets_conflict_p.
3210         (walk_mems_1): Moved from alias.c.
3211         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
3212         in alias.c.
3213         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
3214         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
3215         * alias.c (walk_mems_2): Moved to ddg.c.
3216         (walk_mems_1): Ditto.
3217         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
3218         to ddg.c.
3219         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
3220         disambiguation.
3221         *(may_alias_p): New function to check whether two memory expression
3222         may alias or not. Currently used in buidling inter-iteration memory
3223         dependence.
3224         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
3225         (insn_alias_sets_conflict_p): Removed
3226         *rtl.h (may_alias_p): New function prototype.
3227
3228 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3229
3230         * tree.c (nreverse): Assert that we don't have a BLOCK.
3231
3232 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3233
3234         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
3235         * config/arm/arm.c (arm_get_pcs_model): Likewise.
3236         * config/avr/avr.c (init_cumulative_args): Likewise.
3237         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
3238         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
3239         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
3240         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
3241         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
3242         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
3243         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
3244         * dwarf2out.c (gen_subprogram_die): Likewise.
3245         * function.c (allocate_struct_function): Likewise.
3246         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
3247         (deserves_ellipsis): Delete.
3248
3249 2010-08-09  Richard Guenther  <rguenther@suse.de>
3250
3251         * tree-ssa-copy.c (cached_last_copy_of): Remove.
3252         (valueize_val): New function.
3253         (get_last_copy_of): Remove.
3254         (set_copy_of_val): Simplify.
3255         (dump_copy_of): Likewise.
3256         (copy_prop_visit_cond_stmt): Use valueize_val.
3257         (copy_prop_visit_phi_node): Properly handle unvisited names.
3258         Drop code managing copy-of chains.
3259         (init_copy_prop): Adjust.
3260         (fini_copy_prop): Likewise.
3261         (execute_copy_prop): Remove obsolete comment.
3262
3263 2010-08-09  Richard Guenther  <rguenther@suse.de>
3264
3265         PR middle-end/44632
3266         * function.c (gimplify_parameters): Do not clear addressable
3267         bit of the original parameter.
3268
3269 2010-08-09  Richard Guenther  <rguenther@suse.de>
3270
3271         PR middle-end/45212
3272         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
3273         alignment from MEM_REF offset only if we took it from the
3274         base object.
3275
3276 2010-08-09  Eric Fisher <joefoxreal@gmail.com>
3277
3278         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
3279
3280 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
3281
3282         * c-tree.h (build_arg_info): Declare.
3283         * c-decl.c (build_arg_info): Define.
3284         (get_parm_info): Call it.  Delete initialization code.
3285         * c-parser.c (c_parser_parms_declarator): Likewise.
3286         (c_parser_parms_list_declaractor): Likewise.
3287
3288 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
3289
3290         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
3291         (struct c_arg_info): Change type of tags field.
3292         * c-decl.c (grokdeclarator): Update for changed type of tags field.
3293         (get_parm_info): Likewise.
3294         (store_parm_decls_newstyle): Likewise.
3295
3296 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
3297
3298         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
3299         (branch_island_list): Delete.
3300         (branch_islands): Declare.
3301         (add_compiler_branch_island): Adjust for branch_islands instead of
3302         branch_island_list.
3303         (macho_branch_islands): Likewise.
3304         (no_previous_def): Likewise.
3305         (get_prev_label): Likewise.
3306
3307 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3308
3309         PR boehm-gc/34544
3310         * gthr-posix.h (__gthread_start): Delete.
3311         (__gthread_active_init): Use pthread_default_stacksize_np instead of
3312         pthread_create to determine if hpux pthreads are active.
3313         * gthr-posix95.h (__gthread_start): Delete.
3314         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
3315
3316 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
3317
3318         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
3319         _WIN64 not expanded.
3320
3321 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
3322             H.J. Lu  <hongjiu.lu@intel.com>
3323
3324         PR target/45213
3325         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
3326         to output 32bit SFmode immediate as 8 byte sign extended value.
3327
3328 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3329
3330         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
3331         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
3332         (SUBWORD_BOOL_CAS): Likewise.
3333         (SUBWORD_SYNC_OP): Likewise.
3334         (SUBWORD_TEST_AND_SET): Likewise.
3335         (FETCH_AND_OP_WORD): Parenthesise INF_OP
3336         (SUBWORD_SYNC_OP): Likewise.
3337         (OP_AND_FETCH_WORD): Likewise.
3338
3339 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3340
3341         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
3342         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
3343         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
3344         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
3345         generic part.
3346         (cortex_a9_sched_adjust_cost): New function.
3347         (xscale_sched_adjust_cost): New function.
3348         * config/arm/arm-protos.h (struct tune_params): New field
3349         sched_adjust_cost.
3350         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
3351
3352 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
3353
3354         PR target/44942
3355         * config/sparc/sparc.c (function_arg_advance): Always take into account
3356         the padding, if any.
3357
3358 2010-08-06  Richard Guenther  <rguenther@suse.de>
3359
3360         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
3361         (dump_lattice_value): Dump it.
3362         (get_default_value): Adjust.
3363         (get_constant_value): Likewise.
3364         (set_value_varying): Likewise.
3365         (set_lattice_value): Make sure to not go up the lattice
3366         with bitwise constant values.
3367         (get_value_for_expr): Handle ADDR_EXPRs.
3368         (value_to_double_int): New function.
3369         (get_value_from_alignment): Likewise.
3370         (do_dbg_cnt): Adjust.
3371         (ccp_lattice_meet): Handle partially constant values.
3372         (bit_value_unop_1): New function.
3373         (bit_value_binop_1): Likewise.
3374         (bit_value_unop): Likewise.
3375         (bit_value_binop): Likewise.
3376         (evaluate_stmt): Track partially constant values if
3377         flag_tree_bit_ccp is set.
3378         (ccp_fold_stmt): Dump if we folded a predicate.
3379         (ccp_visit_stmt): Adjust.
3380         * common.opt (ftree-bit-ccp): New flag.
3381         * doc/invoke.texi (ftree-bit-ccp): Document.
3382         * opts.c (decode_options): Enable bit-CCP at -O1.
3383
3384 2010-08-06  Alan Modra  <amodra@gmail.com>
3385
3386         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
3387         and -mrelocatable-lib description.
3388
3389 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
3390
3391         From Martin Thuresson  <martint@google.com>
3392         * postreload.c (reload_cse_simplify_operands): Use
3393         SET_REGNO_RAW instead of SET_REGNO.
3394         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
3395         SET_REGNO.
3396         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
3397         instead of SET_REGNO.
3398         * rtl.h (SET_REGNO_RAW): New macro.
3399
3400 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
3401
3402         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
3403         computations.  Fix formatting issues.
3404         (num_sign_bit_copies1): Likewise.
3405         (canonicalize_condition): Likewise.
3406
3407 2010-08-05  Richard Henderson  <rth@redhat.com>
3408
3409         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
3410         (floor_log2): Use clz_hwi.
3411         (exact_log2): Use ctz_hwi.
3412         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
3413         * builtins.c (fold_builtin_bitop): Use them.
3414         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3415         * combine.c (get_pos_from_mask): Use ctz_hwi.
3416         * double-int.c (double_int_ctz): Likewise.
3417         * explow.c (force_reg): Likewise.
3418         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
3419
3420 2010-08-05  Richard Henderson  <rth@redhat.com>
3421
3422         PR target/45189
3423         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
3424         the alignment constant is properly sign-extended.
3425
3426 2010-08-05  Richard Guenther  <rguenther@suse.de>
3427
3428         * expr.c (store_expr): Use emit_block_move only if both
3429         source and target are MEMs.  Use store_bit_field if only
3430         the target is a MEM.
3431
3432 2010-08-05  Richard Henderson  <rth@redhat.com>
3433
3434         PR debug/45188
3435         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
3436         (INCOMING_RETURN_ADDR_RTX): Likewise.
3437         (dwarf2out_do_frame): Remove conditional compilation.
3438         (dwarf2out_frame_init): Likewise.
3439
3440 2010-08-05  Nicolas Setton  <setton@adacore.com>
3441
3442         * gcov.c (flag_display_progress): New static variable.
3443         (main): Display progress info on standard output if requested.
3444         (options): Add -d/--display-progress.
3445         (print_usage): Print them.
3446         (process_args): Handle them.
3447         * doc/gcov.texi: Document them.
3448
3449 2010-08-05  Martin Jambor  <mjambor@suse.cz>
3450
3451         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
3452         (ipcp_insert_stage): Redirect only edges not flagged with
3453         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
3454         discovered constants.
3455
3456 2010-08-05  Martin Jambor  <mjambor@suse.cz>
3457
3458         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
3459         (struct ipa_param_descriptor): New fields types and
3460         cannot_devirtualize.
3461         (ipa_param_cannot_devirtualize_p): New function.
3462         (ipa_param_types_vec_empty): Likewise.
3463         (ipa_make_edge_direct_to_target): Declare.
3464         * ipa-cp.c: Fixed first stage driver name in initial comment,
3465         described devirtualization there too.
3466         (ipcp_analyze_node): Call ipa_analyze_params_uses.
3467         (ipcp_print_all_lattices): Print devirtualization info.
3468         (ipa_set_param_cannot_devirtualize): New function.
3469         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
3470         lattice to BOTTOM.
3471         (ipcp_init_stage): Merged into...
3472         (ipcp_generate_summary): ...its caller.
3473         (ipcp_change_tops_to_bottom): Also process type lists.
3474         (ipcp_add_param_type): New function.
3475         (ipcp_copy_types): Likewise.
3476         (ipcp_propagate_types): Likewise.
3477         (ipcp_propagate_stage): Also propagate types.
3478         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
3479         Also return true if propagated types require it.
3480         (ipcp_update_callgraph): Dump redirection info.
3481         (ipcp_process_devirtualization_opportunities): New function.
3482         (ipcp_const_param_count): Include known type information.
3483         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
3484         on new node.  Fixed formatting.
3485         * ipa-prop.c (make_edge_direct_to_target): Renamed to
3486         ipa_make_edge_direct_to_target and changed all callers.  Made
3487         externally visible.
3488         (ipa_node_duplication_hook): Duplicate types vector.
3489         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
3490         redirect outgoing calls for which we can't get a decl from the
3491         statement.  Check that we can get a decl from the call statement.
3492         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3493         ipa_analyze_params_uses only when ipa-cp is disabled.
3494         * tree-inline.c (get_indirect_callee_fndecl): Removed.
3495         (expand_call_inline): Do not call get_indirect_callee_fndecl.
3496         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
3497         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
3498
3499 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
3500
3501         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
3502         temporary. Emit move from temporary to accum, so REG_EQUAL note will
3503         be attached to this insn in correct mode.
3504
3505 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
3506
3507         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
3508         using REGNO of base_reg directly.
3509
3510 2010-08-05  Jie Zhang  <jie@codesourcery.com>
3511
3512         PR tree-optimization/45144
3513         * tree-sra.c (type_consists_of_records_p): Return false
3514         if the record contains bit-field.
3515
3516 2010-08-04  Richard Henderson  <rth@redhat.com>
3517
3518         * config/i386/i386.c (struct ix86_frame): Remove padding and
3519         to_allocate members.
3520         (ix86_compute_frame_layout): Don't store them.
3521         (ix86_can_use_return_insn_p): Use a more direct and more obviously
3522         correct condition for the position of the stack pointer.
3523         (ix86_expand_prologue): Compute remaining stack allocation based
3524         on the ultimate stack pointer offset.
3525         (ix86_expand_epilogue): Use more obvious expressions testing for
3526         the stack pointer already pointing to the saved registers.
3527
3528         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
3529         duplication deconstructing the frame pointer.  Simplify
3530         deallocation of the local stack frame.
3531
3532         * reg-notes.def (CFA_EXPRESSION): New.
3533         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3534         (dwarf2out_frame_debug_cfa_expression): New.
3535         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
3536
3537         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
3538         * config/i386/i386.c (ix86_expand_prologue): Set it.
3539         (ix86_expand_epilogue): Clear it.
3540         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
3541         context, add REG_CFA_EXPRESSION notes.
3542
3543         * config/i386/i386.h (struct machine_frame_state): Rename from
3544         machine_cfa_state.  Add members tracking SP and FP regardless
3545         of the current CFA register.
3546         (ix86_cfa_state): Remove.
3547         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
3548         and sse_reg_save_offset members.
3549         (ix86_compute_frame_layout): Set them.
3550         (gen_push): Increment sp_offset too.
3551         (choose_baseaddr_len, choose_baseaddr): New.
3552         (ix86_emit_save_reg_using_mov): New.
3553         (ix86_emit_save_regs_using_mov): Use it.
3554         (ix86_emit_save_sse_regs_using_mov): Likewise.
3555         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
3556         compare vs the saved red_zone_offset.
3557         (pro_epilogue_adjust_stack): Adjust sp_offset.
3558         (ix86_adjust_stack_and_probe): Likewise.
3559         (ix86_expand_prologue): Set up, use, and validate the new
3560         frame_state_info members.  Use gen_frame_mem.
3561         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
3562         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
3563         new frame_state_info members.
3564         (ix86_emit_leave): Likewise.
3565         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
3566         out-of-range stack pointer offsets here.
3567         (ix86_emit_restore_sse_regs_using_mov): Likewise.
3568         (ix86_expand_epilogue): Use and validate the new frame_state_info
3569         members.  Break up and simplify the logic selecting the
3570         restore_regs_via_mov code path.  Ensure that there will be no
3571         out-of-range stack pointer offsets.
3572
3573         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
3574
3575         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
3576         argument name to reflect the expected tree; fix indentation.
3577         (ix86_asm_output_function_label): Output the entire 32-bit
3578         ms_hook here as bytes ...
3579         (ix86_expand_prologue): ... not here as insns.  Attach the
3580         unwind info for the ms_hook to a blockage insn.
3581         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
3582         (ix86_ms_bitfield_layout_p): Fix indentation.
3583         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
3584
3585         * config/i386/i386.c (ix86_using_red_zone): New.
3586         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
3587         ix86_expand_prologue, ix86_force_to_memory): Use it.
3588
3589         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
3590         saving the int registers.
3591
3592         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
3593         and DWARF2_UNWIND_INFO conditional compilation.
3594
3595 2010-08-04  Richard Henderson  <rth@redhat.com>
3596
3597         PR debug/45171
3598         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
3599         an is_naming_typedef_decl.
3600
3601 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
3602
3603         PR rtl-optimization/45162
3604         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
3605         * dce.c (word_dce_process_block): Likewise.
3606
3607 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
3608
3609         PR target/44583
3610         * config/ia64/constraints.md (Z): New.
3611         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
3612         (xfreg_or_signed_fp01_operand): New.
3613         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
3614         with fr_reg_or_signed_fp01_operand and constraint G with Z.
3615         (subsf3): Ditto.
3616         (*maddsf4): Ditto.
3617         (*msubsf4): Ditto.
3618         (adddf3): Ditto.
3619         (adddf3_trunc): Ditto.
3620         (subdf3): Ditto.
3621         (*subdf3_trunc): Ditto.
3622         (*madddf4): Ditto.
3623         (*madddf4_trunc): Ditto.
3624         (*msubdf4): Ditto.
3625         (*msubdf4_trunc): Ditto.
3626         (addxf3): Replace xfreg_or_fp01_operand with
3627         xfreg_or_signed_fp01_operand and constraint G with Z.
3628         (*addxf3_truncsf): Ditto.
3629         (*addxf3_truncdf): Ditto.
3630         (subxf3): Ditto.
3631         (*subxf3_truncsf): Ditto.
3632         (*subxf3_truncdf): Ditto.
3633         (*maddxf4): Ditto.
3634         (*maddxf4_truncsf): Ditto.
3635         (*maddxf4_truncdf): Ditto.
3636         (*msubxf4): Ditto.
3637         (*msubxf4_truncsf): Ditto.
3638         (*msubxf4_truncdf): Ditto.
3639
3640 2010-08-04  Richard Guenther  <rguenther@suse.de>
3641
3642         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
3643         if either alias-set is zero.
3644
3645 2010-08-04  Richard Guenther  <rguenther@suse.de>
3646
3647         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
3648         * tree-ssa-ccp.c: ... here.
3649         * tree-ssa-copy.c: ... and here.
3650         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
3651         value_range_t): Move ...
3652         * tree-vrp.c: ... here.
3653         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
3654         (substitute_and_fold): Adjust prototype.
3655         * tree-ssa-propagate.c (replace_uses_in): Adjust.
3656         (replace_phi_args_in): Likewise.
3657         (substitute_and_fold): Take callback to query lattice instead
3658         of pointer to lattice.  Replace SSA name defs with lattice
3659         values first.
3660         * tree-ssa-ccp.c (ccp_finalize): Adjust.
3661         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
3662         (get_value): New function.
3663         (fini_copy_prop): Adjust.
3664         * tree-vrp.c (vrp_finalize): Adjust.
3665
3666 2010-08-04  Richard Guenther  <rguenther@suse.de>
3667
3668         PR middle-end/45176
3669         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
3670         points-to set for original MEM_REF.
3671
3672 2010-08-04  Richard Guenther  <rguenther@suse.de>
3673
3674         * tree-ssa-ccp.c (get_constant_value): New function.
3675         (get_rhs_assign_op_for_ccp): Remove.
3676         (valueize_op): New function.
3677         (ccp_fold): Use get_constant_value and valueize_op.
3678         (fold_const_aggregate_ref): Likewise.
3679         (ccp_fold_stmt): Likewise.
3680         (visit_assignment): Simplify.
3681
3682 2010-08-04  Richard Guenther  <rguenther@suse.de>
3683
3684         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
3685         * double-int.h (double_int_ctz): Declare.
3686         * double-int.c (double_int_ctz): New function.
3687
3688 2010-08-04  Hariharan Sandanagobalane <hariharan@picochip.com>
3689
3690         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
3691         Define.
3692         picochip_expand_movmemhi : Expand movmem pattern.
3693         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
3694         Declare.
3695         * config/picochip/picochip.md (movmemhi) : New pattern.
3696
3697 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
3698
3699         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
3700
3701 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
3702
3703         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
3704         NEG as operand of a MULT by merging it with the other operand.
3705         * combine.c (make_compound_operation): Use trunc_int_for_mode when
3706         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
3707         MULT.
3708         * config/arm/constraints.md (M): Examine only 32 bits of a
3709         HOST_WIDE_INT.
3710         * config/arm/predicates.md (power_of_two_operand): Likewise.
3711
3712 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3713
3714         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
3715         non-NOTE insns.
3716
3717 2010-08-03  Jan Hubicka  <jh@suse.cz>
3718
3719         * ipa-split.c (struct split_point): Add split_part_set_retval.
3720         (find_retval): Forward declare.
3721         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
3722         (consider_split): Compute current->split_part_set_retval.
3723         (visit_bb): Do not look into return value.
3724         (split_function): Handle !split_part_set_retval
3725
3726 2010-08-03  Martin Jambor  <mjambor@suse.cz>
3727
3728         * tree-sra.c (completely_scalarize_record): New parameter REF, create
3729         its own access->expr intead of using build_ref_for_offset.
3730
3731 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
3732
3733         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
3734         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
3735         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
3736         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
3737         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
3738         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
3739         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
3740         DEFAULT_SWITCH_TAKES_ARG.
3741         * config/rx/rx.opt (-patch=): Remove option.
3742         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
3743         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
3744         * doc/invoke.texi (RX Options): Remove -patch=.
3745         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
3746         (option_map): Remove --profile-blocks, --quiet and --silent.
3747
3748 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
3749
3750         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
3751         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
3752         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
3753         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
3754         Update calls to ix86_expand_compare and ix86_expand_branch.
3755         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
3756         ix86_expand_compare.
3757         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
3758         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
3759         Make static.
3760         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
3761         and ix86_compare_op1.  Update calls to ix86_expand_compare.
3762         (ix86_expand_int_movcc): Ditto.
3763         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
3764         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
3765         (ix86_expand_setcc): Ditto.
3766         (ix86_expand_compare): Remove prototype.
3767         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
3768         ix86_compare_op0 and ix86_compare_op1.  Update calls
3769         to ix86_expand_branch to directly pass operands[1] and operands[2].
3770         (cbranchxf4): Ditto.
3771         (cbranch<MODEF:mode>4): Ditto.
3772         (cbranchcc4): Ditto.
3773         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
3774         Update calls to ix86_expand_setcc to directly pass operands[2] and
3775         operands[3].
3776         (cstorexf4): Ditto.
3777         (cstore<MODEF:mode>4): Ditto.
3778         (cstorecc4): Ditto.
3779
3780 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
3781
3782         PR target/45063
3783         * caller-save.c (save_call_clobbered_regs): Remove regs from
3784         hard_regs_saved when they are set.
3785
3786 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
3787
3788         PR target/41089
3789         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
3790         as volatile.
3791
3792 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
3793
3794         * common.opt (ftree-loop-distribute-patterns): New.
3795         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
3796         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
3797         at -O3.
3798         * tree-data-ref.c (stores_zero_from_loop): New.
3799         * tree-data-ref.h (stores_zero_from_loop): Declared.
3800         * tree-loop-distribution.c (tree_loop_distribution): Call
3801         stores_zero_from_loop.
3802         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
3803
3804 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
3805
3806         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
3807         into account.
3808
3809         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
3810         * config/arm/arm.c (thumb1_code): New variable.
3811         (arm_override_options): Set it.
3812         (thumb1_final_prescan_insn): Keep track of condition code status.
3813         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
3814         jumps that depend on them.
3815         * config/arm/arm.h (thumb1_code): Declare variable.
3816         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
3817         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
3818         thumb1_cc_mode.
3819         (CC_STATUS_INIT): New macro.
3820         * config/arm/constraints.md (Pd): New constraint.
3821         * config/arm/predicates.md (noov_comparison_operator): New predicate.
3822         * config/arm/arm.md (is_thumb1): New define_attr.
3823         (conds): Set default to "clob" when generating Thumb1 code.
3824         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
3825         code are set.  Use two-operand assembly syntax.
3826         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
3827         pattern.
3828         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
3829         codes are set.  Use two-operand assembly syntax.
3830         (zero_extendhisi splitter): Remove constraints.
3831         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
3832         thumb1_movsf_insn): Set conds attribute as appropriate.
3833         (cbranchsi4_insn): Use condition code status from struct
3834         machine_function to determine whether the comparison can be eliminated.
3835         Discourage the alternative using high registers.
3836         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
3837         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
3838         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
3839         subsi3_cbranch): Delete.
3840         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
3841         one subtract and one cbranch insn.
3842
3843         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
3844         thumb2_movdf_soft_insn): Delete patterns.
3845         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
3846         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
3847         (pool_range, neg_pool_range): Use them to define defaults.
3848         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
3849         and allow for TARGET_32BIT.
3850
3851         PR target/40457
3852         * config/arm/arm.h (arm_regs_in_sequence): Declare.
3853         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
3854         load_multiple_sequence, store_multiple_sequence): Delete
3855         declarations.
3856         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
3857         declarations.
3858         * config/arm/ldmstm.md: New file.
3859         * config/arm/arm.c (arm_regs_in_sequence): New array.
3860         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
3861         CHECK_REGS.  All callers changed.
3862         If SAVED_ORDER is nonnull, copy the computed order into it.
3863         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
3864         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
3865         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
3866         If SAVED_ORDER is nonnull, copy the computed order into it.
3867         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
3868         like REGS.  Handle Thumb mode.
3869         (arm_gen_load_multiple_1): New function, broken out of
3870         arm_gen_load_multiple.
3871         (arm_gen_store_multiple_1): New function, broken out of
3872         arm_gen_store_multiple.
3873         (arm_gen_multiple_op): New function, with code from
3874         arm_gen_load_multiple and arm_gen_store_multiple moved here.
3875         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
3876         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
3877         changed.
3878         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
3879         * config/arm/predicates.md (commutative_binary_operator): New.
3880         (load_multiple_operation, store_multiple_operation): Handle more
3881         variants of these patterns with different starting offsets.  Handle
3882         Thumb-1.
3883         * config/arm/arm.md: Include "ldmstm.md".
3884         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
3885         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
3886         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
3887         peepholes): Delete.
3888         * config/arm/ldmstm.md: New file.
3889         * config/arm/arm-ldmstm.ml: New file.
3890
3891         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
3892         if statement which adds extra costs to frame-related expressions.
3893
3894 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3895
3896         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
3897
3898 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
3899
3900         PR target/45142
3901         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
3902         alternative 2.
3903         (vec_set<moode>_0 splitter): Use SSEMODE4S mode iterator to also
3904         split V4SI operands.
3905
3906 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
3907
3908         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
3909         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
3910         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
3911         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
3912
3913 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
3914
3915         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
3916         LOCAL_INCLUDE_DIR.
3917
3918 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
3919
3920         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
3921         used in the call to optab_for_tree_code.  Fix the second
3922         is_widening_mult_p call.  Check that both unwidened operands
3923         have the same sign.
3924
3925 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
3926
3927         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
3928
3929 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
3930
3931         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
3932
3933 2010-07-30  DJ Delorie  <dj@redhat.com>
3934
3935         * config/rx/predicates.md (rx_constshift_operand): New.
3936         * config/rx/rx.md (zs_cond): New.
3937         (cbranchsi4): Remove mode.
3938         (*cbranchsi4_<code>): Likewise.
3939         (*tstbranchsi4_<code>): New.
3940         (*tstbranchsi4r_<code>): New.
3941         (*tstbranchsi4m_eq): New.
3942         (*tstbranchsi4m_ne): New.
3943         (cbranchsf4): Remove mode.
3944         (*cbranchsf4_<code>): Likewise.
3945
3946 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
3947
3948         * rtlanal.c (simplify_subreg_regno): Don't treat
3949         HARD_FRAME_POINTER_REGNUM specially.
3950
3951 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
3952
3953         * common.opt (-G): Don't define option here.
3954         * config/g.opt: New.
3955         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
3956         rs6000/powerpc and score targets.
3957         * opts.c (common_handle_option): Don't handle -G here.
3958         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
3959         * config/frv/frv.c (frv_handle_option): Handle -G.
3960         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
3961         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
3962         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
3963         * config/mips/mips.c (mips_handle_option): Handle -G.
3964         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
3965         * config/score/score.c (score_handle_option): Handle -G.
3966
3967 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
3968
3969         * config/mmix/mmix.c: Include basic-block.h.
3970
3971 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
3972
3973         PR debug/45055
3974         PR rtl-optimization/45137
3975         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
3976         prototypes.
3977         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
3978         New functions.
3979         * combine.c (next_nonnote_nondebug_insn): Removed.
3980         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
3981         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
3982         * sched-deps.c (sched_analyze_insn): Likewise.
3983         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
3984         * rtlanal.c (canonicalize_condition): Likewise.
3985         * postreload.c (reload_combine_recognize_pattern): Likewise.
3986         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
3987
3988 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
3989
3990         * config/i386/i386.md (int_cond): Remove code iterator.
3991         (fp_cond): Ditto.
3992         (cbranch<mode>4): Use ordered_comparison_operator predicate
3993         for operator0.
3994         (cstore<mode>4): Ditto for operator1.
3995         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
3996         (add<mode>cc): ditto.
3997
3998 2010-07-30  Richard Guenther  <rguenther@suse.de>
3999
4000         PR middle-end/45141
4001         * expr.c (expand_expr_real_1): Check for not handled base address.
4002
4003 2010-07-30  Richard Guenther  <rguenther@suse.de>
4004
4005         * ipa-prop.c (ipa_modify_formal_parameters): Use
4006         build_distinct_type_copy.
4007
4008 2010-07-30  Anthony Green  <green@moxielogic.com>
4009
4010         * config/moxie/rtems.h: New file.
4011         * config.gcc: Add moxie-rtems support.
4012
4013 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
4014
4015         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
4016         df flags as in run_fast_df_dce.
4017
4018 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
4019
4020         Revert:
4021         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
4022
4023         * rtl.def (NOTE): Swap operands 4 and 5.
4024         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
4025         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
4026         Adjust accordingly.
4027         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
4028
4029 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
4030
4031         PR debug/45110
4032         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
4033         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
4034         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
4035         formal parameters.
4036         (gen_decl_die): Change return type to dw_die_ref, return what
4037         gen_formal_parameter_die returned.
4038
4039 2010-07-29  Martin Jambor  <mjambor@suse.cz>
4040
4041         * dbgcnt.def (eipa_sra): New counter.
4042         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
4043
4044 2010-07-29  Xinliang David Li  <davidxl@google.com>
4045
4046         PR bootstrap/45119
4047         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
4048         in revision 162652.
4049
4050 2010-07-29  Richard Guenther  <rguenther@suse.de>
4051
4052         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
4053         (TV_TREE_STORE_CCP): Likewise.
4054         (TV_TREE_REDPHI): Likewise.
4055
4056 2010-07-29  Richard Guenther  <rguenther@suse.de>
4057
4058         * double-int.h (double_int_and_not): New function.
4059         * combine.c (try_combine): Use it.
4060         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
4061
4062 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
4063
4064         PR rtl-optimization/42575
4065         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
4066         Argument AU removed.  All callers changed.  Ignore artificial refs.
4067         Use return value of df_word_lr_simulate_defs to decide whether an insn
4068         is necessary.
4069         (fast_dce): Rename arg to WORD_LEVEL.
4070         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
4071         static.
4072         (pass_fast_rtl_byte_dce): Delete.
4073         * dce.h (run_word_dce): Declare.
4074         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
4075         All callers changed.  Simplify code to only deal with two-word regs.
4076         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
4077         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
4078         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
4079         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
4080         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
4081         (df_word_lr_mark_ref): Declare.
4082         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
4083         df_word_lr_simulate_uses): Declare or rename from byte variants.
4084         (df_byte_lr_simulate_artificial_refs_at_top,
4085         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
4086         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
4087         declarations.
4088         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
4089         (enum df_mm): Delete.
4090         * df-byte-scan.c: Delete file.
4091         * df-problems.c (df_word_lr_problem_data): Renamed from
4092         df_byte_lr_problem_data, all members deleted except for
4093         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
4094         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
4095         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
4096         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
4097         df_byte_lr_confluence_0): Delete functions.
4098         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
4099         callers changed.
4100         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
4101         Don't initialize members that were deleted, don't try to discover data
4102         about registers.  Ignore hard regs.
4103         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
4104         (df_word_lr_mark_ref): New function.
4105         (df_word_lr_bb_local_compute): Renamed from
4106         df_byte_bb_lr_local_compute; all callers changed.  Use
4107         df_word_lr_mark_ref.  Assert that artificial refs don't include
4108         pseudos.  Ignore hard registers.
4109         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
4110         Assert that exit block uses don't contain pseudos.
4111         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
4112         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
4113         callers changed.  Ignore hard regs.
4114         (df_word_lr_transfer_function): Renamed from
4115         df_byte_lr_transfer_function; all callers changed.
4116         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
4117         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
4118         changed.
4119         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
4120         callers changed.
4121         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
4122         confluence operator 0 set to NULL.
4123         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
4124         callers changed.
4125         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
4126         Return bool, true if bitmap changed or insn otherwise necessary.
4127         All callers changed.  Simplify using df_word_lr_mark_ref.
4128         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
4129         all callers changed.  Simplify using df_word_lr_mark_ref.
4130         * lower-subreg.c: Include "dce.h"
4131         (decompose_multiword_subregs): Call run_word_dce if df available.
4132         * Makefile.in (lower-subreg.o): Adjust dependencies.
4133         (df-byte-scan.o): Delete.
4134         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
4135
4136 2010-07-29  Richard Guenther  <rguenther@suse.de>
4137
4138         * tree.c (build_vector): Assert that the vector constant
4139         has enough elements.
4140         (build_vector_from_ctor): Pad with trailing zeros.
4141
4142 2010-07-29  Richard Guenther  <rguenther@suse.de>
4143
4144         PR tree-optimization/45120
4145         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4146         Handle offset in DEREFs properly.
4147         (get_constraint_for_1): Handle MEM_REF offset properly.
4148
4149 2010-07-29  Richard Guenther  <rguenther@suse.de>
4150
4151         PR middle-end/45034
4152         * convert.c (convert_to_integer): Always use an unsigned
4153         type for narrowed negate and bitwise not.
4154
4155 2010-07-29  Ira Rosen  <irar@il.ibm.com>
4156
4157         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
4158         to outer loop when creating reduction epilogue for double reduction,
4159         and switch back to the inner loop when updating the phi nodes.
4160         Update uses of outer loop exit phi nodes in double reduction (instead
4161         of uses of reduction).
4162
4163 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
4164
4165         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
4166         popcount on power7 and parity on power6 systems.
4167         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
4168         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
4169         instructions.
4170
4171         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
4172         (UNSPEC_PARITY): Ditto.
4173         (SFDF): New iterator for SF/DF.
4174         (rreg2): New mode attribute for floating register constraint.
4175         (TARGET_FLOAT): New mode attribute for whether single/double float
4176         is supported.
4177         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
4178         pattern.
4179         (parity<mode>2_cmpb): New insn for parity on power6 and newer
4180         machines.
4181         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
4182         pattern.  Add support for fcpsgn instruction added in power6.
4183         (copysignsf3): Delete.
4184         (copysigndf3): Delete.
4185         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
4186         instead of if_then_else in RTL to avoid problems with -0.
4187
4188         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
4189         of if_then_else to mirror scalar code.
4190         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
4191         rs6000.md.
4192
4193         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
4194         instead of if_then_else.
4195
4196 2010-07-28  Xinliang David Li  <davidxl@google.com>
4197
4198         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
4199         (dump_cand): Dump var_before/after.
4200         (htab_inv_expr_eq): New function.
4201         (htab_inv_expr_hash): New function.
4202         (tree_ssa_iv_optimize_init): Support pseudo invariants.
4203         (add_candidate_1): consider base type precision.
4204         (set_use_iv_cost): New parameter.
4205         (adjust_setup_cost): Use profile information.
4206         (get_address_cost): Do not hard code width in computing address
4207         offset limits.
4208         (compare_aff_trees): New function.
4209         (get_loop_invariant_expr_id): New function.
4210         (get_computation_cost_at): New parameter and use profile information.
4211         (get_computation_cost): New parameter.
4212         (determine_use_iv_cost_generic): Pass new parameter.
4213         (determine_use_iv_cost_address): Ditto.
4214         (determine_use_iv_cost_condition): Ditto.
4215         (autoinc_possible_for_pair): Ditto.
4216         (determine_use_iv_costs): More dumps.
4217         (iv_ca_get_num_inv_exprs): New function.
4218         (iv_ca_recount_cost): Consider loop invariants in register pressure
4219         cost.
4220         (iv_ca_add_use): New parameter.
4221         (iv_ca_dump): Better dumping.
4222         (iv_ca_extend): New parameter.
4223         (try_add_cand_for): Attempt to get better partial solution.
4224         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
4225         (create_new-ivs): More dumps.
4226         (rewrite_use_compare): Ditto.
4227         (free_loop_data): More cleanup.
4228         (treee_ssa_iv_optimize_finalize): Ditto.
4229
4230 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
4231
4232         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
4233         * config/i386/i386.c (ix86_profile_before_prologue): New.
4234         (override_options): Add special handling for -mfentry.
4235         (ix86_function_regparm): Likewise.
4236         (ix86_function_sseregparm): Likewise.
4237         (ix86_frame_pointer_required): Likewise.
4238         (ix86_expand_prologue): Check for ms_hook_prologue.
4239         (x86_function_profiler): Adjust mcount output.
4240         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
4241         * config/i386/i386.opt (mfentry): New.
4242         * doc/invoke.texi (mfentry): Add documentation.
4243         * doc/tm.texi: Regenerated..
4244         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
4245         * final.c (final_start_function): Replace macro
4246         PROFILE_BEFORE_PROLOGUE by target hook.
4247         * function.c (thread_prologue_and_epilogue_insns): Likewise.
4248         * target.def (profile_before_prologue): New hook.
4249         * targhooks.c (default_profile_before_prologue): New.
4250         * targhooks.h (default_profile_before_prologue): New.
4251
4252 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
4253
4254         PR debug/45105
4255         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
4256
4257         PR debug/45103
4258         * dwarf2out.c (dwarf2out_var_location): Always consider
4259         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
4260
4261 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
4262
4263         PR rtl-optimization/45107
4264         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
4265
4266 2010-07-28  Richard Guenther  <rguenther@suse.de>
4267
4268         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
4269         (set_lattice_value): Do not query an old default value.
4270         (get_value_for_expr): New function.  Properly canonicalize
4271         float values.
4272         (ccp_visit_phi_node): Use it.
4273
4274 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
4275
4276         * config/arm/arm.c (arm_pcs_default): Remove static.
4277         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
4278         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
4279         (arm_pcs_default): Declare.
4280
4281 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
4282
4283         * config/rs6000/rs6000.c (rs6000_override_options):
4284         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
4285         ... to darwin_rs6000_override_options.
4286         (rs6000_return_in_memory): Update preceding comment for darwin
4287         64 bit ABI.  Use TARGET_MACHO inline.
4288         (rs6000_darwin64_struct_check_p): New.
4289         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
4290         (function_arg): Likewise.
4291         (rs6000_arg_partial_bytes): Likewise.
4292         (rs6000_function_value): Likewise.
4293
4294 2010-07-28  Andi Kleen <ak@linux.intel.com>
4295
4296         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
4297
4298 2010-07-28  Richard Guenther  <rguenther@suse.de>
4299
4300         PR middle-end/44903
4301         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
4302         targets try harder to not generate unaligned accesses.
4303
4304 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
4305
4306         PR rtl-optimization/45101
4307         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
4308         for gcse-las.
4309
4310 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
4311
4312         PR tree-optimization/44885
4313         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
4314         with non-aliased component.
4315
4316 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
4317
4318         * config/darwin-driver.c (SWITCH_TAKES_ARG,
4319         WORD_SWITCH_TAKES_ARG): Remove.
4320         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4321         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
4322         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
4323         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
4324         definitions from gcc.c.
4325         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
4326         defaults.h.
4327         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
4328         Move to defaults.h.
4329         * opts-common.c: Include tm.h.
4330         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
4331         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
4332         Handle more than one argument.  Set canonical_option_num_elements.
4333         (decode_cmdline_options_to_array): Set
4334         canonical_option_num_elements and trailing elements of
4335         canonical_option.
4336         * opts.h (struct cl_decoded_option): Allow four elements in
4337         canonical_option.  Add field canonical_option_num_elements.
4338         * Makefile.in (opts-common.o): Update dependencies.
4339
4340 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
4341
4342         PR middle-end/44790
4343         PR middle-end/44993
4344         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
4345         sure the base has address_mode before adding the offset.
4346
4347 2010-07-27  Xinliang David Li <davidxl@google.com>
4348
4349         * tree-flow.h (create_mem_ref): Add one new parameter.
4350         * tree-ssa-address.c (create_mem_ref): New parameter.
4351         (addr_to_parts): Ditto.
4352         (move_variant_to_index): New function.
4353         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
4354
4355 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
4356
4357         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
4358         4 and 5.
4359         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
4360         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
4361         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
4362         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
4363         CODE_LABELs and NOTEs.
4364         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
4365         * combine.c (try_combine): Likewise.
4366         * ira.c (setup_prohibited_mode_move_regs): Likewise.
4367         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
4368
4369 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
4370
4371         * coretypes.h (struct cl_option_handlers): Declare.
4372         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
4373         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
4374         * langhooks-def.h (lhd_handle_option): Declare.
4375         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
4376         * langhooks.c (lhd_handle_option): New.
4377         * langhooks.h (struct lang_hooks): Update prototype and return
4378         value type of handle_option hook.
4379         * optc-gen.awk: Generate target_flags_explicit definition for the
4380         driver.
4381         * opts-common.c: Include diagnostic.h.
4382         (handle_option): Move from opts.c.  Update prototype and return
4383         value type.  Use handlers structure.
4384         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
4385         handlers structure.
4386         (set_option): Move from opts.c.
4387         * opts.c (common_handle_option): Update prototype and return value
4388         type.  Update calls to handle_option and enable_warning_as_error.
4389         (unknown_option_callback, post_handling_callback,
4390         lang_handle_option, target_handle_option): New.
4391         (handle_option, read_cmdline_option): Move to opts-common.c.
4392         (read_cmdline_options): Update prototype.  Update call to
4393         read_cmdline_option.
4394         (decode_options): Initialize and use handlers structure.
4395         (set_option): Move to opts-common.c.
4396         (enable_warning_as_error): Update prototype.  Update call to
4397         handle_option.
4398         * opts.h (struct cl_option_handler_func, struct
4399         cl_option_handlers): New.
4400         (handle_option, enable_warning_as_error): Update prototypes.
4401         (read_cmdline_option): Declare.
4402         * Makefile.in (opts-common.o): Update dependencies.
4403
4404 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4405
4406         * config/arm/arm.c (params.h): Include.
4407         (arm_override_options): Tune gcse-unrestricted-cost.
4408         * config/arm/t-arm (arm.o): Define dependencies.
4409
4410 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4411
4412         PR target/42495
4413         PR middle-end/42574
4414         * basic-block.h (get_dominated_to_depth): Declare.
4415         * dominance.c (get_dominated_to_depth): New function, use
4416         get_all_dominated_blocks as a base.
4417         (get_all_dominated_blocks): Use get_dominated_to_depth.
4418
4419         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
4420         (hoist_exprs): Remove.
4421         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
4422         (compute_code_hoist_vbeinout): Add debug print outs.
4423         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
4424
4425         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
4426         quadratic behavior.
4427         * params.h (MAX_HOIST_DEPTH): New macro.
4428         * doc/invoke.texi (max-hoist-depth): Document.
4429
4430 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4431
4432         PR rtl-optimization/40956
4433         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
4434         constants.
4435
4436 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4437
4438         PR target/42495
4439         PR middle-end/42574
4440         * config/arm/arm.c (legitimize_pic_address): Use
4441         gen_calculate_pic_address pattern to emit calculation of PIC address.
4442         (will_be_in_index_register): New function.
4443         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
4444         (thumb1_legitimate_address_p): Use it provided !strict_p.
4445         * config/arm/arm.md (calculate_pic_address): New expand and split.
4446
4447 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4448
4449         PR target/42495
4450         PR middle-end/42574
4451         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
4452         * config/arm/arm.md (define_split "J", define_split "K"): Make
4453         IRA/reload friendly.
4454
4455 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4456
4457         * gcse.c (insert_insn_end_basic_block): Update signature, remove
4458         unused checks.
4459         (pre_edge_insert, hoist_code): Update.
4460
4461 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4462
4463         PR target/42495
4464         PR middle-end/42574
4465         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
4466
4467 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4468
4469         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
4470
4471 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4472
4473         PR rtl-optimization/40956
4474         PR target/42495
4475         PR middle-end/42574
4476         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
4477         for hoisting.
4478         (hoist_code): Count occurences in current block too.
4479
4480 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4481
4482         * gcse.c (struct expr:max_distance): New field.
4483         (doing_code_hoisting_p): New static variable.
4484         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
4485         simple expressions, don't change behavior for PRE.  Set max_distance.
4486         (insert_expr_in_table): Set new max_distance field.
4487         (hash_scan_set): Update.
4488         (hoist_expr_reaches_here_p): Stop search after max_distance
4489         instructions.
4490         (find_occr_in_bb): New static function.  Use it in ...
4491         (hoist_code): Calculate sizes of basic block before any changes are
4492         done.  Pass max_distance to hoist_expr_reaches_here_p.
4493         (one_code_hoisting_pass): Set doing_code_hoisting_p.
4494
4495         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
4496         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
4497         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
4498         macros.
4499         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
4500         Document.
4501
4502 2010-07-27  Jeff Law  <law@redhat.com>
4503             Maxim Kuvyrkov  <maxim@codesourcery.com>
4504
4505         * gcse.c (compute_transpout, transpout): Remove, move logic
4506         to prune_expressions.
4507         (compute_pre_data): Move pruning of trapping expressions ...
4508         (prune_expressions): ... here.  New static function.
4509         (compute_code_hoist_data): Use it.
4510         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
4511
4512 2010-07-27  Xinliang David Li  <davidxl@google.com>
4513
4514         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
4515         (rewrite_use_address): Adjust iv update position when needed.
4516
4517 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4518
4519         * dbgcnt.def (hoist_insn): New debug counter.
4520         * gcse.c (hoist_code): Use it.
4521
4522 2010-07-27  Xinliang David Li  <davidxl@google.com>
4523
4524         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
4525         (niter_for_single_dom_exit): Passes additional parameter.
4526         (iv_period): Fix comments.
4527         (may_eliminate_iv): Handles multiple exit loops properly.
4528         (free_tree_niter_desc): New function.
4529         (free_loop_data): Frees up loop iteration descriptors.
4530
4531 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
4532
4533         PR target/44542
4534         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
4535         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
4536         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
4537         (expand_one_var): Don't consider DECL_ALIGN for variables for
4538         which expand_one_stack_var_at has been already called.
4539
4540         PR testsuite/44701
4541         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
4542         constraints on IA-64.
4543
4544 2010-07-27  Jie Zhang  <jie@codesourcery.com>
4545
4546         PR target/44290
4547         Revert:
4548         2010-07-23  Jie Zhang  <jie@codesourcery.com>
4549
4550         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
4551         false if ! tree_versionable_function_p.
4552
4553 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
4554
4555         * dwarf2out.c (add_data_member_location_attribute): Use
4556         add_AT_unsigned instead of add_AT_int if offset is non-negative.
4557
4558 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
4559
4560         * postreload.c (try_replace_in_use): New static function.
4561         (reload_combine_recognize_const_pattern): Use it here.  Allow
4562         substituting into a final add insn, and substituting into a memory
4563         reference in an insn that sets the reg.
4564
4565 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
4566
4567         * common.opt (o): Add MissingArgError.
4568         * doc/options.texi (MissingArgError): Document.
4569         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
4570         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
4571         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
4572         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
4573         * langhooks.h (struct lang_hooks): Remove missing_argument.
4574         * optc-gen.awk: Handle MissingArgError and output new structure
4575         field initializers.
4576         * opts.c (read_cmdline_option): Use missing_argument_error field
4577         instead of missing_argument langhook.
4578         * opts.h (struct cl_option): Add missing_argument_error field.
4579         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
4580
4581 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
4582
4583         PR target/29090
4584         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
4585         Darwin64 ABI, for zero-sized objects.
4586
4587 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
4588
4589         PR target/35491
4590         PR target/29090
4591
4592         Merge from Apple local 4.2.1.
4593         2005-05-11  Stan Shebs  <shebs@apple.com>
4594         Fix 64-bit varargs for Darwin (Radar 4028089).
4595         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
4596         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
4597         Add argument, add case for 8-byte register half-filled with a float.
4598         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
4599         single-precision floats specially.
4600
4601 2010-07-27  Ira Rosen  <irar@il.ibm.com>
4602
4603         PR tree-optimization/44152
4604         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
4605         complex numbers for further check.
4606         (vect_supported_load_permutation_p): Check nodes with
4607         complex numbers.
4608
4609 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
4610
4611         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
4612         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
4613         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
4614         (LANG_HOOKS_INITIALIZER): Add new hooks.
4615         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
4616         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
4617         and complain_wrong_lang_p.  Update init_options prototype.
4618         * c-objc-common.c (c_initialize_diagnostics): First call
4619         c_common_initialize_diagnostics.
4620         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
4621         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
4622         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
4623         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
4624         (hook_uint_void_0): New.
4625         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
4626         (hook_uint_void_0): New.
4627         * opts-common.c (decode_cmdline_option,
4628         decode_cmdline_options_to_array): Also fill in canonical_option field.
4629         * opts.c (complain_wrong_lang): Use langhook to determine whether
4630         to complain instead of special-casing LTO.
4631         (decode_options): Separate lang_mask determination with
4632         option_lang_mask hook from call of init_options hook.
4633         * opts.h (struct cl_decoded_option): Add canonical_option.
4634
4635 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
4636
4637         PR tree-optimization/45083
4638         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
4639
4640 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
4641
4642         * postreload.c (reload_combine_recognize_const_pattern): Move test
4643         for limiting the insn movement to the right scope.
4644
4645         PR rtl-optimization/45051
4646         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
4647         than reg_mentioned_p.
4648
4649 2010-07-26  Richard Henderson  <rth@redhat.com>
4650
4651         PR target/44132
4652         * tree-emutls.c: New file.
4653         * Makefile.in (OBJS-common): Add it.
4654         * tree-pass.h (pass_ipa_lower_emutls): Declare.
4655         * passes.c (init_optimization_passes): Add it.
4656
4657         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
4658         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
4659         * expr.c (emutls_var_address): Delete.
4660         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
4661         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
4662         (emutls_finish): Delete.
4663         * toplev.c (compile_file): Don't call it.
4664         * tree.h (emutls_decl): Delete.
4665         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
4666         (emutls_finish, emutls_finalize_control_var): Delete.
4667         (emutls_object_type): Move to tree-emutls.c.
4668         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
4669         default_emutls_var_fields, get_emutls_object_type,
4670         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
4671         default_emutls_var_init): Likewise.
4672         (get_variable_section): Don't special case emutls.
4673         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
4674         default_elf_select_section, default_unique_section,
4675         default_encode_section_info): Likewise.
4676         * varpool.c (decide_is_variable_needed): Likewise.
4677         * gimple-iterator.c (update_call_edge_frequencies): New
4678         (gsi_insert_on_edge_immediate): Use it.
4679         (gsi_insert_seq_on_edge_immediate): Likewise.
4680         (gsi_commit_one_edge_insert): Likewise.
4681
4682         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
4683         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
4684         (x86_64_elf_unique_section): Likewise.
4685
4686 2010-07-26  Jan Hubicka  <jh@suse.cz>
4687
4688         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
4689         GTY((skip)).
4690
4691 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
4692
4693         * target.def (output_source_filename): New hook.
4694         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
4695         * doc/tm.texi: Regenerate.
4696         * toplev.c (output_file_directive) Remove function.
4697         * toplev.h (output_file_directive) Remove.
4698         * output.h (default_asm_output_source_filename,
4699         output_file_directive): Declare.
4700         * varasm.h (default_asm_output_source_filename,
4701         output_file_directive): New functions.
4702
4703         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
4704         * config/mips/mips-protos.h (mips_output_filename): Remove.
4705         * config/mips/mips.c (mips_output_filename): Make Static.
4706         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
4707
4708 2010-07-26  Richard Guenther  <rguenther@suse.de>
4709
4710         PR tree-optimization/43784
4711         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
4712         if the destination is used by the call.
4713
4714 2010-07-26  Richard Guenther  <rguenther@suse.de>
4715
4716         PR middle-end/45073
4717         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
4718         SSA updating on being in SSA form.
4719
4720 2010-07-26  Richard Guenther  <rguenther@suse.de>
4721
4722         PR middle-end/45056
4723         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
4724
4725 2010-07-26  Richard Guenther  <rguenther@suse.de>
4726
4727         PR tree-optimization/45071
4728         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
4729         adjust op->opcode.
4730
4731 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
4732
4733         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
4734         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
4735         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
4736         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
4737         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
4738         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
4739         save_r31, return_r31, save_interrupt, return_interrupt,
4740         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
4741         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
4742         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
4743         new ABI requirements.
4744         (save_r6_r9, L_callt_save_r6_r9): Remove.
4745         * config/v850/predicates.md (even_reg_operand, disp23_operand,
4746         const_float_1_operand const_float_0_operand): New Predicates.
4747         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
4748         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
4749         * config/v850/t-v850: Update multilibs for new target variants.
4750         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
4751         * config/v850/t-v850e: Likewise.
4752         * config/v850/v850.c (v850_issue_rate): New.
4753         (v850_strict_argument_naming): New.
4754         (function_arg): Modify to generate a different ABI.
4755         (print_operand): Update case 'z' to support float modes.
4756         (output_move_single): Modify to generate appropriate and better
4757         assembly.
4758         (v850_float_z_comparison_operator, v850_select_cc_mode,
4759         v850_float_nz_comparison_operator,  v850_gen_float_compare,
4760         v850_gen_compare): New functions to support comparison of float values.
4761         (ep_memory_offset): Add support for V850E2 targets.
4762         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
4763         (INTERRUPT_REGPARM_NUM): Remove.
4764         (compute_register_save_size): Add extra case to save/restore long call.
4765         (use_prolog_function): New function to support prologue.
4766         (expand_prologue): Add support for V850E2 targets and modified
4767         as per the current ABI requirements.
4768         (expand_epilogue): Likewise.
4769         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
4770         (construct_save_jarl): Likewise.
4771         (construct_dispose_instruction): Update as per the current ABI
4772         requirements.
4773         (construct_prepare_instruction): Likewise.
4774         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
4775         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
4776         (CPP_SPEC): Updated to support v850e2 targets.
4777         (STRICT_ALIGNMENT): Modified.
4778         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
4779         (FIXED_REGISTERS): Likewise.
4780         (CALL_USED_REGISTERS): Likewise.
4781         (CONDITIONAL_REGISTER_USAGE): Updated.
4782         (HARD_REGNO_MODE_OK): Updated.
4783         (reg_class): Updated to add even registers.
4784         (REG_CLASS_NAMES): Likewise.
4785         (REG_CLASS_CONTENTS): Likewise.
4786         (REGNO_REG_CLASS): Updated for CC registers.
4787         (REG_CLASS_FROM_LETTER): Added support for even registers.
4788         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
4789         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
4790         ARG_POINTER_REGNUM): Updated.
4791         (FUNCTION_ARG_ADVANCE): Define.
4792         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
4793         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
4794         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
4795         (GO_IF_LEGITIMATE_ADDRESS): Updated.
4796         (SELECT_CC_MODE): Define.
4797         (REGISTER_NAMES): Updated to add psw and fcc registers.
4798         (ADDITIONAL_REGISTER_NAMES): Updated.
4799         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
4800         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
4801         * config/v850/v850.md (define_constants): Define new constants.
4802         (type): Update store,bit1,macc,div,fpu and single attributes.
4803         (cpu): New attribute.
4804         (cc): Add set_z attribute.
4805         (unsign23byte_load, sign23byte_load, unsign23hword_load,
4806         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
4807         23word_store): New instructions for 23-bit displacement load and store.
4808         (movqi_internal, movhi_internal): Update the attributes.
4809         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
4810         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
4811         the attributes.
4812         (v850_tst1): Modified using CC_REGNUM.
4813         (tstsi): Remove.
4814         (cmpsi): Modified as define_expand from define_insn.
4815         (cmpsi_insn, cmpsf, cmpdf): New instructions.
4816         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
4817         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
4818         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
4819         one_cmplsi2): Clobber the CC_REGNUM register.
4820         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
4821         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
4822         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
4823         (setf_insn, set_z_insn, set_nz_insn): New instructions for
4824         v850e2v3 target.
4825         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
4826         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
4827         targets.
4828         (sasf_1, sasf_2): Remove.
4829         (sasf): New instruction.
4830         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
4831         targets. CC_REGNUM register is clobbered and attributes are
4832         updated.
4833         (branch_z_normal, branch_z_invert, branch_nz_normal,
4834         branch_nz_invert): New branch related instructions.
4835         (jump): Updated the attributes.
4836         (switch): Update to support new targets. CC_REGNUM register is
4837         clobbered and attributes are updated.
4838         (call_internal_short, call_internal_long, call_value_internal_short,
4839         call_value_internal_long): Updated the attributes.
4840         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
4841         clobbered and attributes are updated.
4842         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
4843         Update to support new targets. CC_REGNUM register is clobbered.
4844         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
4845         instructions.
4846         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
4847         are updated.
4848         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
4849         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
4850         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
4851         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
4852         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
4853         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
4854         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
4855         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
4856         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
4857         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
4858         point instructions defined for V850e2v3 target.
4859         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
4860         Add support for V850E2 targets and CC_REGNUM register is clobbered.
4861         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
4862         support for new targets.
4863         * config/v850/v850-modes.def: New file.
4864         * config/v850/v850.opt(mstrict-align): Remove.
4865         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
4866         mv850e2v3): New command line options for V850.
4867         * config.gcc: Update the newly added files.
4868         * doc/invoke.texi: Update the newly added command line options for
4869         V850 target.
4870
4871 2010-07-26  Richard Guenther  <rguenther@suse.de>
4872
4873         PR tree-optimization/45052
4874         * ipa-pure-const.c (check_stmt): Check volatileness.
4875
4876 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
4877
4878         PR target/44707
4879         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
4880         * config/sparc/sparc.c: Include reload.h.
4881         (legitimize_tls_address): Rename into...
4882         (sparc_legitimize_tls_address): ...this.
4883         (legitimize_pic_address): Rename into...
4884         (sparc_legitimize_pic_address): ...this.
4885         (sparc_expand_move): Adjust to above renaming.
4886         (sparc_tls_referenced_p): Likewise.
4887         (sparc_legitimize_tls_address): Likewise.
4888         (sparc_legitimize_pic_address): Likewise.
4889         (sparc_legitimize_address): Likewise.
4890         (sparc_output_mi_thunk): Likewise.
4891         (sparc_legitimize_reload_address): New global function.  Recognize
4892         (lo_sum (high ...) ...) patterns generated by earlier passes.
4893         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
4894
4895 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
4896
4897         PR target/44484
4898         * config/sparc/predicates.md (memory_reg_operand): Delete.
4899         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
4900         (*sync_compare_and_swap): Encode the address form in the pattern.
4901         (*sync_compare_and_swapdi_v8plus): Likewise.
4902
4903 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
4904
4905         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
4906         Streamline paragraph on compatibility with the system compiler.
4907
4908 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
4909
4910         PR middle-end/45035
4911         * alias.c (true_dependence_1): Fix thinko in merge of old
4912         true_dependence and canon_true_dependence.
4913
4914 2010-07-23  Jan Hubicka  <jh@suse.cz>
4915
4916         * lto-streamer-out.c (write_symbol): Fix visibilities of external
4917         references.
4918
4919 2010-07-23  Le-Chun Wu  <lcwu@google.com>
4920
4921         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
4922         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
4923         and an unnecessary assignment.
4924         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
4925         self-assign warning.
4926         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
4927         unnecessary self-init.
4928
4929 2010-07-23  Richard Guenther  <rguenther@suse.de>
4930
4931         PR lto/43071
4932         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
4933         for -flto and -fwhopr.
4934
4935 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
4936
4937         PR target/41943
4938         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
4939         (stmp-int-hdrs): Prefix/postfix headers by include_next.
4940         * config.gcc (user_headers_inc_next_pre): New.
4941         (user_headers_inc_next_post): Likewise.
4942         (*-w64-mingw*): Use for float.h post-fixing, and for
4943         stddef.h/stdarg.h pre-fixing by include_next.
4944         * configure.ac (user_headers_inc_next_post): New.
4945         (user_headers_inc_next_pre): New.
4946         * configure: Regenerated.
4947
4948 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4949
4950         * configure.ac: Don't disable TLS on Solaris 8/9 by default
4951         Set tga_func for Solaris 2/x86 resp. SPARC.
4952         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
4953         (LIB_THREAD_LDFLAGS_SPEC): Define.
4954         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
4955         * configure: Regenerate.
4956         * config.in: Regenerate.
4957         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
4958         -pthread, -threads, LIB_TLS_SPEC with -pthread.
4959         * doc/install.texi (Specific, *-*-solaris2*): Document use of
4960         alternate thread libraries on Solaris 8.
4961         Document TLS patch requirements.
4962         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
4963         Document tls.
4964
4965         PR target/18788
4966         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
4967         -shared.
4968
4969 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
4970
4971         * tree.h (struct tree_base): Add nameless_flag bitfield.
4972         (TYPE_NAMELESS, DECL_NAMELESS): Define.
4973         * omp-low.c (create_omp_child_function, scan_omp_parallel,
4974         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
4975         DECL_ARTIFICIAL where needed.
4976         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
4977         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
4978         has DECL_NAMELESS set.
4979
4980 2010-07-23  Martin Jambor  <mjambor@suse.cz>
4981
4982         PR tree-optimization/44915
4983         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
4984         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
4985         (analyze_function): Likewise.
4986
4987 2010-07-23  Martin Jambor  <mjambor@suse.cz>
4988
4989         PR tree-optimization/44914
4990         * tree-sra.c (sra_modify_function_body): Return true if CFG was
4991         changed, add purging dead eh edges.
4992         (ipa_sra_modify_function_body): Return true if CFG was changed,
4993         simplify purging dead eh edges.
4994         (modify_function): Return true if CFG was changed.
4995         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
4996         was changed.
4997         (ipa_early_sra): Likewise.
4998
4999 2010-07-23  Jie Zhang  <jie@codesourcery.com>
5000
5001         PR target/44290
5002         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
5003         if "naked".
5004         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
5005         false if ! tree_versionable_function_p.
5006
5007 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
5008
5009         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
5010         * ipa-pure-const.c (special_builtlin_state): Remove
5011         BUILT_IN_ARGS_INFO case.
5012         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
5013         * builtins.c (expand_builtin): Likewise.
5014         (expand_builtin_args_info): Remove.
5015         * doc/tm.texi (__builtin_args_info): Remove.
5016         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
5017         * doc/tm.text.in: Likewise.
5018
5019 2010-07-23  Richard Guenther  <rguenther@suse.de>
5020
5021         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
5022         (lto_symtab_merge_decls_2): Likewise.
5023         * tree-ssa.c (useless_type_conversion_p): Likewise.
5024         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5025         * gimple.c (gtc_visited2, gtc_ob2): Remove.
5026         (struct type_pair_d): Make same_p an array indexed by mode.
5027         Update comment.
5028         (lookup_type_pair): Update initialization.
5029         (struct sccs): Adjust same_p type.
5030         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
5031         Adjust.
5032         (print_gimple_types_stats): Likewise.
5033         * gimple.h (enum gtc_mode): New.
5034         (gimple_types_compatible_p): Adjust prototype.
5035
5036 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
5037
5038         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
5039         again after processing insn.
5040
5041 2010-07-23  Jie Zhang  <jie@codesourcery.com>
5042
5043         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
5044         proper words when !tree_versionable_function_p.
5045
5046 2010-07-23  Richard Guenther  <rguenther@suse.de>
5047
5048         PR tree-optimization/45037
5049         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
5050
5051 2010-07-23  Jie Zhang  <jie@codesourcery.com>
5052
5053         * doc/extend.texi: Remove IP2K from the description of naked attribute.
5054         Add MCORE instead.
5055
5056 2010-07-10  Andi Kleen  <ak@linux.intel.com>
5057
5058         PR lto/44992
5059         * lto-opts.c (lto_write_options): Add NULL file_data argument to
5060         lto_get_section_name.
5061         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
5062         * lto-streamer-out.c (produce_asm): Likewise.
5063         (copy_function): Likewise.
5064         (produce_symtab): Likewise.
5065         (produce_asm_for_decls): Likewise.
5066         * lto-streamer.c (lto_get_section_name): Add file_data argument.
5067         Rewrite to add random postfix to LTO sections.
5068         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
5069         (lto_get_section_name): Add file_data argument to prototype.
5070
5071 2010-07-10  Andi Kleen  <ak@linux.intel.com>
5072
5073         * lto-section-in.c (lto_section_name): Synchronize names
5074         with lto_get_section_name.
5075
5076 2010-07-10  Andi Kleen  <ak@linux.intel.com>
5077
5078         * lto-opts.c (lto_read_file_options): Check for missing section.
5079
5080 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
5081
5082         * ira.c (check_allocation): Correctly handle the case where an allocno
5083         with two objects was allocated to a single reg.
5084
5085 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
5086
5087         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
5088         (is_widening_mult_p): Likewise.
5089         (convert_to_widen): Use them.
5090         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
5091         well as integer ones.
5092
5093 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
5094
5095         * alias.c (true_dependence_1): New function, merged version of
5096         true_dependence and canon_true_dependence.
5097         (true_dependence): Simplify.
5098         (canon_true_dependence): Simplify.
5099
5100 2010-07-22  Richard Henderson  <rth@redhat.com>
5101
5102         PR target/45027
5103         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
5104         of V4SFmode for the SSE saves; increase stack alignment if needed.
5105         (ix86_gimplify_va_arg): Don't increase stack alignment here.
5106
5107 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
5108
5109         PR bootstrap/45028
5110         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
5111         call cprop_find_used_regs again via note_uses.
5112
5113 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
5114
5115         * alias.c (get_alias_set): Fix formatting issues.
5116
5117 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
5118
5119         PR middle-end/44878
5120         * stmt.c (expand_value_return):  Call promote_function_mode with
5121         a for_return argument of 2 when returning by reference.
5122
5123 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
5124
5125         PR debug/45024
5126         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
5127         unit DIE if we can find the scope DIE.
5128
5129 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
5130
5131         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
5132         changed.  Initialize OBJECT_SUBWORD.
5133         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
5134         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
5135         all callers changed.
5136         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
5137         (finish_allocno): Likewise.
5138         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
5139         (remove_low_level_allocnos): Likewise.
5140         (update_bad_spill_attribute): Likewise.
5141         (setup_min_max_allocno_live_range_point): Likewise.
5142         (sort_conflict_id_map): Likewise.
5143         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
5144         (ior_hard_reg_conflicts): New function.
5145         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
5146         (compress_conflict_vecs): Iterate over objects, not allocnos.
5147         (ira_add_live_range_to_object): New function.
5148         (object_range_compare_func): Renamed from allocno_range_compare_func.
5149         All callers changed.
5150         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
5151         subobjects, widen the min/max range of the lowest-order object to
5152         potentially include all other such low-order objects.
5153         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
5154         (check_allocation): Likewise.  Use more fine-grained tests for register
5155         conflicts.
5156         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
5157         allocno subobjects.
5158         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
5159         choices about which bits to set in each set.  Don't use
5160         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
5161         using the multiple sets we computed.
5162         (push_allocno_to_stack): Iterate over allocno subobjects.
5163         (all_conflicting_hard_regs_coalesced): New static function.
5164         (setup_allocno_available_regs_num): Use it.
5165         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
5166         subobjects.
5167         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
5168         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
5169         by ALLOCNO_NUM_OBJECTS.
5170         (calculate_spill_cost): Likewise.
5171         (color_pass): Express if statement in a more normal way.
5172         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
5173         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
5174         (setup_slot_coalesced_allocno_live_ranges): Likewise.
5175         (allocno_reload_assign): Likewise.
5176         (ira_reassign_pseudos): Likewise.
5177         (fast_allocation): Likewise.
5178         * ira-conflicts.c (build_conflict_bit_table): Likewise.
5179         (print_allocno_conflicts): Likewise.
5180         (ira_build_conflicts): Likewise.
5181         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
5182         callers changed.  Test subword 0 of each allocno for conflicts.
5183         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
5184         callers changed.  Iterate over allocno subobjects.
5185         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
5186         * ira-int.h (struct ira_allocno): New member: num_objects.
5187         Rename object to objects and change it into an array.
5188         (ALLOCNO_OBJECT): Add new argument N.
5189         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
5190         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
5191         (ior_hard_reg_conflicts): Declare.
5192         (ira_add_live_range_to_object): Declare.
5193         (ira_allocno_object_iterator): New.
5194         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
5195         (FOR_EACH_ALLOCNO_OBJECT): New macro.
5196         * ira-lives.c (objects_live): Renamed from allocnos_live; all
5197         uses changed.
5198         (allocnos_processed): New sparseset.
5199         (make_object_born): Renamed from make_allocno_born; take an
5200         ira_object_t argument.  All callers changed.
5201         (make_object_dead): Renamed from make_allocno_dead; take an
5202         ira_object_t argument.  All callers changed.
5203         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
5204         All callers changed.
5205         (mark_pseudo_regno_live): Iterate over allocno subobjects.
5206         (mark_pseudo_regno_dead): Likewise.
5207         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
5208         functions.
5209         (mark_ref_live): Detect subword accesses and call
5210         mark_pseudo_regno_subword_live as appropriate.
5211         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
5212         (process_bb_nodes_live): Deal with object-related updates first; set
5213         and test bits in allocnos_processed to avoid computing allocno
5214         statistics more than once.
5215         (create_start_finish_chains): Iterate over objects, not allocnos.
5216         (print_object_live_ranges): New function.
5217         (print_allocno_live_ranges): Use it.
5218         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
5219         and objects_live.
5220
5221 2010-07-22  Richard Guenther  <rguenther@suse.de>
5222
5223         PR lto/42451
5224         * gimple.c (gtc_next_dfs_num): New global.
5225         (struct sccs): Make value a union, add integer same_p member.
5226         (gtc_visit): New function.
5227         (gimple_types_compatible_p_1): New function, split out from ...
5228         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
5229         (iterative_hash_gimple_type): Adjust for sccs change.
5230
5231 2010-07-22  Martin Jambor  <mjambor@suse.cz>
5232
5233         PR tree-optimization/44891
5234         * tree-sra.c: Include gimple-pretty-print.h.
5235         (replace_uses_with_default_def_ssa_name): Renamed to
5236         get_repl_default_def_ssa_name, return the new SSA name instead of
5237         replacing the old one.
5238         (sra_modify_assign): Dump a message when removing a load, if the LHS
5239         is an SSA_NAME, do not do any propagation, just set the RHS to a
5240         default definition SSA NAME, type convert if necessary.
5241         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
5242
5243 2010-07-22  Richard Guenther  <rguenther@suse.de>
5244
5245         PR tree-optimization/45017
5246         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
5247         TYPE_PRECISION of integral types in addition to size.
5248
5249 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
5250
5251         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
5252         when no C library is specified.
5253
5254 2010-07-22  Martin Jambor  <mjambor@suse.cz>
5255
5256         * ipa-prop.h (struct ipa_node_params): Updated comment.
5257         (struct ipa_edge_args): Likewise.
5258         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
5259
5260 2010-07-22  Martin Jambor  <mjambor@suse.cz>
5261
5262         * cgraphunit.c (verify_edge_count_and_frequency): New function.
5263         (verify_cgraph_node): Verify frequencies of indirect edges.
5264         * tree-inline.c (tree_function_versioning): Update frequencies of
5265         indirect edges.
5266
5267 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5268
5269         PR target/43698
5270         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
5271         Set *arm_rev to be predicable.
5272
5273 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
5274
5275         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
5276         (LINK_COMMAND_SPEC_A): New.
5277         (DSYMUTIL): New.
5278         (DSYMUTIL_SPEC): New.
5279         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
5280         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
5281
5282 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
5283
5284         * calls.c (load_register_parameters): Move check for zero
5285         sized items so that only the call to
5286         mem_overlaps_already_clobbered_arg_p () is protected.
5287
5288 2010-07-22  Jan Hubicka  <jh@suse.cz>
5289
5290         * ipa-pure-const.c (varying_state): Break out from ...
5291         (get_function_state): ... here; always return varying_state
5292         when state would be NULL otherwise.
5293         (remove_node_data): Do not free varying state.
5294
5295 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
5296
5297         PR bootstrap/44970
5298         PR middle-end/45009
5299         * postreload.c: Include "target.h".
5300         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
5301         into account.
5302         (fixup_debug_insns): Don't copy the rtx.
5303         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
5304         Don't copy when replacing.  Call fixup_debug_insns in the case where
5305         we merged one add with another.
5306         (reload_combine_recognize_pattern): Fail if there aren't any uses.
5307         Try harder to determine whether we're picking a valid index register.
5308         Don't set store_ruid for an insn we're going to scan in the
5309         next iteration.
5310         (reload_combine): Remove unused code.
5311         (reload_combine_note_use): When updating use information for
5312         an old insn, ignore a use that occurs after store_ruid.
5313         * Makefile.in (postreload.o): Update dependencies.
5314
5315         * function.c (record_hard_reg_sets): Restrict the previous change
5316         to cases where the incoming nominal mode is the same as the
5317         incoming promoted mode and everything happens in MODE_INT.
5318
5319 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
5320
5321         PR debug/45015
5322         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
5323         ASM_OPERANDS_OUTPUT_IDX.
5324         (adjust_insn): For inline asm with multiple sets ensure first
5325         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
5326         the insn.
5327
5328 2010-07-21  Richard Henderson  <rth@redhat.com>
5329
5330         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
5331         comparison for avoiding xmm register saves.  Emit the xmm register
5332         saves explicitly.
5333         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
5334         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
5335         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
5336         Remove patterns and the associated splitters.
5337
5338 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
5339
5340         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
5341         and imagine parts of a complex, so that they can have the same
5342         base and fall into the same group.
5343
5344 2010-07-21  Richard Guenther  <rguenther@suse.de>
5345
5346         PR lto/45018
5347         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
5348         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
5349         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
5350
5351 2010-07-21  Martin Jambor  <mjambor@suse.cz>
5352
5353         PR tree-optimization/44900
5354         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
5355         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
5356
5357 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
5358
5359         PR middle-end/44738
5360         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
5361
5362 2010-07-21  Richard Guenther  <rguenther@suse.de>
5363
5364         PR middle-end/45013
5365         * tree-ssa.c (useless_type_conversion_p): Dispatch to
5366         gimple_types_compatible_p only when in lto.
5367         * gimple.c (gimple_types_compatible_p): Use canonical types
5368         to speed up comparison.
5369
5370 2010-07-21  Richard Guenther  <rguenther@suse.de>
5371
5372         * tree-flow.h (referenced_var): Move define ...
5373         * tree-flow-inline.h (referenced_var): ... here as an inline
5374         function.  Assert here ...
5375         * tree-dfa.c (referenced_var_lookup): ... instead of here.
5376         * tree-ssa.c (maybe_optimize_var): Check if the variable
5377         is in referenced vars.
5378         (execute_update_addresses_taken): Remove old broken check.
5379         * gimple-pretty-print.c (pp_points_to_solution): Use
5380         referenced_var_lookup.
5381         * tree-into-ssa.c (dump_decl_set): Likewise.
5382
5383 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
5384
5385         PR debug/45003
5386         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
5387         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
5388         ZERO_EXTEND here.
5389
5390 2010-07-20  Richard Henderson  <rth@redhat.com>
5391
5392         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
5393
5394 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
5395
5396         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
5397         computing the sum of the stack pointer and a large constant.
5398         * config/arm/constraints.md (M): Remove superfluous parentheses.
5399         (Pc): New constraint.
5400
5401 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
5402
5403         PR debug/45006
5404         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
5405         operand's type if exp is tcc_unary class tree.
5406
5407 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
5408
5409         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
5410         Reverse sense of if_then_else condition.
5411
5412 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
5413
5414         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
5415         * config/rs6000/rs6000.c (rs6000_override_options): Set
5416         rs6000_block_move_inline_limit appropriately.
5417         (expand_block_move): Use rs6000_block_move_inline_limit.
5418         * doc/invoke.texi (mblock-move-inline-limit): Document.
5419
5420 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
5421
5422         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
5423         FROM and TO.  All callers changed.  Don't look for tracked uses,
5424         just scan the RTL for DEBUG_INSNs and substitute.
5425         (reload_combine_recognize_pattern): Call fixup_debug_insns.
5426         (reload_combine): Ignore DEBUG_INSNs.
5427
5428 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
5429
5430         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
5431         depth to 8 from 5.
5432
5433         PR debug/45003
5434         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
5435         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
5436         instead of the result's type.
5437
5438 2010-07-20  Richard Guenther  <rguenther@suse.de>
5439
5440         PR tree-optimization/44977
5441         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
5442         SSA form.
5443
5444 2010-07-20  Richard Guenther  <rguenther@suse.de>
5445
5446         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
5447         (lto_symtab_merge_decls_2): Likewise.
5448         * gimple.h (gimple_types_compatible_p): Declare.
5449         * gimple.c (gimple_queue_type_fixup): Remove.
5450         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
5451         (gimple_compatible_complete_and_incomplete_type_p): New function.
5452         (gimple_types_compatible_p): Adjust.
5453         (gimple_register_type): Remove type fixup code.
5454         (print_gimple_types_stats): Adjust.
5455         (free_gimple_type_tables): Likewise.
5456         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
5457         * tree-ssa.c (useless_type_conversion_p): Likewise.
5458
5459 2010-07-20  Richard Guenther  <rguenther@suse.de>
5460
5461         PR middle-end/44971
5462         PR middle-end/44988
5463         * tree-ssa.c (maybe_optimize_var): New function split out from ...
5464         (execute_update_addresses_taken): ... here.
5465         (non_rewritable_mem_ref_base): Likewise.
5466         (execute_update_addresses_taken): Do not iterate over all referenced
5467         vars but just all local decls and parms.
5468         Properly check call and asm arguments and rewrite call arguments.
5469
5470 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
5471
5472         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
5473         to top level.
5474         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
5475         definitions ...
5476         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
5477         New macro.
5478         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
5479
5480 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5481
5482         * gengtype.c (start_root_entry): New function, split out from
5483         write_root.  Check whether V is null and raise an error if so.
5484         (write_field_root): Check for V being null.  Don't raise an error here;
5485         set V to null instead.
5486         (write_root): Update comment above function.  Use start_root_entry.
5487
5488 2010-07-19  Xinliang David Li  <davidxl@google.com>
5489
5490         PR testsuite/44932
5491         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
5492         def edges.
5493         (find_uninit_use): Add dump.
5494         (is_use_properly_guarded): Ditto.
5495         (warn_uninitialized_phi): Ditto.
5496         (execute_late_warn_uninitialized): Ditto.
5497
5498 2010-07-19  Richard Guenther  <rguenther@suse.de>
5499
5500         PR middle-end/44941
5501         * expr.c (emit_block_move_hints): Move zero size check first.
5502         Move asserts to more useful places.
5503         * calls.c (load_register_parameters): Check for zero size.
5504
5505 2010-07-19  Richard Henderson  <rth@redhat.com>
5506
5507         * tree-optimize.c (execute_all_early_local_passes): New.  Change
5508         cgraph_state here ...
5509         (execute_early_local_optimizations): ... not here.  Remove.
5510         (pass_early_local_passes, pass_all_early_optimizations): Update.
5511
5512 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
5513
5514         * postreload.c (reload_combine_closest_single_use): Ignore the
5515         number of uses for DEBUG_INSNs.
5516         (fixup_debug_insns): New static function.
5517         (reload_combine_recognize_const_pattern): Use it.  Don't let the
5518         main loop be affected by DEBUG_INSNs.
5519         Really disallow moving adds past a jump insn.
5520         (reload_combine_recognize_pattern): Don't update use_ruid here.
5521         (reload_combine_note_use): Do it here.
5522         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
5523
5524 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
5525
5526         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
5527         of a loop.
5528         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
5529
5530 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
5531
5532         * config/i386/darwin.h: Define darwin_emit_branch_islands.
5533         (TARGET_MACHO_BRANCH_ISLANDS): New.
5534         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
5535         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
5536         default value.
5537         * config/i386/i386.c (output_pic_addr_const): Do not emit
5538         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
5539         (x86_output_mi_thunk): Adjust symbol creation.
5540         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
5541         Remove out of date comment.
5542         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
5543         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
5544         (DARWIN_GENERATE_ISLANDS): Ditto.
5545         (output_call):  Do not emit branch islands unless
5546         darwin_emit_branch_islands is set.
5547         * config/darwin.c: Declare darwin_emit_branch_islands.
5548         (machopic_indirect_data_reference): Do not emit unless
5549         darwin_emit_branch_islands is set.
5550         (darwin_override_options): Set darwin_emit_branch_islands
5551         where it is needed.
5552         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
5553
5554 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5555
5556         * doc/sourcebuild.texi (Effective-Target Keywords): Document
5557         sse_runtime, sse2_runtime.
5558
5559 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
5560
5561         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
5562         low half of a single-register SCmode return value before ORing
5563         it with the high half.
5564         * config/mips/mips16.S (MERGE_GPRf): Likewise.
5565
5566 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5567
5568         PR target/44805
5569         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
5570         on all targets.
5571
5572 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
5573
5574         PR target/42235
5575         * postreload.c (reload_cse_move2add): Return bool, true if anything.
5576         changed.  All callers changed.
5577         (move2add_use_add2_insn): Likewise.
5578         (move2add_use_add3_insn): Likewise.
5579         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
5580         reload_combine.
5581         (RELOAD_COMBINE_MAX_USES): Bump to 16.
5582         (last_jump_ruid): New static variable.
5583         (struct reg_use): New members CONTAINING_MEM and RUID.
5584         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
5585         (reload_combine_split_one_ruid, reload_combine_split_ruids,
5586         reload_combine_purge_insn_uses, reload_combine_closest_single_use
5587         reload_combine_purge_reg_uses_after_ruid,
5588         reload_combine_recognize_const_pattern): New static functions.
5589         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
5590         is true for our reg and that we have available index regs.
5591         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
5592         callers changed.  Use them to initialize fields in struct reg_use.
5593         (reload_combine): Initialize last_jump_ruid.  Be careful when to
5594         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
5595         Call reload_combine_recognize_const_pattern.
5596         (reload_combine_note_store): Update REAL_STORE_RUID field.
5597
5598 2010-07-16  Jason Merrill  <jason@redhat.com>
5599
5600         * Makefile.in (opts-common.o): Depend on options.h.
5601
5602 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
5603
5604         * tree.c (build_common_builtin_nodes): Use build_function_type_list
5605         instead of build_function_type.
5606         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
5607         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
5608
5609 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
5610
5611         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
5612         do all the work.
5613         (rs6000_emit_int_cmove): Use function pointers for insn generation.
5614         Don't force values into registers unnecessarily.
5615         (output_isel): Assert that we're not given conditions we can't handle.
5616         Delete corresponding code.
5617         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
5618         scc_comparison_operator constraint.  Permit 0 for the consequent
5619         operand.  Permit any GPR for the alternative operand.
5620         (isel_unsigned_<mode>): Likewise.
5621
5622 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
5623
5624         PR target/44942
5625         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
5626         argument to const_tree.
5627         * config/i386/i386.c (function_arg_advance): If padding needs to be
5628         inserted before argument, increment cum->words by number of padding
5629         words as well.
5630         (contains_aligned_value_p): Change argument to const_tree.
5631         (ix86_function_arg_boundary): Change second argument to const_tree.
5632
5633 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
5634
5635         PR target/42235
5636         * function.c (record_hard_reg_sets): New static function.
5637         (assign_parm_setup_reg): If an optab for extending exists and the
5638         generated code clobbbers no hard regs, emit the insn directly and
5639         create a REG_EQUIV note.
5640
5641 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
5642
5643         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
5644         TREE_CHAIN.
5645         * c-typeck.c (push_init_level): Likewise.
5646         (process_init_element): Likewise.
5647
5648 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
5649
5650         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
5651         (integer_three_node): Add.
5652         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
5653         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
5654         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
5655         of call build_int_cst.
5656         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
5657         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
5658         (find_interesting_uses_address): Ditto.
5659         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
5660         * tree-eh.c (lower_eh_constructs_2): Ditto.
5661         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
5662         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
5663         * expmed.c (expand_divmod): Ditto.
5664         * tree-mudflap.c (mx_register_decls): Ditto.
5665         * varasm.c (array_size_for_constructor): Ditto.
5666         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
5667         * c-parser.c (c_parser_postfix_expression): Ditto.
5668
5669 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
5670
5671         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
5672         New static variables.
5673         (reload_combine_recognize_pattern): New static function, broken out
5674         of reload_combine.
5675         (reload_combine): Use it.  Only initialize first_index_reg and
5676         last_index_reg once.
5677
5678 2010-07-15  Richard Henderson  <rth@redhat.com>
5679
5680         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
5681         when done.
5682
5683 2010-07-15  Jan Hubicka  <jh@suse.cz>
5684
5685         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
5686         comdats for broken gold.
5687         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
5688
5689 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
5690
5691         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
5692
5693 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
5694
5695         * tree.h (DECL_CHAIN): Define.
5696         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
5697         * c-decl.c: Likewise.
5698         * c-parser.c: Likewise.
5699         * c-typeck.c: Likewise.
5700         * cfgexpand.c: Likewise.
5701         * cgraph.c: Likewise.
5702         * cgraphunit.c: Likewise.
5703         * combine.c: Likewise.
5704         * config/alpha/alpha.c: Likewise.
5705         * config/arm/arm.c: Likewise.
5706         * config/frv/frv.c: Likewise.
5707         * config/i386/i386.c: Likewise.
5708         * config/i386/winnt-cxx.c: Likewise.
5709         * config/ia64/ia64.c: Likewise.
5710         * config/iq2000/iq2000.c: Likewise.
5711         * config/mep/mep.c: Likewise.
5712         * config/mips/mips.c: Likewise.
5713         * config/pa/som.h: Likewise.
5714         * config/rs6000/rs6000.c: Likewise.
5715         * config/s390/s390.c: Likewise.
5716         * config/sh/sh.c: Likewise.
5717         * config/sh/symbian-cxx.c: Likewise.
5718         * config/sparc/sparc.c: Likewise.
5719         * config/spu/spu.c: Likewise.
5720         * config/stormy16/stormy16.c: Likewise.
5721         * config/vxworks.c: Likewise.
5722         * config/xtensa/xtensa.c: Likewise.
5723         * coverage.c: Likewise.
5724         * dbxout.c: Likewise.
5725         * dwarf2out.c: Likewise.
5726         * emit-rtl.c: Likewise.
5727         * expr.c: Likewise.
5728         * function.c: Likewise.
5729         * gimple-low.c: Likewise.
5730         * gimple-pretty-print.c: Likewise.
5731         * gimplify.c: Likewise.
5732         * integrate.c: Likewise.
5733         * ipa-inline.c: Likewise.
5734         * ipa-prop.c: Likewise.
5735         * ipa-split.c: Likewise.
5736         * ipa-struct-reorg.c: Likewise.
5737         * ipa-type-escape.c: Likewise.
5738         * langhooks.c: Likewise.
5739         * lto-cgraph.c: Likewise.
5740         * omp-low.c: Likewise.
5741         * stor-layout.c: Likewise.
5742         * tree-cfg.c: Likewise.
5743         * tree-complex.c: Likewise.
5744         * tree-dfa.c: Likewise.
5745         * tree-dump.c: Likewise.
5746         * tree-inline.c: Likewise.
5747         * tree-mudflap.c: Likewise.
5748         * tree-nested.c: Likewise.
5749         * tree-object-size.c: Likewise.
5750         * tree-pretty-print.c: Likewise.
5751         * tree-sra.c: Likewise.
5752         * tree-ssa-live.c: Likewise.
5753         * tree-ssa-loop-niter.c: Likewise.
5754         * tree-ssa-math-opts.c: Likewise.
5755         * tree-ssa-reassoc.c: Likewise.
5756         * tree-ssa-sccvn.c: Likewise.
5757         * tree-ssa-structalias.c: Likewise.
5758         * tree-tailcall.c: Likewise.
5759         * tree-vrp.c: Likewise.
5760         * tree.c: Likewise.
5761         * var-tracking.c: Likewise.
5762         * varasm.c: Likewise.
5763
5764 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5765
5766         PR target/44877
5767         * config/spu/spu.c (spu_expand_builtin_1): Allow references
5768         (as well as pointers) as argument to mask_for_load builtins.
5769
5770 2010-07-15  Richard Guenther  <rguenther@suse.de>
5771
5772         PR tree-optimization/44946
5773         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
5774         with accessing only padding properly.
5775
5776 2010-07-15  Jan Hubicka  <jh@suse.cz>
5777
5778         * ipa.c (function_and_variable_visibility): Variables marked as used
5779         should not be localized.
5780
5781 2010-07-15  Jan Hubicka  <jh@suse.cz>
5782
5783         * cgraph.c: Include lto-streamer.h
5784         (change_decl_assembler_name): Work when assembler name hash is at place.
5785         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
5786         be sure to rename it to avoid name clash.
5787         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
5788         Localize hidden symbols only when locally defined.
5789
5790 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
5791
5792         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
5793
5794 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
5795             Kevin F. Quinn  <kevquinn@gentoo.org>
5796
5797         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
5798         * common.opt: Add -Wtrampolines.
5799         * doc/invoke.texi: Add -Wtrampolines.
5800
5801 2010-07-15  Jie Zhang  <jie@codesourcery.com>
5802
5803         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
5804         cortex_a8_issue_ls.
5805
5806 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
5807
5808         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
5809         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
5810
5811 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5812
5813         * config/spu/spu.c (reg_names): Remove prototype.
5814         (call_used_regs): Likewise.
5815
5816 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
5817
5818         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
5819         "unused" with attribute "used".
5820         (__JCR_END__): Likewise.
5821         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
5822         "used" attribute.
5823         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
5824
5825 2010-07-14  Richard Guenther  <rguenther@suse.de>
5826
5827         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
5828         (maybe_fixup_decls): Likewise.
5829         (input_gimple_stmt): Do not fixup anything.
5830         * lto-streamer-out.c (output_gimple_stmt): Make sure all
5831         non-automatic variable uses are wrapped inside a MEM_REF.
5832
5833 2010-07-14  Richard Henderson  <rth@redhat.com>
5834
5835         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
5836         for functions.
5837         * varasm.c (assemble_variable): Remove early exit for functions;
5838         assert that we're given a variable.
5839
5840 2010-07-14  Jie Zhang  <jie@codesourcery.com>
5841
5842         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
5843         cortex_a8_default when neon_type is not none.
5844
5845 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
5846
5847         * lower-subreg.c (subreg_context): New static bitmap.
5848         (decompose_multiword_subregs): Allocate and free it.
5849         (find_decomposable_subregs): Set a bit in it for a register that
5850         occurs in a subreg that changes mode but not size.
5851         (can_decompose_p): Test it instead of non_decomposable_context.
5852
5853 2010-07-14  Richard Guenther  <rguenther@suse.de>
5854
5855         PR tree-optimization/44824
5856         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
5857         is_gimple_mem_ref_addr.
5858         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
5859         non-decl_address_invariant_p addresses.
5860
5861 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
5862
5863         * reload.c (find_reloads): Revert code to penalize small register
5864         classes that was brought in with the IRA merge.
5865
5866 2010-07-14  Richard Guenther  <rguenther@suse.de>
5867
5868         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
5869         as base of ARRAY_REFs.
5870
5871 2010-07-14  Richard Guenther  <rguenther@suse.de>
5872
5873         PR middle-end/44930
5874         * tree-pretty-print.c (do_niy): Do not print a newline.
5875
5876 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
5877
5878         * ira-int.h (struct ira_object): New.
5879         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
5880         (struct ira_allocno): Remove members min, max,
5881         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
5882         conflict_allocnos_num and conflict_vec_p.  Add new member object.
5883         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
5884         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
5885         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
5886         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
5887         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
5888         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
5889         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
5890         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
5891         an ira_object_t rather than ira_allocno_t.  All uses changed.
5892         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
5893         contains a vector of ira_object_t; all uses changed.
5894         (ira_objects_num): Declare variable.
5895         (ira_create_allocno_object): Declare function.
5896         (ira_conflict_vector_profitable_p): Adjust prototype.
5897         (ira_allocate_conflict_vec): Renamed from
5898         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
5899         (ira_allocate_object_conflicts): Renamed from
5900         ira_allocate_allocno_conflicts; first arg now ira_object_t.
5901         (struct ira_object_iterator): New.
5902         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
5903         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
5904         to conflict_vec_p.  All uses changed.
5905         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
5906         Changed to take into account that conflicts are now tracked for
5907         objects.
5908         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
5909         Args changed to accept ira_object_t.  All uses changed.
5910         (allocnos_conflict_p): New static function.
5911         (collected_conflict_objects): Renamed from collected_allocno_objects;
5912         now a vector of ira_object_t.  All uses changed.
5913         (build_conflict_bit_table): Changed to take into account that
5914         conflicts are now tracked for objects.
5915         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
5916         (print_allocno_conflicts, ira_build_conflicts): Likewise.
5917         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
5918         setup_allocno_left_conflicts_size, allocno_reload_assign,
5919         fast_allocation): Likewise.
5920         * ira-lives.c (make_hard_regno_born, make_allocno_born)
5921         process_single_reg_class_operands, process_bb_node_lives): Likewise.
5922         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
5923         Likewise.
5924         * ira-build.c (ira_objects_num): New variable.
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_object_id_map_vec): Corresponding change.
5928         (object_pool): New static variable.
5929         (initiate_allocnos): Initialize it.
5930         (finish_allocnos): Free it.
5931         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
5932         New functions.
5933         (ira_create_allocno): Don't set members that were removed.
5934         (ira_set_allocno_cover_class): Don't change conflict hard regs.
5935         (merge_hard_reg_conflicts): Changed to take into account that
5936         conflicts are now tracked for objects.
5937         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
5938         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
5939         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
5940         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
5941         setup_min_max_conflict_allocno_ids, ):  Likewise.
5942         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
5943         to ira_object_t; all callers changed.
5944         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
5945         to ira_object_t, all callers changed.
5946         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
5947         to ira_object_t, all callers changed.
5948         (conflict_check, curr_conflict_check_tick): Renamed from
5949         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
5950         changed.
5951         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
5952         arg changed to ira_object_t, all callers changed.
5953         (create_cap_allocno): Call ira_create_allocno_object.
5954         (finish_allocno): Free the corresponding object.
5955         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
5956         callers changed.  Adjusted for dealing with objects.
5957         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
5958         dealing with objects.
5959         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
5960
5961         * ira-int.h (struct live_range): Rename allocno member to object
5962         and change type to ira_object_t.
5963         (struct ira_object): New member live_ranges.
5964         (struct ira_allocno): Remove member live_ranges.
5965         (ALLOCNO_LIVE_RANGES): Remove.
5966         (OBJECT_LIVE_RANGES): New macro.
5967         (ira_create_live_range, ira_copy_live_range_list,
5968         ira_merge_live_range_list, ira_live_ranges_intersect_p,
5969         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
5970         * ira-build.c (ira_create_object): Initialize live ranges here.
5971         (ira_create_allocno): Not here.
5972         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
5973         changed to ira_object_t, all callers changed.
5974         (copy_live_range): Rename from copy_allocno_live_range, all callers
5975         changed.
5976         (ira_copy_live_range_list): Rename from
5977         ira_copy_allocno_live_range_list, all callers changed.
5978         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
5979         all callers changed.
5980         (ira_live_ranges_intersect_p): Rename from
5981         ira_allocno_live_ranges_intersect_p, all callers changed.
5982         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
5983         callers changed.
5984         (ira_finish_live_range_list): Rename from
5985         ira_finish_allocno_live_range_list, all callers changed.
5986         (change_object_in_range_list): Rename from change_allocno_in_range_list,
5987         last arg changed to ira_object_t, all callers changed.
5988         (finish_allocno): Changed to expect live ranges in the allocno's object.
5989         (move_allocno_live_ranges, copy_allocno_live_ranges,
5990         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
5991         ira_flattening, ira_build): Likewise.
5992         * ira-color.c (allocnos_have_intersected_live_ranges_p,
5993         slot_coalesced_allocno_live_ranges_intersect,
5994         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
5995         * ira-conflicts.c (build_conflict_bit_table): Likewise.
5996         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
5997         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
5998         make_allocno_dead, create_start_finish_chains,
5999         remove_some_program_points_and_update_live_ranges,
6000         ira_debug_live_range_list): Likewise.
6001
6002         * ira-int.h (ira_object_conflict_iterator): Rename from
6003         ira_allocno_conflict_iterator.
6004         (ira_object_conflict_iter_init): Rename from
6005         ira_allocno_conflict_iter_init, second arg changed to
6006         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
6007         FOR_EACH_ALLOCNO_CONFLICT.
6008         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
6009         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
6010         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
6011         * ira-conflicts.c (print_allocno_conflicts): Likewise.
6012
6013 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
6014
6015         PR other/44874
6016         * tree-dump.c (dump_options): Add enumerate_locals entry.
6017         Add TDF_NOID exclusion to all entry.
6018         * tree-dump.h (dump_enumerated_decls): Declare.
6019         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
6020         Don't display type uid.
6021         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
6022         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
6023         * tree-ssa-live.c: Include gimple.h.
6024         (numbered_tree_d): New struct.
6025         (numbered_tree): New typedef.
6026         (DEF_VEC_O (numbered_tree): New.
6027         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
6028         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
6029         (dump_enumerated_decls): Likewise.
6030         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
6031         debug info and flag_dump_final_insns, call dump_enumerated_decls.
6032         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
6033         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
6034
6035 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
6036
6037         * expmed.h (MAX_BITS_PER_WORD): Move to...
6038         * defaults.h (MAX_BITS_PER_WORD): ...here.
6039
6040 2010-07-13  DJ Delorie  <dj@redhat.com>
6041
6042         * config/h8300/h8300.c (h8300_init_once): Default to
6043         -fstrict_volatile_bitfields.
6044
6045         * config/sh/sh.c (sh_override_options): Default to
6046         -fstrict_volatile_bitfields.
6047
6048         * config/rx/rx.c (rx_option_override): New.
6049
6050         * config/m32c/m32c.c (m32c_override_options): Default to
6051         -fstrict_volatile_bitfields.
6052
6053 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
6054
6055         * tree.h (build_function_call_expr): Delete.
6056         (build_call_expr_loc_array): New function.
6057         (build_call_expr_loc_vec): New function.
6058         * tree-flow.h (struct omp_region): Change type of ws_args field
6059         to a VEC.
6060         * builtins.c (build_function_call_expr): Delete.
6061         (build_call_expr_loc_array): New function.
6062         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
6063         (build_call_expr): Likewise.
6064         (build_call_expr_loc_vec): New function.
6065         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
6066         build_function_call_expr.
6067         * expr.c (emutls_var_address): Likewise.
6068         * varasm.c (emutls_common_1): Likewise.
6069         * omp-low.c (expand_omp_atomic_mutex): Likewise.
6070         (expand_omp_taskreg): Adjust for new type of region->ws_args.
6071         (get_ws_args_for): Return a VEC instead of a tree.
6072         (expand_parallel_call): Call build_call_expr_loc_vec instead of
6073         build_function_call_expr.
6074         * stor-layout.c (self_referential_size): Likewise.
6075
6076 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
6077
6078         PR testsuite/44701
6079         * recog.c (constrain_operands): Allow side-effects in memory
6080         operands if either < or > constraint is used, rather than if
6081         both < and > is used.
6082
6083 2010-07-13  Richard Guenther  <rguenther@suse.de>
6084
6085         PR middle-end/44911
6086         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
6087         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
6088         without name.
6089
6090 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
6091
6092         PR target/44761
6093         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
6094         to variable emited.
6095         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
6096         * config/sh/sh.md (symGOT_load): Likewise.
6097         (symDTPOFF2reg): Likewise.
6098         (symTPOFF2reg): Likewise.
6099
6100 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6101
6102         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
6103         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
6104
6105 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6106
6107         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
6108         explanation.
6109         Find ucontext_t * on Solaris 11.
6110         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
6111         Handle new Solaris 11 __sighndlr patterns.
6112
6113 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
6114
6115         PR debug/44901
6116         * vec.h (VEC_block_remove): Fix comment.
6117         * tree-ssa-live.c (remove_unused_locals): Don't use
6118         VEC_unordered_remove on local_decls, instead replace a single
6119         vector element in each iteration if at least one element had
6120         to be removed and VEC_truncate at the end.
6121         * omp-low.c (expand_omp_taskreg): Likewise.
6122
6123 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6124
6125         * c-decl.c (finish_function): Fix typo in comment.
6126
6127 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
6128
6129         PR bootstrap/44921
6130         * postreload.c (move2add_use_add3_insn): Silence gcc warning
6131         on min_regno.
6132
6133 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
6134
6135         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
6136         (simplify_stmt_using_ranges): Use it.
6137
6138 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6139
6140         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
6141         member.  Do not mark as GTY(()).
6142         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
6143         (spu_builtin_decls): New static variable.
6144         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
6145         (spu_init_builtins): Likewise.
6146         (spu_builtin_mul_widen_even): Likewise.
6147         (spu_builtin_mul_widen_odd): Likewise.
6148         (spu_builtin_mask_for_load): Likewise.
6149         (spu_builtin_vec_perm): Likewise.
6150         * config/spu/spu-c.c: Include "target.h".
6151         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
6152         of using spu_builtins[].fndecl.
6153
6154 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6155
6156         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
6157         imply -minterlink-mips16.
6158
6159 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6160
6161         * config/mips/mips.h (mips16_globals): Declare.
6162         (SWITCHABLE_TARGET): Define.
6163         * config/mips/mips.c: Include target-globals.h.
6164         (mips16_globals): New variable.
6165         (mips_set_mips16_mode): Use save_target_globals and
6166         restore_target_globals instead of target_reinit.
6167
6168 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6169
6170         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
6171         to say that the function can be called more than once.
6172         * target-globals.c (save_target_globals): Call init_reg_sets.
6173
6174 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6175
6176         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
6177         * bb-reorder.h: New file.
6178         * bb-reorder.c (default_target_bb_reorder): New variable.
6179         (this_target_bb_reorder): New conditional variable.
6180         (uncond_jump_length): Redefine as a macro.
6181         * target-globals.h (this_target_bb_reorder): Declare.
6182         (target_globals): Add a bb_reorder field.
6183         (restore_target_globals): Copy the bb_reorder field to
6184         this_target_bb-reorder.
6185         * target-globals.c: Include bb-reorder.h.
6186         (default_target_globals): Initialize the bb_reorder field.
6187         (save_target_globals): Likewise.
6188
6189 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6190
6191         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
6192         * gcse.h: New file.
6193         * gcse.c: Include gcse.h.
6194         (default_target_gcse): New variable.
6195         (this_target_gcse): New conditional variable.
6196         (can_copy): Redefine as a macro.
6197         (can_copy_init_p): New macro.
6198         (can_copy_p): Remove can_copy_init_p.
6199         * target-globals.h (this_target_gcse): Declare.
6200         (target_globals): Add a gcse field.
6201         (restore_target_globals): Copy the gcse field to this_target_gcse.
6202         * target-globals.c: Include gcse.h.
6203         (default_target_globals): Initialize the gcse field.
6204         (save_target_globals): Likewise.
6205
6206 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6207
6208         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
6209         and x_ira_prohibited_mode_move_regs_initialized_p.
6210         (ira_prohibited_mode_move_regs): Redefine as a macro.
6211         * ira.c (ira_prohibited_mode_move_regs): Delete.
6212         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
6213
6214 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6215
6216         * reload.h (target_reload): Add x_cached_reg_save_code and
6217         x_cached_reg_restore_code.
6218         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
6219         Redefine as macros.
6220
6221 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6222
6223         * Makefile.in (target-globals.o): Depend on builtins.h.
6224         * builtins.h: New file.
6225         * builtins.c: Include builtins.h.
6226         (default_target_builtins): New variable.
6227         (this_target_builtins): New conditional variable.
6228         (apply_args_mode, apply_result_mode): Redefine as macros.
6229         * target-globals.h (this_target_builtins): Declare.
6230         (target_globals): Add a builtins field.
6231         (restore_target_globals): Copy the builtins field to
6232         this_target_builtins.
6233         * target-globals.c: Include builtins.h.
6234         (default_target_globals): Initialize the builtins field.
6235         (save_target_globals): Likewise.
6236
6237 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6238
6239         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
6240         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
6241         from expmed.c.
6242         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
6243         (alg_hash, alg_hash_used_p): New macros.
6244         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
6245         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
6246         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
6247
6248 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6249
6250         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
6251         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
6252         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
6253         (this_op_costs, costs_classes): Redefine as macros.
6254         (record_reg_classes): Don't take op_costs as a parameter.
6255         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
6256         (scan_one_insn): Update call to record_operand_costs.
6257
6258 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6259
6260         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
6261         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
6262         (target_ira_int): New structure.
6263         (default_target_ira_int): Declare.
6264         (this_target_ira_int): Declare as a variable or define as a macro.
6265         (ira_reg_mode_hard_regset, ira_register_move_cost)
6266         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
6267         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
6268         (prohibited_class_mode_regs, ira_important_classes_num)
6269         (ira_important_classes, ira_reg_class_intersect)
6270         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
6271         (ira_reg_class_union): Redefine as macros.
6272         * ira.h (target_ira): New structure.
6273         (default_target_ira): Declare.
6274         (this_target_ira): Declare as a variable or define as a macro.
6275         (ira_available_class_regs, ira_hard_regno_cover_class)
6276         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
6277         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
6278         (ira_class_hard_regs_num): Redefine as macros.
6279         * ira.c (default_target_ira, default_target_ira_int): New variables.
6280         (this_target_ira, this_target_ira_int): New conditional variables.
6281         (ira_reg_mode_hard_regset, ira_memory_move_cost)
6282         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
6283         (ira_class_subset_p): Delete.
6284         (no_unit_alloc_regs): Redefine as a macro.
6285         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
6286         (ira_class_hard_regs_num, ira_class_hard_reg_index)
6287         (ira_available_class_regs): Delete.
6288         (alloc_reg_class_subclasses): Redefine as a macro.
6289         (ira_reg_class_cover_size, ira_reg_class_cover)
6290         (ira_important_classes_num, ira_important_classes)
6291         (ira_important_class_nums, ira_class_translate): Delete.
6292         (cover_class_order): Document the variable's lifetime.
6293         (reorder_important_classes): Don't set ira_important_class_nums.
6294         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
6295         (ira_reg_class_super_classes, ira_reg_class_union)
6296         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
6297         Delete.
6298         (setup_reg_class_nregs): Don't set ira_max_regs.
6299         (prohibited_class_mode_regs): Delete.
6300         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
6301         (target_globals): Add ira and ira_int fields.
6302         (restore_target_globals): Copy the ira field to this_target_ira
6303         and the ira_int field to this_target_ira_int.
6304         * target-globals.c: Include ira-int.h.
6305         (default_target_globals): Initialize the ira and ira_int fields.
6306         (save_target_globals): Likewise.
6307
6308 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6309
6310         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
6311         * cfgloop.h (target_cfgloop): New structure.
6312         (default_target_cfgloop): Declare.
6313         (this_target_cfgloop): Declare as a variable or define as a macro.
6314         (target_avail_regs, target_clobbered_regs, target_res_regs)
6315         (target_reg_cost, target_spill_cost): Redefine as macros.
6316         * cfgloopanal.c (default_target_cfgloop): New variable.
6317         (this_target_cfgloop): New conditional variable.
6318         (target_avail_regs, target_clobbered_regs, target_res_regs)
6319         (target_reg_cost, target_spill_cost): Delete.
6320         * target-globals.h (this_target_cfgloop): Declare.
6321         (target_globals): Add a cfgloop field.
6322         (restore_target_globals): Copy the cfgloop field to
6323         this_target_cfgloop.
6324         * target-globals.c: Include cfgloop.h.
6325         (default_target_globals): Initialize the cfgloop field.
6326         (save_target_globals): Likewise.
6327
6328 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6329
6330         * regs.h (target_regs): Add x_direct_load, x_direct_store and
6331         x_float_extend_from_mem.
6332         (direct_load, direct_store, float_extend_from_mem): New macros.
6333         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
6334
6335 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6336
6337         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
6338         (target-globals.o): Depend on $(LIBFUNCS_H).
6339         * libfuncs.h: Include hashtab.h.
6340         (libfunc_entry): Moved from optabs.c.
6341         (target_libfuncs): New structure.
6342         (default_target_libfuncs): Declare.
6343         (this_target_libfuncs): Declare as a variable or define as a macro.
6344         (libfunc_table): Redefine as a macro.
6345         * optabs.c (default_target_libfuncs): New variable.
6346         (this_target_libfuncs): New conditional variable.
6347         (libfunc_table): Delete.
6348         (libfunc_entry): Moved to optabs.h.
6349         (libfunc_hash): Redefine as a macro.
6350         (hash_libfunc, eq_libfunc): Fix comments.
6351         (init_optabs): Use libfunc_hash to detect cases where the function
6352         has already been called.  Clear the hash table instead of
6353         recreating it.
6354         * target-globals.h (this_target_libfuncs): Declare.
6355         (target_globals): Add a libfuncs field.
6356         (restore_target_globals): Copy the libfuncs field to
6357         this_target_libfuncs.
6358         * target-globals.c: Include libfuncs.h.
6359         (default_target_globals): Initialize the libfuncs field.
6360         (save_target_globals): Likewise.
6361
6362 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6363
6364         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
6365         in all dependency lists.
6366
6367 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6368
6369         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
6370         * optabs.h (target_optabs): New structure.
6371         (default_target_optabs): Declare.
6372         (this_target_optabs): Declare as a variable or define as a macro.
6373         (optab_table, convert_optab_table, direct_optab_table): Redefine
6374         as macros.
6375         * optabs.c (default_target_optabs): New variable.
6376         (this_target_optabs): New conditional variable.
6377         (optab_table, convert_optab_table, direct_optab_table): Delete.
6378         * target-globals.h (this_target_optabs): Declare.
6379         (target_globals): Add a optabs field.
6380         (restore_target_globals): Copy the optabs field to
6381         this_target_optabs.
6382         * target-globals.c: Include expr.h and optabs.h.
6383         (default_target_globals): Initialize the optabs field.
6384         (save_target_globals): Likewise.
6385
6386 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6387
6388         * flags.h (target_flagstate): Add x_flag_excess_precision.
6389         (flag_excess_precision): Redefine as a macro.
6390         * toplev.c (flag_excess_precision): Delete.
6391
6392 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6393
6394         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
6395         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
6396         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
6397         (no_caller_save_reg_set): Redefine as a macro.
6398         * reload.h (target_reload): Add x_caller_save_initialized_p and
6399         x_regno_save_mode.
6400         (caller_save_initialized_p): Redefine as a macro.
6401         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
6402         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
6403         (regno_save_mode): Redefine as a macro.
6404
6405 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6406
6407         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
6408         * expmed.h: New file.
6409         * expmed.c (default_target_costs): New variable.
6410         (this_target_costs): New conditional variable.
6411         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
6412         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
6413         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
6414         * target-globals.h (this_target_expmed): Declare.
6415         (target_globals): Add a expmed field.
6416         (restore_target_globals): Copy the expmed field to
6417         this_target_expmed.
6418         * target-globals.c: Include expmed.h.
6419         (default_target_globals): Initialize the expmed field.
6420         (save_target_globals): Likewise.
6421
6422 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6423
6424         * Makefile.in (target-globals.o): Depend on reload.h.
6425         * reload.h (target_reload): New structure.
6426         (default_target_reload): Declare.
6427         (this_target_reload): Declare as a variable or define as a macro.
6428         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
6429         * reload1.c (default_target_reload): New variable
6430         (this_target_reload): New conditional variable.
6431         (indirect_symref_ok, double_reg_address_ok): Delete.
6432         (spill_indirect_levels): Redefine as a macro.
6433         * target-globals.h (this_target_reload): Declare.
6434         (target_globals): Add a reload field.
6435         (restore_target_globals): Copy the reload field to
6436         this_target_reload.
6437         * target-globals.c: Include hard-reg-set.h.
6438         (default_target_globals): Initialize the reload field.
6439         (save_target_globals): Likewise.
6440
6441 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6442
6443         * rtl.h (target_rtl): Add x_static_reg_base_value.
6444         * alias.c (static_reg_base_value): Redefine as a macro.
6445
6446 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6447
6448         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
6449         (GTFILES): Remove reginfo.c.
6450         * rtl.h (target_rtl): Add x_top_of_stack.
6451         (top_of_stack): New macro.
6452         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
6453         (top_of_stack): Delete.
6454
6455 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6456
6457         * regs.h (target_regs): Add x_hard_regs_of_mode,
6458         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
6459         x_may_move_out_cost and x_last_mode_for_init_move_cost.
6460         (have_regs_of_mode, contains_reg_of_mode, move_cost)
6461         (may_move_in_cost, may_move_out_cost): Redefine as macros.
6462         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
6463         (may_move_in_cost, may_move_out_cost): Delete.
6464         (last_mode_for_init_move_cost): Redefine as a macro.
6465
6466 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6467
6468         * hard-reg-set.h (target_hard_regs): New structure.
6469         (default_target_hard_regs): Declare.
6470         (this_target_hard_regs): Declare as a variable or define as a macro.
6471         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
6472         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
6473         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
6474         (reg_class_size, reg_class_subclasses, reg_class_subunion)
6475         (reg_class_superunion, reg_names): Redefine as macros.
6476         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
6477         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
6478         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
6479         (reg_class_contents, reg_class_size, reg_class_subclasses)
6480         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
6481         (default_target_hard_regs): New variable
6482         (this_target_hard_regs, initial_call_really_used_regs)
6483         (initial_reg_alloc_order): New conditional variables.
6484         (initial_reg_names): New variable.
6485         (init_reg_sets): Assert that initial_call_really_used_regs,
6486         initial_reg_alloc_order and initial_reg_names
6487         are all the same size as their variable counterparts.  Use them to
6488         initialize those counterparts.
6489         * target-globals.h (this_target_hard_regs): Declare.
6490         (target_globals): Add a hard_regs field.
6491         (restore_target_globals): Copy the hard_regs field to
6492         this_target_hard_regs.
6493         * target-globals.c: Include hard-reg-set.h.
6494         (default_target_globals): Initialize the hard_regs field.
6495         (save_target_globals): Likewise.
6496
6497 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6498
6499         * Makefile.in (target-globals.o): Depend on $(RTL_H).
6500         * rtl.h (target_rtl): New structure.
6501         (default_target_rtl): Declare.
6502         (this_target_rtl): Declare as a variable or define as a macro.
6503         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
6504         Redefine as macros.
6505         * emit-rtl.c (default_target_rtl): New variable.
6506         (this_target_rtl): New conditional variable.
6507         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
6508         (return_address_pointer_rtx): Delete.
6509         (initial_regno_reg_rtx): New macro.
6510         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
6511         (init_emit_regs): Likewise.
6512         * target-globals.h (this_target_rtl): Declare.
6513         (target_globals): Add a rtl field.
6514         (restore_target_globals): Copy the rtl field to this_target_rtl.
6515         * target-globals.c: Include rtl.h.
6516         (default_target_globals): Initialize the rtl field.
6517         (save_target_globals): Likewise.
6518
6519 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6520
6521         * Makefile.in (target-globals.o): Depend on $(REGS_H).
6522         * regs.h (target_reg_modes): New structure.
6523         (default_target_reg_modes): Declare.
6524         (this_target_reg_modes): Declare as a variable or define as a macro.
6525         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
6526         * reginfo.c (default_target_reg_modes): New variable.
6527         (this_target_reg_modes): New conditional variable.
6528         (hard_regno_nregs, reg_raw_mode): Delete.
6529         * target-globals.h (this_target_regs): Declare.
6530         (target_globals): Add a regs field.
6531         (restore_target_globals): Copy the regs field to this_target_regs.
6532         * target-globals.c: Include regs.h.
6533         (default_target_globals): Initialize the regs field.
6534         (save_target_globals): Likewise.
6535
6536 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
6537
6538         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
6539         * doc/tm.texi: Regenerate.
6540         * Makefile.in (OBJS-common): Add target-globals.o.
6541         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
6542         and target-globals.h.
6543         (target-globals.o): New rule.
6544         (GTFILES): Include $(srcdir)/target-globals.h.
6545         * defaults.h (SWITCHABLE_TARGET): Define.
6546         * gengtype.c (open_base_files): Add target-globals.h to the
6547         list of includes.
6548         * target-globals.h: New file.
6549         * target-globals.c: Likewise.
6550
6551         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
6552         * flags.h (target_flag_state): New structure.
6553         (default_target_flag_state): Declare.
6554         (this_target_flag_state): Declare as a variable or define as a macro.
6555         (align_loops_log): Redefine as a macro.
6556         (align_loops_max_skip, align_jumps_log): Likewise.
6557         (align_jumps_max_skip, align_labels_log): Likewise.
6558         (align_labels_max_skip, align_functions_log): Likewise.
6559         * toplev.c (default_target_flag_state): New variable.
6560         (this_target_flag_state): New conditional variable.
6561         (align_loops_log): Delete.
6562         (align_loops_max_skip, align_jumps_log): Likewise.
6563         (align_jumps_max_skip, align_labels_log): Likewise.
6564         (align_labels_max_skip, align_functions_log): Likewise.
6565         * target-globals.h (this_target_flag_state): Declare.
6566         (target_globals): Add a flag_state field.
6567         (restore_target_globals): Copy the flag_state field to
6568         this_target_flag_state.
6569         * target-globals.c: Include flags.h.
6570         (default_target_globals): Initialize the flag_state field.
6571         (save_target_globals): Likewise.
6572
6573 2010-07-12  Jie Zhang  <jie@codesourcery.com>
6574
6575         * postreload.c (reg_symbol_ref[]): New.
6576         (move2add_use_add2_insn): New.
6577         (move2add_use_add3_insn): New.
6578         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
6579         (move2add_note_store): Likewise.
6580
6581 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
6582
6583         PR rtl-optimization/44752
6584         * genautomata.c (main): Don't emit an empty file even if there
6585         is no automaton.
6586
6587 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6588
6589         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
6590         ix86_solaris_return_in_memory.
6591         * config/i386-protos.h: Reflect this.
6592         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
6593         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
6594         Move ...
6595         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
6596
6597 2010-07-12  Jie Zhang  <jie@codesourcery.com>
6598
6599         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
6600         align the stack when it's going to be saved.
6601
6602 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6603
6604         PR pch/14940
6605         * config/host-solaris.c (mmap_fixed): New function.
6606         (sol_gt_pch_get_address): Use it.
6607         (sol_gt_pch_use_address): Likewise.
6608
6609 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6610
6611         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
6612         pentiumpro on Solaris 8 and 9/x86.
6613         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
6614         Document SSE/SSE2 support.
6615         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
6616
6617 2010-07-12  Andi Kleen  <ak@linux.intel.com>
6618
6619         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
6620         instead of gcc_assert to print better error message for multiple
6621         prevailing defs.
6622
6623 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
6624
6625         * config/i386/i386.c (ix86_asm_output_function_label): Change format
6626         string placeholder from 0x%x to %#x.
6627         (ix86_code_end): Use putc to output '\n'.
6628         (ix86_print_operand) <case ';'>: Use putc to output ';'.
6629
6630 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
6631
6632         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
6633         in directive -export.
6634
6635 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
6636
6637         * reginfo.h (reg_classes_intersect_p): Change arguments type to
6638         reg_class_t.
6639         * rtl.h (reg_classes_intersect_p): Adjust prototype.
6640
6641         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
6642         Remove macros.
6643         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
6644         rs6000_memory_move_cost): Remove
6645         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
6646         TARGET_MEMORY_MOVE_COST): Define.
6647         (rs6000_register_move_cost): Make static. Change arguments type from
6648         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
6649         (rs6000_memory_move_cost): Make static. Change arguments type from
6650         'enum reg_class' to reg_class_t.
6651
6652 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
6653
6654         PR middle-end/42505
6655         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
6656         lookup code into....
6657         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
6658         new functions.
6659         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
6660         * cfgloopanal.c (target_clobbered_regs): Define.
6661         (init_set_costs): Initialize target_clobbered_regs.
6662         (estimate_reg_pressure_cost): Add call_p argument.  When true,
6663         adjust the number of available registers to exclude the
6664         call-clobbered registers.
6665         * cfgloop.h (target_clobbered_regs): Declare.
6666         (estimate_reg_pressure_cost): Adjust declaration.
6667         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
6668         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
6669         (determine_set_costs): Dump target_clobbered_regs.
6670         (loop_body_includes_call): New function.
6671         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
6672         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
6673         call_p flag through.
6674         (best_gain_for_invariant): Likewise.
6675         (find_invariants_to_move): Likewise.
6676         (move_single_loop_invariants): Likewise, using already-computed
6677         has_call field.
6678
6679 2010-07-10  Richard Guenther  <rguenther@suse.de>
6680             Joern Rennecke  <joern.rennecke@embecosm.com>
6681
6682         PR debug/44832
6683         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
6684         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
6685         unless they have DECL_IGNORED_P set.
6686
6687 2010-07-10  Richard Guenther  <rguenther@suse.de>
6688
6689         PR lto/44889
6690         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
6691         helper function.
6692         (gimple_types_compatible_p): Similar to pointed-to
6693         types allow and merge a mix of complete and incomplete aggregate.
6694         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
6695         (iterative_hash_gimple_type): Adjust for that.
6696
6697 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
6698
6699         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
6700
6701 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
6702
6703         PR objc/44140
6704         * config/darwin.c (output_objc_section_asm_op): Save and restore
6705         section when outputting ObjC section list.
6706
6707 2010-07-09  Jan Hubicka  <jh@suse.cz>
6708
6709         * lto-streamer-out.c (produce_symtab): Do not write alias
6710         cgraph/varpool nodes.
6711
6712 2010-07-09  Jan Hubicka  <jh@suse.cz>
6713
6714         * tree-inline.c (declare_return_variable): Fix ICE while
6715         inlining DECL_BY_VALUE function not in SSA form
6716
6717 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
6718
6719         PR tree-optimization/44576
6720         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
6721         New.  Pull out from is_loop_prefetching_profitable to implement
6722         the trip count to ahead ratio heuristic.
6723         (mem_ref_count_reasonable_p): New.  Pull out from
6724         is_loop_prefetching_profitable to implement the instruction to
6725         memory reference ratio heuristic.  Also consider not reasonable if
6726         the memory reference count is above a threshold (to avoid
6727         explosive compilation time.
6728         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
6729         is_loop_prefetching_profitable to implement the instruction to
6730         prefetch ratio heuristic.
6731         (is_loop_prefetching_profitable): Removed.
6732         (loop_prefetch_arrays): Distribute the cost analysis across the
6733         function to allow early exit of the prefetch analysis.
6734         is_loop_prefetching_profitable is splitted into three functions,
6735         with each one called as early as possible.
6736         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
6737         number of memory references in a loop is considered too many.
6738
6739 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
6740
6741         * reload.c (find_reloads): Don't clear badop if we have a winreg
6742         alternative, but not win, and the class only has fixed regs.
6743         * hard-reg-set.h (class_only_fixed_regs): Declare.
6744         * reginfo.c (class_only_fixed_regs): New array.
6745         (init_reg_sets_1): Initialize it.
6746         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
6747         discourage alternatives using the stack pointer.
6748
6749         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
6750
6751         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
6752
6753         * config/arm/arm.md (cbranchqi4): Fix array size.
6754         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
6755         calculating length.
6756
6757 2010-07-09  Richard Guenther  <rguenther@suse.de>
6758
6759         * gimple.c (struct type_fixup_s): New struct and VEC type.
6760         (gimple_register_type_fixups): New static global.
6761         (gimple_queue_type_fixup): New function.
6762         (gimple_types_compatible_p): Queue type fixups instead of
6763         applying them here.
6764         (gimple_register_type): Apply queued fixups for the
6765         canonical type.  Empty the type fixup queue.
6766
6767 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
6768
6769         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
6770         * configure: Regenerate.
6771         * config.in: Ditto.
6772
6773 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
6774             Denys Vlasenko  <dvlasenk@redhat.com>
6775             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
6776
6777         PR tree-optimization/28632
6778         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
6779         (extract_range_from_binary_expr): Further optimize
6780         BIT_AND_EXPR and BIT_IOR_EXPR.
6781
6782 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
6783
6784         * tree-if-conv.c (fold_or_predicates): New.
6785         (add_to_predicate_list): Call it.
6786
6787 2010-07-09  Richard Guenther  <rguenther@suse.de>
6788
6789         PR middle-end/44890
6790         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
6791         if base is a pointer.
6792         * tree-cfg.c (verify_expr): Update MEM_REF checking.
6793
6794 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
6795
6796         PR target/44877
6797         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
6798         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
6799         builtin mask for load/store builtins.
6800
6801 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
6802
6803         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
6804         for "lock addl".
6805         * configure: Regenerate.
6806         * config/i386/i386.c (ix86_print_operand) <case ';'>:
6807         Remove TARGET_MACHO.
6808
6809 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
6810
6811         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
6812         default ISA flags.
6813         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
6814
6815 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
6816
6817         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
6818
6819 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6820
6821         * config/picochip/picochip.md (commsTestPort): Emit more
6822         efficient sequence for tstport instruction.
6823
6824 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
6825
6826         * config/i386/i386.c (ix86_veclib_handler): Make static.
6827
6828 2010-07-09  Richard Guenther  <rguenther@suse.de>
6829
6830         PR tree-optimization/44852
6831         * tree-ssa-alias.c: Include toplev.h for exact_log2.
6832         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
6833         in MEM_REF.
6834         (indirect_refs_may_alias_p): Likewise.
6835         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
6836
6837 2010-07-09  Richard Guenther  <rguenther@suse.de>
6838
6839         PR tree-optimization/44882
6840         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
6841         sets do conflict.
6842         (vectorizable_load): Likewise.
6843
6844 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
6845
6846         PR target/40657
6847         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
6848         All callers changed.
6849         Handle the case when we're called for the epilogue.
6850         (thumb_unexpanded_epilogue): Use it.
6851         (thumb1_expand_epilogue): Likewise.
6852
6853 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
6854
6855         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
6856         both ranges are range_int_cst_p with non-negative minimum,
6857         try harder to derive smaller range.
6858
6859 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6860
6861         * genrecog.c: Include diagnostic-core.h before toplev.h.
6862         * genoutput.c: Likewise.
6863         * genextract.c: Likewise.
6864         * genautomata.c: Likewise.
6865         * genemit.c: Likewise.
6866         * genpeep.c: Likewise.
6867         * genattrtab.c: Likewise.
6868         * genconditions.c: Likewise.
6869         * genpreds.c: Likewise.
6870
6871 2010-07-08  Andi Kleen  <ak@linux.intel.com>
6872
6873         * lto-section-in.c (lto_section_name): Add missing comma.
6874
6875 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
6876
6877         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
6878         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
6879         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
6880         (ia64_override_options): Rename to...
6881         (ia64_option_override): ... this one. Make static.
6882
6883 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
6884
6885         PR middle-end/44843
6886         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
6887         pointed-to type of the offset in a MEM_REF to compute the alignment.
6888
6889 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
6890
6891         * final.c (final_scan_insn): Replace
6892         TARGET_UNWIND_INFO macro check by unwind_emit
6893         hook NULL check.
6894         * targhooks.c (default_unwind_emit): Removed.
6895         * targhooks.h (default_unwind_emit): Likewise.
6896         * target.def (unwind_emit): Set default value to NULL.
6897
6898         * config/i386/i386-protos.h (ix86_asm_output_function_label):
6899         New prototype.
6900         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
6901         for NULL fntype argument and allow 64-bit targets.
6902         (ix86_asm_output_function_label): New function.
6903         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
6904         (ix86_handle_fndecl_attribute): Likewise.
6905         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
6906         * doc/doc/tm.texi: Regenerated.
6907         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
6908         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
6909         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
6910         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
6911         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
6912         * config/elfos.h: Likewise.
6913         * config/i386/cygming.h: Likewise.
6914         * config/netbsd-aout.h: Likewise.
6915         * config/openbsd.h: Likewise.
6916         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
6917         by ix86_asm_output_function_label function call.
6918         * varasm.c (assemble_start_function): Use
6919         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
6920
6921 2010-07-08  Jan Hubicka  <jh@suse.cz>
6922
6923         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
6924         New function.
6925         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
6926         Declare.
6927         * ipa-cp.c (ipcp_estimate_growth): Use it.
6928         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
6929         Likewise.
6930
6931 2010-07-08  Jan Hubicka  <jh@suse.cz>
6932
6933         * tree-inline.c (declare_return_variable): Allocate annotation for new
6934         temporary.
6935
6936 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
6937
6938         PR tree-optimization/44710
6939         * tree-if-conv.c (parse_predicate): New.
6940         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
6941         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
6942
6943 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
6944
6945         * common.opt (ftree-loop-if-convert): New flag.
6946         * doc/invoke.texi (ftree-loop-if-convert): Documented.
6947         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
6948         when flag_tree_loop_if_convert is set.
6949
6950 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
6951
6952         * config/i386/i386.c: Use short syntax for function calls
6953         through function pointers.
6954         * config/i386/i386.md: Ditto.
6955
6956 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
6957
6958         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
6959
6960 2010-07-08  Richard Guenther  <rguenther@suse.de>
6961
6962         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
6963         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
6964
6965 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
6966
6967         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
6968         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
6969         (loc_list_from_tree): Likewise.
6970         (output_loc_operands): Handle outputting DW_OP_const[48]u
6971         with loc->dtprel set.
6972         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
6973
6974 2010-07-08  Jan Hubicka  <jh@suse.cz>
6975
6976         * ipa.c: Include pointer-set.h
6977         (cgraph_externally_visible_p): New attribute ALIASED;
6978         when in LTO, hidden symbols are local unless they are aliased.
6979         (function_and_variable_visibility): Compute aliased nodes;
6980         handle LTO and hidden symbol on functions and vars.
6981         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
6982         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
6983
6984 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
6985
6986         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
6987         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6988         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6989         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6990         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6991         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
6992         (ix86_gen_probe_stack_range): Likewise.
6993         (override_options): Set them.
6994         (ix86_target_stack_probe): New function.
6995         (ix86_compute_frame_layout): Force use of push instructions to
6996         save registers if stack checking with probes is enabled.
6997         (get_scratch_register_on_entry): New function.
6998         (release_scratch_register_on_entry): Likewise.
6999         (ix86_adjust_stack_and_probe): Likewise.
7000         (output_adjust_stack_and_probe): Likewise.
7001         (ix86_emit_probe_stack_range): Likewise.
7002         (output_probe_stack_range): Likewise.
7003         (ix86_expand_prologue): Emit stack checking code if static built-in
7004         stack checking is enabled.
7005         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
7006         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
7007         (output_adjust_stack_and_probe): Likewise.
7008         (output_probe_stack_range): Likewise.
7009         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
7010         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
7011         TARGET_STACK_PROBE.
7012         (allocate_stack_worker_64): Likewise.
7013         (allocate_stack): Likewise.
7014         (adjust_stack_and_probe): New insn.
7015         (probe_stack_range): Likewise.
7016
7017 2010-07-08  Richard Guenther  <rguenther@suse.de>
7018
7019         PR tree-optimization/44831
7020         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
7021         a MEM_REF preserving TBAA info of the original dereference.
7022         Dereference the original pointer if the address is not invariant.
7023         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
7024         at least one invariant address that we are going to dereference.
7025
7026 2010-07-08  Richard Guenther  <rguenther@suse.de>
7027
7028         PR tree-optimization/44861
7029         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
7030         information when building MEM_REFs.
7031         (vectorizable_load): Likewise.
7032         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
7033
7034 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7035
7036         * config/sol2-c.c: Do not include diagnostic-core.h.
7037
7038 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7039
7040         PR bootstrap/44768
7041         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
7042         with respect to current_function_decl. Pass decl of the function.
7043         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
7044         * ipa-inline.c (compute_inline_parameters): Pass decl to
7045         estimated_stack_frame_size.
7046
7047 2010-07-08  Richard Guenther  <rguenther@suse.de>
7048
7049         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
7050         New function.
7051         (valueize_refs): Call it.
7052
7053 2010-07-08  Richard Guenther  <rguenther@suse.de>
7054
7055         PR rtl-optimization/44838
7056         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
7057         SSA form do not use pointer equivalence.
7058
7059 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7060
7061         * dwarf2out.c (AT_linkage_name): Delete.
7062         (add_linkage_attr): New function.
7063         (add_linkage_name): Call it to emit the linkage attribute.
7064         (dwarf2out_finish): Likewise.
7065         (move_linkage_attr): Explicitly accept both attribute variants.
7066
7067 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7068
7069         * toplev.h: Do not include diagnostic-core.h.
7070         Include diagnostic-core.h in every file that includes toplev.h.
7071         * c-tree.h: Do not include toplev.h.
7072         * pretty-print.h: Update comment.
7073         * Makefile.in: Update dependencies.
7074         * alias.c: Include diagnostic-core.h in every file that includes
7075         toplev.h.
7076         * attribs.c: Likewise.
7077         * auto-inc-dec.c: Likewise.
7078         * bb-reorder.c: Likewise.
7079         * bt-load.c: Likewise.
7080         * caller-save.c: Likewise.
7081         * calls.c: Likewise.
7082         * cfg.c: Likewise.
7083         * cfganal.c: Likewise.
7084         * cfgbuild.c: Likewise.
7085         * cfgcleanup.c: Likewise.
7086         * cfghooks.c: Likewise.
7087         * cfgloop.c: Likewise.
7088         * combine.c: Likewise.
7089         * config/alpha/alpha.c: Likewise.
7090         * config/arc/arc.c: Likewise.
7091         * config/arm/arm.c: Likewise.
7092         * config/arm/pe.c: Likewise.
7093         * config/avr/avr.c: Likewise.
7094         * config/bfin/bfin.c: Likewise.
7095         * config/cris/cris.c: Likewise.
7096         * config/crx/crx.c: Likewise.
7097         * config/darwin-c.c: Likewise.
7098         * config/darwin.c: Likewise.
7099         * config/fr30/fr30.c: Likewise.
7100         * config/frv/frv.c: Likewise.
7101         * config/h8300/h8300.c: Likewise.
7102         * config/host-darwin.c: Likewise.
7103         * config/i386/i386.c: Likewise.
7104         * config/i386/netware.c: Likewise.
7105         * config/i386/nwld.c: Likewise.
7106         * config/i386/winnt-cxx.c: Likewise.
7107         * config/i386/winnt-stubs.c: Likewise.
7108         * config/i386/winnt.c: Likewise.
7109         * config/ia64/ia64-c.c: Likewise.
7110         * config/ia64/ia64.c: Likewise.
7111         * config/iq2000/iq2000.c: Likewise.
7112         * config/lm32/lm32.c: Likewise.
7113         * config/m32c/m32c-pragma.c: Likewise.
7114         * config/m32c/m32c.c: Likewise.
7115         * config/m32r/m32r.c: Likewise.
7116         * config/m68hc11/m68hc11.c: Likewise.
7117         * config/m68k/m68k.c: Likewise.
7118         * config/mcore/mcore.c: Likewise.
7119         * config/mep/mep-pragma.c: Likewise.
7120         * config/mep/mep.c: Likewise.
7121         * config/mmix/mmix.c: Likewise.
7122         * config/mn10300/mn10300.c: Likewise.
7123         * config/moxie/moxie.c: Likewise.
7124         * config/pa/pa.c: Likewise.
7125         * config/pdp11/pdp11.c: Likewise.
7126         * config/picochip/picochip.c: Likewise.
7127         * config/rs6000/rs6000-c.c: Likewise.
7128         * config/rs6000/rs6000.c: Likewise.
7129         * config/rx/rx.c: Likewise.
7130         * config/s390/s390.c: Likewise.
7131         * config/score/score.c: Likewise.
7132         * config/score/score3.c: Likewise.
7133         * config/score/score7.c: Likewise.
7134         * config/sh/sh.c: Likewise.
7135         * config/sh/symbian-base.c: Likewise.
7136         * config/sh/symbian-c.c: Likewise.
7137         * config/sh/symbian-cxx.c: Likewise.
7138         * config/sol2-c.c: Likewise.
7139         * config/sol2.c: Likewise.
7140         * config/sparc/sparc.c: Likewise.
7141         * config/spu/spu.c: Likewise.
7142         * config/stormy16/stormy16.c: Likewise.
7143         * config/v850/v850-c.c: Likewise.
7144         * config/v850/v850.c: Likewise.
7145         * config/vax/vax.c: Likewise.
7146         * config/vxworks.c: Likewise.
7147         * config/xtensa/xtensa.c: Likewise.
7148         * convert.c: Likewise.
7149         * cse.c: Likewise.
7150         * cselib.c: Likewise.
7151         * dbgcnt.c: Likewise.
7152         * dbxout.c: Likewise.
7153         * ddg.c: Likewise.
7154         * dominance.c: Likewise.
7155         * emit-rtl.c: Likewise.
7156         * explow.c: Likewise.
7157         * expmed.c: Likewise.
7158         * fixed-value.c: Likewise.
7159         * fold-const.c: Likewise.
7160         * fwprop.c: Likewise.
7161         * gcse.c: Likewise.
7162         * ggc-common.c: Likewise.
7163         * ggc-page.c: Likewise.
7164         * ggc-zone.c: Likewise.
7165         * gimple-low.c: Likewise.
7166         * gimplify.c: Likewise.
7167         * graph.c: Likewise.
7168         * haifa-sched.c: Likewise.
7169         * ifcvt.c: Likewise.
7170         * implicit-zee.c: Likewise.
7171         * integrate.c: Likewise.
7172         * ira-build.c: Likewise.
7173         * ira-color.c: Likewise.
7174         * ira-conflicts.c: Likewise.
7175         * ira-costs.c: Likewise.
7176         * ira-lives.c: Likewise.
7177         * ira.c: Likewise.
7178         * lists.c: Likewise.
7179         * loop-doloop.c: Likewise.
7180         * loop-iv.c: Likewise.
7181         * lto-opts.c: Likewise.
7182         * lto-symtab.c: Likewise.
7183         * main.c: Likewise.
7184         * modulo-sched.c: Likewise.
7185         * optabs.c: Likewise.
7186         * params.c: Likewise.
7187         * plugin.c: Likewise.
7188         * postreload-gcse.c: Likewise.
7189         * postreload.c: Likewise.
7190         * predict.c: Likewise.
7191         * profile.c: Likewise.
7192         * real.c: Likewise.
7193         * regcprop.c: Likewise.
7194         * reginfo.c: Likewise.
7195         * regmove.c: Likewise.
7196         * reorg.c: Likewise.
7197         * resource.c: Likewise.
7198         * rtl.c: Likewise.
7199         * rtlanal.c: Likewise.
7200         * sched-deps.c: Likewise.
7201         * sched-ebb.c: Likewise.
7202         * sched-rgn.c: Likewise.
7203         * sdbout.c: Likewise.
7204         * sel-sched-dump.c: Likewise.
7205         * sel-sched-ir.c: Likewise.
7206         * simplify-rtx.c: Likewise.
7207         * stmt.c: Likewise.
7208         * stor-layout.c: Likewise.
7209         * store-motion.c: Likewise.
7210         * targhooks.c: Likewise.
7211         * tree-cfg.c: Likewise.
7212         * tree-cfgcleanup.c: Likewise.
7213         * tree-dump.c: Likewise.
7214         * tree-eh.c: Likewise.
7215         * tree-inline.c: Likewise.
7216         * tree-nomudflap.c: Likewise.
7217         * tree-object-size.c: Likewise.
7218         * tree-optimize.c: Likewise.
7219         * tree-outof-ssa.c: Likewise.
7220         * tree-phinodes.c: Likewise.
7221         * tree-profile.c: Likewise.
7222         * tree-ssa-ccp.c: Likewise.
7223         * tree-ssa-coalesce.c: Likewise.
7224         * tree-ssa-live.c: Likewise.
7225         * tree-ssa-loop-niter.c: Likewise.
7226         * tree-ssa-loop-prefetch.c: Likewise.
7227         * tree-ssa-loop.c: Likewise.
7228         * tree-ssa-structalias.c: Likewise.
7229         * tree-ssa-uninit.c: Likewise.
7230         * tree-ssa.c: Likewise.
7231         * tree-vect-data-refs.c: Likewise.
7232         * tree-vect-loop-manip.c: Likewise.
7233         * tree-vect-loop.c: Likewise.
7234         * tree-vect-patterns.c: Likewise.
7235         * tree-vect-stmts.c: Likewise.
7236         * tree-vrp.c: Likewise.
7237         * varasm.c: Likewise.
7238         * vec.c: Likewise.
7239         * web.c: Likewise.
7240         * xcoffout.c: Likewise.
7241
7242 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
7243
7244         * gengtype.c (write_field_root): New function.
7245         (write_root): Use it.
7246
7247 2010-07-07  Wei Guozhi  <carrot@google.com>
7248
7249         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
7250         of lowest bits to lshift/compare): Add a missing line.
7251
7252 2010-07-07  Wei Guozhi  <carrot@google.com>
7253
7254         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
7255         of lowest bits to lshift/compare): New.
7256
7257 2010-07-07  Tom Tromey  <tromey@redhat.com>
7258
7259         * doc/tm.texi: Update.
7260         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
7261         Add @hook.
7262         * target.def (want_debug_pub_sections): New hook.
7263         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
7264         * dwarf2out.c (add_pubname_string): Check
7265         targetm.want_debug_pub_sections.
7266         (add_pubname): Likewise.
7267         (add_pubtype): Likewise.
7268
7269 2010-07-07  Jie Zhang  <jie@codesourcery.com>
7270
7271         * genautomata.c (output_automata_list_min_issue_delay_code):
7272         Correctly decompress min_issue_delay.
7273
7274 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7275
7276         PR rtl-optimization/44404
7277         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
7278         possible, use reg_overlap_mentioned_p instead.
7279
7280 2010-07-07  Duncan Sands  <baldrick@free.fr>
7281
7282         PR middle-end/41355
7283         * tree.c (build_function_type_skip_args): Copy the original type using
7284         build_distinct_type_copy rather than copy_node.
7285
7286 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
7287
7288         PR target/44850
7289         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
7290         revision 161876.
7291         (ix86_expand_prologue): Likewise.
7292         (ix86_handle_fndecl_attribute): Likewise.
7293         (ix86_asm_declare_function_name): Likewise.
7294         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7295         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7296         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
7297         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
7298         * doc/extend.texi: Likewise.
7299
7300 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
7301
7302         PR target/44844
7303         * config/i386/i386.md (rdrand<mode>): Changed to expand to
7304         retry if the carry flag isn't valid.
7305         (rdrand<mode>_1): New.
7306
7307 2010-07-07  Richard Guenther  <rguenther@suse.de>
7308
7309         PR middle-end/44790
7310         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
7311         for expanding the constant offset for MEM_REFs.
7312
7313 2010-07-07  Richard Guenther  <rguenther@suse.de>
7314
7315         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
7316         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
7317         * gimple.h (is_gimple_operand): Remove.
7318         * gimple.c (is_gimple_operand): Likewise.
7319         (walk_gimple_op): Fix wi->val_only setting for calls.
7320         * tree-cfg.c (verify_gimple_call): Fix argument validation.
7321         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
7322         invalid gimple calls.
7323
7324 2010-07-06  Jan Hubicka  <jh@suse.cz>
7325
7326         * lto-cgraph.c (output_cgraph): Add missing declaration.
7327
7328 2010-07-06  Jan Hubicka  <jh@suse.cz>
7329
7330         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
7331         partition.
7332
7333 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
7334
7335         * doc/gimple.texi (GIMPLE_DEBUG): Document.
7336         * doc/rtl.texi (Debug Information): New node.
7337         (NOTE_INSN_VAR_LOCATION): Document.
7338         (debug_insn): Likewise.
7339         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
7340
7341 2010-07-07  Jan Hubicka  <jh@suse.cz>
7342
7343         With parts by Richard Guenther.
7344
7345         PR middle-end/44813
7346         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
7347         for functions passed by reference.
7348         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
7349         in memory when passed by reference.
7350         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
7351         beggining.
7352         * ipa-split.c (split_function): Cleanup way return value is passed;
7353         handle SSA DECL_BY_REFERENCE retvals.
7354         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
7355         DECL_BY_REFERENCE is set.
7356         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
7357         find_what_p_points_to): Handle RESULT_DECL.
7358         * tree-inline.c (declare_return_variable): Get new entry_block argument;
7359         when passing by reference ensure that RESULT_DECL is gimple_val.
7360         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
7361         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
7362
7363 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7364
7365         PR rtl-optimization/44787
7366         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
7367         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
7368
7369 2010-07-06  Jan Hubicka  <jh@suse.cz>
7370
7371         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
7372         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
7373         with body can prevail.
7374         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
7375         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
7376         * cgraph.c (cgraph_get_node_or_alias): New function.
7377         * cgraph.h (cgraph_get_node_or_alias): Declare.
7378
7379 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
7380
7381         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
7382         support.
7383         (ix86_expand_prologue): Likewise.
7384         (ix86_handle_fndecl_attribute): Likewise.
7385         (ix86_asm_declare_function_name): New function for
7386         ASM_DECLARE_FUNCTION_NAME.
7387         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
7388         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
7389         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
7390         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
7391         * doc/extend.texi: Adjust documentation about ms_hook_prologue
7392         attribute.
7393
7394 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
7395
7396         * config/i386/i386.md (immediate_operand): New mode attribute.
7397
7398         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
7399         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
7400         using P mode iterator.
7401         (pro_epilogue_adjust_stack_di_2): Rename from
7402         pro_epilogue_adjust_stack_rex64_2.
7403
7404         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
7405
7406 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
7407
7408         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
7409         through gen_mov_insv_1 function pointer.
7410         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
7411         gen_truncxf<mode>2 through gen_truncxf function pointer.
7412         (remainder<mode>3): Ditto.
7413         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
7414         (allocate_stack): Call gen_allocate_stack_worker_64 or
7415         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
7416         function pointer.
7417         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
7418         function pointer.
7419
7420 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
7421
7422         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
7423         operand constraint instead of <r><i>m.
7424
7425 2010-07-06  Richard Guenther  <rguenther@suse.de>
7426
7427         PR middle-end/44828
7428         * convert.c (convert_to_integer): Watch out for overflowing
7429         MULT_EXPR as well.
7430
7431 2010-07-05  Jan Hubicka  <jh@suse.cz>
7432
7433         * lto-streamer.c (write_symbol_vec): Rename to ...
7434         (write_symbol) ... this one; write only symbol given and when
7435         present in cache. Sanity check that what is defined is present
7436         in cgraph/varpool with body/finalized decl.
7437         (write_symbols_of_kind): Remove.
7438         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
7439         pairs to produce symtab.
7440         (produce_asm_for_decls): Update call of produce_symtab; don't do so
7441         when doing WPA streaming.
7442
7443 2010-07-05  Jan Hubicka  <jh@suse.cz>
7444
7445         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
7446         function is still available to fold into.
7447
7448 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
7449
7450         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
7451         * function.h (struct_function): Change type of local_decls field
7452         to a VEC.
7453         (add_local_decl): New function.
7454         (FOR_EACH_LOCAL_DECL): New macro.
7455         * cfgexpand.c (init_vars_expansion): Adjust for new type of
7456         cfun->local_decls.
7457         (estimated_stack_frame_size): Likewise.
7458         (expand_used_vars): Likewise.
7459         * cgraphbuild.c (build_cgraph_edges): Likewise.
7460         * function.c (instantiate_decls_1): Likewise.
7461         * ipa-struct-reorg.c (build_data_structure): Likewise.
7462         * ipa-type-escape.c (analyze_function): Likewise.
7463         * lto-streamer-in.c (input_function): Likewise.
7464         * lto-streamer-out.c (output_function): Likewise.
7465         * tree-ssa-live.c (remove_unused_locals): Likewise.
7466         * tree.c (free_lang_data_in_decl): Likewise.
7467         (find_decls_types_in_node): Likewise.
7468         * omp-low.c (remove_exit_barrier): Likewise.
7469         (expand_omp_taskreg): Likewise.
7470         (list2chain): Rename to...
7471         (vec2chain): ...this.  Adjust.
7472         * cgraphunit.c (assemble_thunk): Call add_local_decl.
7473         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
7474         * gimple-low.c (record_vars_into): Likewise.
7475         * tree-inline.c (remap_decls): Likewise.
7476         (declare_return_variable): Likewise.
7477         (declare_inline_vars): Likewise.
7478         (copy_forbidden): Adjust for new type of cfun->local_decls.
7479         (add_local_variables): New function.
7480         (expand_call_inline): Call it.
7481         (tree_function_versioning): Likewise.
7482
7483 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
7484
7485         AVX Programming Reference (June, 2010)
7486         * config/i386/cpuid.h (bit_F16C): New.
7487         (bit_RDRND): Likewise.
7488         (bit_FSGSBASE): Likewise.
7489
7490         * config/i386/i386-builtin-types.def: Add
7491         "DEF_FUNCTION_TYPE (UINT16)", function types for
7492         float16 <-> float conversions and
7493         "DEF_FUNCTION_TYPE (VOID, UINT64)".
7494
7495         * config/i386/i386-c.c (ix86_target_macros_internal): Support
7496         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
7497         OPTION_MASK_ISA_F16C.
7498
7499         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
7500         (OPTION_MASK_ISA_RDRND_SET): Likewise.
7501         (OPTION_MASK_ISA_F16C_SET): Likewise.
7502         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
7503         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
7504         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
7505         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
7506         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
7507         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
7508         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
7509         (override_options): Handle them.
7510         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
7511         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
7512         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
7513         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
7514         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
7515         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
7516         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
7517         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
7518         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
7519         (bdesc_args): Likewise.
7520         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
7521         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
7522         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
7523         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
7524         Handle non-memory store.
7525
7526         * config/i386/i386.h (TARGET_FSGSBASE): New.
7527         (TARGET_RDRND): Likewise.
7528         (TARGET_F12C): Likewise.
7529
7530         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
7531         (UNSPEC_VCVTPS2PH): Likewise.
7532         (UNSPECV_RDFSBASE): Likewise.
7533         (UNSPECV_RDGSBASE): Likewise.
7534         (UNSPECV_WRFSBASE): Likewise.
7535         (UNSPECV_WRGSBASE): Likewise.
7536         (UNSPECV_RDRAND): Likewise.
7537         (rdfsbase<mode>): Likewise.
7538         (rdgsbase<mode>): Likewise.
7539         (wrfsbase<mode>): Likewise.
7540         (wrgsbase<mode>): Likewise.
7541         (rdrand<mode>): Likewise.
7542
7543         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
7544
7545         * config/i386/immintrin.h (_rdrand_u16): New.
7546         (_rdrand_u32): Likewise.
7547         (_readfsbase_u32): Likewise.
7548         (_readfsbase_u64): Likewise.
7549         (_readgsbase_u32): Likewise.
7550         (_readgsbase_u64): Likewise.
7551         (_writefsbase_u32): Likewise.
7552         (_writefsbase_u64): Likewise.
7553         (_writegsbase_u32): Likewise.
7554         (_writegsbase_u64): Likewise.
7555         (_rdrand_u64): Likewise.
7556         (_cvtsh_ss): Likewise.
7557         (_mm_cvtph_ps): Likewise.
7558         (_mm256_cvtph_ps): Likewise.
7559         (_cvtss_sh): Likewise.
7560         (_mm_cvtps_ph): Likewise.
7561         (_mm256_cvtps_ph): Likewise.
7562
7563         * config/i386/sse.md (vcvtph2ps): New.
7564         (*vcvtph2ps_load): Likewise.
7565         (vcvtph2ps256): Likewise.
7566         (vcvtps2ph): Likewise.
7567         (*vcvtps2ph): Likewise.
7568         (*vcvtps2ph_store): Likewise.
7569         (vcvtps2ph256): Likewise.
7570
7571         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
7572
7573         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
7574
7575 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
7576
7577         PR bootstrap/44512
7578         * genenums.c (main): Output include of insn-constants.h
7579         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
7580
7581 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
7582
7583         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
7584         (override_options): Initialize it.
7585         (ix86_expand_prologue): Use it.
7586
7587 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
7588
7589         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
7590
7591 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
7592
7593         * double-int.h (fit_double_type): Remove declaration.
7594         * double-int.c (fit_double_type): Remove function.
7595         * tree.h (int_fits_type_p): Adjust prototype.
7596         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
7597         instead of fit_double_type.
7598         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
7599         instead of fit_double_type and build_int_cst_wide.
7600         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
7601         instead of fit_double_type and build_int_cst_wide.
7602         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
7603         of fit_double_type.
7604
7605 2010-07-05  Jan Hubicka  <jh@suse.cz>
7606
7607         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
7608         in_other_partition.
7609         * lto-cgraph.c (referenced_from_other_partition_p,
7610         reachable_from_other_partition_p): Use in_other_partition flags.
7611         (output_node, output_varpool_node): COMDAT nodes always have private
7612         copies and thus are never used from other partition.
7613
7614 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
7615
7616         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
7617         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
7618         * config/ia64/ia64.c Include reload.h.
7619         (ia64_memory_move_cost): New function.
7620         (TARGET_MEMORY_MOVE_COST): Define.
7621         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
7622         memory_move_cost.
7623
7624 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
7625
7626         PR middle-end/42505
7627         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
7628         comments about cost model.
7629         (try_add_cand_for):  Add second strategy for choosing initial set
7630         based on original IVs, controlled by ORIGINALP argument.
7631         (get_initial_solution): Add ORIGINALP argument.
7632         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
7633         (find_optimal_iv_set): Try two different strategies for choosing
7634         the IV set, and return the one with lower cost.
7635
7636 2010-07-05  Richard Guenther  <rguenther@suse.de>
7637
7638         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
7639
7640 2010-07-05  Richard Guenther  <rguenther@suse.de>
7641
7642         * tree.c (reference_alias_ptr_type): New function.
7643         * tree.h (reference_alias_ptr_type): Declare.
7644         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
7645         allow non-TARGET_MEM_REF new refs.
7646         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
7647         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
7648         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
7649         (create_mem_ref): Get alias pointer type.  Adjust calls to
7650         create_mem_ref_raw.
7651         (maybe_fold_tmr): Likewise.
7652         * tree-flow.h (create_mem_ref): Adjust prototype.
7653
7654 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
7655
7656         PR c++/44808
7657         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
7658         *from_p is VAR_DECL.
7659
7660 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
7661
7662         * tree.h (build_call_list): Remove.
7663         * tree.c (build_call_list): Remove.
7664
7665 2010-07-05  Richard Guenther  <rguenther@suse.de>
7666
7667         * double-int.h (double_int_sub): Declare.
7668         * double-int.c (double_int_sub): New function.
7669         * dwarf2out.c (field_byte_offset): Use it.
7670         * fixed-value.c (do_fixed_add): Likewise.
7671         (do_fixed_multiply): Likewise.
7672         (do_fixed_divide): Likewise.
7673         * tree-predcom.c (add_ref_to_chain): Likewise.
7674         (determine_roots_comp): Likewise.
7675         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
7676
7677 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
7678
7679         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
7680         implementations.
7681
7682 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
7683
7684         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
7685         * arm-modes.def (CC_NOTB): Don't define.
7686         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
7687         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
7688         (LTUGEU): New code_iterator.
7689         (cnb, optab): New corresponding code_attrs.
7690         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
7691         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
7692         using LTUGEU.
7693         (addsi3_carryin_shift_<optab>): Likewise.
7694         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
7695         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
7696         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
7697         (subsi3_compare): Renamed from subsi3_compare0_c.
7698         Change CC_NOTB to CC.
7699         (arm_subsi3_insn): Allow constants for operand 0.
7700         (compare_scc peephole for eq case): New.
7701         (compare_scc splitters): Change CC_NOTB to CC.
7702
7703 2010-07-05  Richard Guenther  <rguenther@suse.de>
7704
7705         * tree-ssa-loop-im.c (for_each_index): Do not handle
7706         ALIGN_INDIRECT_REF.
7707         (gen_lsm_tmp_name): Likewise.
7708         * tree-dump.c (dequeue_and_dump): Likewise.
7709         * tree-pretty-print.c (dump_generic_node): Likewise.
7710         (op_code_prio): Likewise.
7711         (op_symbol_code): Likewise.
7712         * tree.c (staticp): Likewise.
7713         (build1_stat): Likewise.
7714         * tree.h (INDIRECT_REF_P): Likewise.
7715         * fold-const.c (maybe_lvalue_p): Likewise.
7716         (operand_equal_p): Likewise.
7717         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7718         (ao_ref_init_from_vn_reference): Likewise.
7719         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
7720         (find_interesting_uses_address): Likewise.
7721         * dwarf2out.c (loc_list_from_tree): Likewise.
7722         * gimplify.c (gimplify_expr): Likewise.
7723         * tree-eh.c (tree_could_trap_p): Likewise.
7724         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7725         * cfgexpand.c (expand_debug_expr): Likewise.
7726         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
7727         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
7728         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
7729         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
7730         * tree-ssa-operands.c (get_expr_operands): Likewise.
7731         * expr.c (safe_from_p): Likewise.
7732         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
7733         * tree-vect-data-refs.c (vect_setup_realignment): Build
7734         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
7735         * tree-vect-stmts.c (vectorizable_load): Likewise.
7736         * tree.def (ALIGN_INDIRECT_REF): Remove.
7737
7738 2010-07-05  Richard Guenther  <rguenther@suse.de>
7739
7740         PR tree-optimization/44784
7741         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
7742         for inserted stmts.
7743         (find_or_generate_expression): Fix SCCVN insertion check.
7744
7745 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
7746
7747         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
7748         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
7749         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
7750         directives.
7751
7752 2010-07-05  Ira Rosen  <irar@il.ibm.com>
7753
7754         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
7755         statements that are not vectorized.
7756         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
7757         in INSIDE_COST.
7758
7759 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
7760
7761         PR bootstrap/44820
7762         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
7763
7764 2010-07-05  Richard Guenther  <rguenther@suse.de>
7765
7766         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
7767         RESULT_DECLs properly.
7768
7769 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
7770
7771         PR rtl-optimization/44695
7772         * config/i386/i386.md (extract_code): Removed.
7773         (<u>divmodqi4): Likewise.
7774         (divmodqi4): New.
7775         (udivmodqi4): Likewise.
7776         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
7777         (udivmodhiqi3): Likewise.
7778
7779 2010-07-04  Jan Hubicka  <jh@suse.cz>
7780
7781         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
7782
7783 2010-07-04  Jan Hubicka  <jh@suse.cz>
7784
7785         * cgraphunit.c (init_cgraph): Only initialize dump file if it
7786         is not already initialized.
7787
7788 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
7789
7790         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
7791         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
7792         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
7793         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
7794         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
7795         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
7796         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
7797         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
7798         (sync_new_nand_optab): Redefine as macros.
7799         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
7800         Delete.
7801         (direct_optab_index): New enum.
7802         (direct_optab_d): New structure.
7803         (direct_optab): New typedef.
7804         (direct_optab_table): Declare.
7805         (direct_optab_handler, set_direct_optab_handler): New functions.
7806         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
7807         (sync_lock_release_optab): New macros.
7808         * optabs.c (direct_optab_table): New variable.
7809         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
7810         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
7811         cmpstr_optab and cmpstrn_optab.
7812         (emit_conditional_move): Likewise for movcc_optab.
7813         (can_conditionally_move_p): Likewise for movcc_gen_code.
7814         (init_insn_codes): Clear direct_optab_table.
7815         (init_optabs): Don't initialize the new "direct optabs" here.
7816         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
7817         vcond_gen_code.
7818         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
7819         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
7820         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
7821         (expand_sync_operation): Likewise other sync_*_optabs.
7822         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
7823         to sync_compare_and_swap_optab.
7824         (expand_sync_lock_test_and_set): Use direct_optab_handler for
7825         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
7826         to the names of both.
7827         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
7828         cmpstr_optab and cmpstrn_optab.
7829         (expand_builtin_lock_release): Likewise sync_lock_release.
7830         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
7831         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
7832         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
7833         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
7834         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
7835         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
7836         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
7837         (sync_lock_test_and_set, sync_lock_release): Delete.
7838         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
7839         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
7840         * genopinit.c (optabs): Use set_direct_optab_handler for the new
7841         macro optabs.
7842         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
7843         the "optab" local variable.  Use direct_optab_handler for optab and
7844         sync_compare_and_swap_optab.
7845         * reload1.c (reload_in_optab, reload_out_optab): Delete.
7846         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
7847         reload_in_optab and reload_out_optab.
7848         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
7849         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
7850         * config/pa/pa.c (pa_secondary_reload): Likewise.
7851         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
7852         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
7853         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
7854         (VMSupportsCS8_builtin): Likewise.
7855
7856 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
7857
7858         * optabs.h (optab_handlers): Change type of insn_code to int.
7859         (optab_handler, set_optab_handler, convert_optab_handler)
7860         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
7861         CODE_FOR_nothing".
7862         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
7863         (init_insn_codes): Zero both the above arrays.
7864         (init_optabs): Never call init_insn_codes first time around.
7865
7866 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
7867
7868         * optabs.h (optab_handler, convert_optab_handler): Turn into
7869         inline functions that return an insn code.
7870         (set_optab_handler, set_convert_optab_handler): New functions.
7871         * builtins.c: Replace optab_handler(X)->insn_code with
7872         optab_handler or set_optab_handler thoughout.  Likewise
7873         convert_optab_handler(X)->insn_code with convert_optab_handler
7874         and set_convert_optab_handler.
7875         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
7876         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
7877         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
7878         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
7879         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
7880         config/spu/spu.c: Likewise.
7881
7882 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
7883
7884         PR target/44531
7885         * config.gcc (sh*-*-*): Use regular expressions instead of
7886         the 'i' modifier for sed substitutions.
7887
7888 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
7889
7890         * gimple.c (gimple_body): Comments added.
7891
7892 2010-07-04  Richard Guenther  <rguenther@suse.de>
7893
7894         PR middle-end/44809
7895         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
7896         of an INDIRECT_REF.
7897
7898 2010-07-04  Richard Guenther  <rguenther@suse.de>
7899
7900         PR tree-optimization/44479
7901         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
7902         extra SSA name copy statements which preserves points-to
7903         information.
7904         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
7905         Copy points-to information for all pointers.  Properly handle
7906         MEM_REFs.
7907         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
7908         copy statements.
7909         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
7910         dependency.
7911
7912 2010-07-04  Richard Guenther  <rguenther@suse.de>
7913
7914         PR middle-end/44785
7915         * tree-inline.c (initialize_inlined_parameters): Do not
7916         re-use pointer-map slot over remap_type call.
7917
7918 2010-07-04  Richard Guenther  <rguenther@suse.de>
7919
7920         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
7921
7922 2010-07-04  Richard Guenther  <rguenther@suse.de>
7923
7924         PR tree-optimization/44656
7925         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
7926         again after value-replacing in the defintions lhs.
7927
7928 2010-07-04  Ira Rosen  <irar@il.ibm.com>
7929             Revital Eres  <eres@il.ibm.com>
7930
7931         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
7932         Document new arguments.
7933         * doc/tm.texi: Regenerate.
7934         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
7935         Handle unaligned store.
7936         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
7937         * target.def (builtin_vectorization_cost): Add new arguments.
7938         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
7939         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
7940         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
7941         (vect_vfa_segment_size): Fix indentation.
7942         * tree-vectorizer.h (struct _vect_peel_info): New.
7943         (struct _vect_peel_extended_info): New.
7944         (struct _loop_vec_info): Add new field for peeling hash table and a
7945         macro for its access.
7946         (VECT_MAX_COST): Define.
7947         (vect_get_load_cost): Declare.
7948         (vect_get_store_cost, vect_get_known_peeling_cost,
7949         vect_get_single_scalar_iteraion_cost): Likewise.
7950         (vect_supportable_dr_alignment): Add new argument.
7951         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
7952         field.
7953         (destroy_loop_vec_info): Free peeling hash table.
7954         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
7955         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
7956         vect_analyze_slp. Fix indentation.
7957         (vect_get_single_scalar_iteraion_cost): New function.
7958         (vect_get_known_peeling_cost): Likewise.
7959         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
7960         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
7961         statement. Move outside cost calculation inside unknown peeling case.
7962         Call vect_get_known_peeling_cost for known amount of peeling.
7963         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
7964         reference to the print message of forced alignment.
7965         (vect_verify_datarefs_alignment): Update call to
7966         vect_supportable_dr_alignment.
7967         (vect_get_data_access_cost): New function.
7968         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
7969         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
7970         vect_peeling_hash_choose_best_peeling): Likewise.
7971         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
7972         to store all the accesses in the loop and find best possible access to
7973         align using peeling for known alignment case. For unknown alignment
7974         check if stores are preferred or if peeling is worthy.
7975         (vect_find_same_alignment_drs): Analyze pairs of loads too.
7976         (vect_supportable_dr_alignment): Add new argument and check aligned
7977         accesses according to it.
7978         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
7979         (cost_for_stmt): Call vect_get_stmt_cost.
7980         (vect_model_simple_cost): Likewise.
7981         (vect_model_store_cost): Call vect_get_stmt_cost. Call
7982         vect_get_store_cost to calculate the cost of the statement.
7983         (vect_get_store_cost): New function.
7984         (vect_model_load_cost): Call vect_get_stmt_cost. Call
7985         vect_get_load_cost to calculate the cost of the statement.
7986         (vect_get_load_cost): New function.
7987         (vectorizable_store): Update call to vect_supportable_dr_alignment.
7988         (vectorizable_load): Likewise.
7989         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
7990         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
7991         arguments. Handle unaligned store.
7992         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
7993         (rs6000_builtin_support_vector_misalignment): Return true for word and
7994         double word alignments for VSX.
7995         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
7996         vect_supportable_dr_alignment and builtin_vectorization_cost.
7997
7998 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7999
8000         PR target/44597
8001         * config/pa/predicates.md (prefetch_cc_operand): Remove.
8002         (prefetch_nocc_operand): Likewise.
8003         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
8004         (prefetch_20): New insn.
8005         (prefetch_cc): Remove.
8006         (prefetch_nocc): Likewise.
8007
8008 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8009
8010         * expr.c (vector_mode_valid_p): Move to c-common.c.
8011         * expr.h (vector_mode_valid_p): Do not declare here.
8012         * system.h: Poison GCC_EXPR_H in front-ends.
8013         * Makefile.in: Update dependencies.
8014
8015 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8016
8017         PR target/44705
8018         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
8019
8020 2010-07-03  Jan Hubicka  <jh@suse.cz>
8021
8022         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
8023         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
8024         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
8025         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
8026         Likewise.
8027
8028         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
8029         Update timevars.V
8030         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
8031         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
8032         TV_IPA_LTO_DECL_OUT): New.
8033         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
8034
8035 2010-07-03  Jan Hubicka  <jh@suse.cz>
8036
8037         * ipa-inline.c (update_edge_key): Break out from ...
8038         update_callers_keys): ... here;
8039         (update_callee_keys): Update only the edges from caller to callee.
8040         (update_all_calle_keys): Do what update_calle_keys did.
8041         (decide_inlining_of_small_functions): Avoid recomputing of all
8042         callees when badness increase.
8043
8044 2010-07-03  Jie Zhang  <jie@codesourcery.com>
8045
8046         * config/arm/arm.c (arm_attr_length_move_neon): New.
8047         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
8048         * config/arm/neon.md (define_mode_attr V_slen): Remove.
8049         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
8050         to compute length attribute.
8051
8052 2010-07-03  Jie Zhang  <jie@codesourcery.com>
8053
8054         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
8055         as predicate for operand 1 and remove its constraint.
8056         * config/arm/predicates.md (vfp_register_operand): New.
8057         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
8058         (*push_fp_multi): Likewise.
8059
8060 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
8061
8062         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
8063
8064 2010-07-03  Jan Hubicka  <jh@suse.cz>
8065
8066         * config/i386/i386.c (override_options): Revert accidental commit.
8067
8068 2010-07-02  Le-Chun Wu  <lcwu@google.com>
8069
8070         PR c++/44128
8071         * doc/invoke.texi: Update documentation of -Wshadow.
8072
8073 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
8074             Julian Brown  <julian@codesourcery.com>
8075             Sandra Loosemore <sandra@codesourcery.com>
8076
8077         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
8078         comparisons.  Adjust to take both operands.
8079         (arm_select_cc_mode): Handle DImode comparisons.
8080         (arm_gen_compare_reg): Generate a scratch register for DImode
8081         comparisons which require one.  Use xor for Thumb equality checks.
8082         (arm_const_double_by_immediates): New.
8083         (arm_print_operand): Allow 'Q' and 'R' for constants.
8084         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
8085         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
8086         arm_canonicalize_comparison.
8087         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
8088         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
8089         prototype.
8090         (arm_const_double_by_immediates): Declare.
8091         * config/arm/constraints.md (Di): New constraint.
8092         * config/arm/predicates.md (arm_immediate_di_operand)
8093         (arm_di_operand, cmpdi_operand): New.
8094         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
8095         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
8096         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
8097         (cstoredi4): Handle non-Cirrus also.
8098
8099 2010-07-02  Julian Brown  <julian@codesourcery.com>
8100             Sandra Loosemore <sandra@codesourcery.com>
8101
8102         PR target/43703
8103         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
8104         (smax<mode>3): Disable for NEON float modes when
8105         flag_unsafe_math_optimizations is false.
8106         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
8107         (*mul<mode>3_neon)
8108         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
8109         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
8110         for NEON float modes when flag_unsafe_math_optimizations is false.
8111         (quad_halves_<code>v4sf): Only enable if
8112         flag_unsafe_math_optimizations is true.
8113         * doc/invoke.texi (ARM Options): Add note about floating point
8114         vectorization requiring -funsafe-math-optimizations.
8115
8116 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
8117             Julian Brown  <julian@codesourcery.com>
8118
8119         * config/arm/neon.md (UNSPEC_VABA): Delete.
8120         (UNSPEC_VABAL): Delete.
8121         (UNSPEC_VABS): Delete.
8122         (UNSPEC_VMUL_N): Delete.
8123         (adddi3_neon): New.
8124         (subdi3_neon): New.
8125         (mul<mode>3add<mode>_neon): Make the pattern named.
8126         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
8127         (neon_vadd<mode>): Replace with define_expand, and move the remaining
8128         unspec parts...
8129         (neon_vadd<mode>_unspec): ...to this.
8130         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
8131         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
8132         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
8133         (neon_vaba<mode>): Rewrite in terms of vabd.
8134         (neon_vabal<mode>): Rewrite in terms of vabdl.
8135         (neon_vabs<mode>): Rewrite without unspec.
8136         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
8137         (*arm_subdi3): Likewise.
8138         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
8139         No_op attribute to disable assembly output checks.
8140         * config/arm/arm_neon.h: Regenerated.
8141         * doc/arm-neon-intrinsics.texi: Regenerated.
8142
8143 2010-07-02  Jan Hubicka  <jh@suse.cz>
8144
8145         * ipa-split.c (split_function): For aggregate values, set the return
8146         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
8147         *<retval> = fncall.part ().
8148         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
8149
8150 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
8151
8152         * config/arm/neon.md (UNSPEC_VAND): Delete.
8153         (UNSPEC_VBIC): Delete.
8154         (UNSPEC_VCLZ): Delete.
8155         (UNSPEC_VCNT): Delete.
8156         (UNSPEC_VEOR): Delete.
8157         (UNSPEC_VORN): Delete.
8158         (UNSPEC_VORR): Delete.
8159         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
8160         core registers too.
8161         (anddi3_neon): Likewise.
8162         (orndi3_neon): Likewise.
8163         (bicdi3_neon): Likewise.
8164         (xordi3_neon): Likewise.
8165         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
8166         rid of unspec and handle unused operand.
8167         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
8168         * config/arm/predicates.md (imm_for_neon_logic_operand):
8169         Require TARGET_NEON.
8170         (imm_for_neon_inv_logic_operand): Likewise.
8171         * config/arm/arm.md (define_split for logical_binary_operator):
8172         Disable for NEON registers.
8173         (anddi3): Add new define_expand, and rename the insn.  Disable
8174         this insn for NEON, where anddi3_neon now applies.
8175         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
8176         (iordi3): As for anddi3.
8177         (xordi3): Likewise.
8178         * config/arm/neon.ml (Vand): Split DImode variants and mark them
8179         as No_op to disable testing for exact instruction match.
8180         (Vorr): Likewise.
8181         (Veor): Likewise.
8182         (Vbic): Likewise.
8183         (Vorn): Likewise.
8184         * config/arm/arm_neon.h: Regenerated.
8185         * doc/arm-neon-intrinsics.texi: Regenerated.
8186
8187 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
8188
8189         * expr.h (emit_stack_probe): Declare.
8190         * explow.c (emit_stack_probe): Make global.
8191         (anti_adjust_stack_and_probe): Fix comments.
8192         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
8193         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8194         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8195         * config/sparc/sparc.c: Include except.h.
8196         (sparc_emit_probe_stack_range): New function.
8197         (output_probe_stack_range): Likewise.
8198         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
8199         built-in stack checking is enabled.
8200         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
8201         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
8202         (probe_stack_range): New insn.
8203
8204 2010-07-02  Richard Guenther  <rguenther@suse.de>
8205
8206         PR target/43958
8207         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
8208         for argument alignment.
8209
8210 2010-07-02  Jan Hubicka  <jh@suse.cz>
8211
8212         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
8213         walk backwards from entry_bb to check only those basic block of header
8214         that might lead to execution of split part.
8215         (consider_split) ... here.
8216         (find_return_bb): Allow assignment in return BB.
8217         (find_retval): New.
8218         (split_function): Fix name of cloned function; take care of updating
8219         return value in return_bb containing move.
8220
8221 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
8222
8223         PR target/44771
8224         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
8225         used variable insn.
8226
8227 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
8228
8229         * implicit-zee.c (combine_reaching_defs): Fix long lines.
8230         (is_set_with_extension_DI): Delete.
8231         (struct zero_extend_info): New structure.
8232         (add_removable_zero_extend): New function.
8233         (find_removable_zero_extends): Use note_stores to find SETs.
8234         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
8235
8236 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
8237
8238         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
8239         is_miss_rate_acceptable. Pull total_positions computation
8240         out of the loops.  Early return if miss_positions exceeds
8241         the acceptable threshold.
8242         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
8243         is_miss_rate_acceptable after renaming of compute_miss_rate.
8244
8245 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
8246
8247         PR middle-end/44576
8248         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
8249         of 1000) for miss rate if the address diference is greater than or
8250         equal to the cache line size (the two reference will never hit the
8251         same cache line).
8252
8253 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
8254
8255         PR target/42835
8256         * config/arm/arm-modes.def (CC_NOTB): New mode.
8257         * config/arm/arm.c (get_arm_condition_code): Handle it.
8258         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
8259         * config/arm/arm.md (subsi3_compare0_c): New pattern.
8260         (compare_scc): Now a define_and_split.  Add a number of extra
8261         splitters before it.
8262
8263         PR target/42172
8264         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
8265         and ZERO_EXTEND.
8266         (arm_rtx_costs_1): Likewise.
8267         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
8268         * config/arm/arm.md (is_arch6): New attribute.
8269         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
8270         extendqisi2): Tighten the code somewhat, avoiding invalid
8271         RTL to occur in the expander patterns.
8272         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
8273         (thumb1_zero_extendhisi2_v6): Delete.
8274         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
8275         (thumb1_extendhisi2_v6): Delete.
8276         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
8277         (thumb1_extendqisi2_v6): Delete.
8278         (zero_extendhisi2 for register input splitter): New.
8279         (zero_extendqisi2 for register input splitter): New.
8280         (thumb1_extendhisi2 for register input splitter): New.
8281         (extendhisi2 for register input splitter): New.
8282         (extendqisi2 for register input splitter): New.
8283         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
8284         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
8285         and add support for a register alternative requiring a split.
8286         (thumb1_zero_extendqisi2): Likewise.
8287         (arm_zero_extendqisi2): Likewise.
8288         (arm_extendhisi2): Likewise.
8289         (arm_extendqisi2): Likewise.
8290
8291 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
8292
8293         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
8294         instead of an unspec.
8295         (neon_expand_vector_init): Likewise.
8296         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
8297         (UNSPEC_VDUP_LANE): Delete.
8298         (UNSPEC VDUP_N): Delete.
8299         (UNSPEC_VGET_HIGH): Delete.
8300         (UNSPEC_VGET_LANE): Delete.
8301         (UNSPEC_VGET_LOW): Delete.
8302         (UNSPEC_VMVN): Delete.
8303         (UNSPEC_VSET_LANE): Delete.
8304         (V_double_vector_mode): New.
8305         (vec_set<mode>_internal): Make code emitted match that for the
8306         corresponding intrinsics.
8307         (vec_setv2di_internal): Likewise.
8308         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
8309         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
8310         (neon_vset_lane<mode>): Combine double and quad patterns and
8311         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
8312         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
8313         (neon_vdup_n<mode>): Rewrite RTL without unspec.
8314         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
8315         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
8316         with neon_vdup_lanev2di, adjusting the pattern from the latter
8317         to be predicable for consistency.
8318         (neon_vdup_lane<mode>_internal): New.
8319         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
8320         to avoid using an unspec.
8321         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
8322         (neon_vdup_lanev2di): Turn into a define_expand.
8323         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
8324         (neon_vget_high<mode>): Replace with....
8325         (neon_vget_highv16qi): New pattern using canonical RTL.
8326         (neon_vget_highv8hi): Likewise.
8327         (neon_vget_highv4si): Likewise.
8328         (neon_vget_highv4sf): Likewise.
8329         (neon_vget_highv2di): Likewise.
8330         (neon_vget_low<mode>): Replace with....
8331         (neon_vget_lowv16qi): New pattern using canonical RTL.
8332         (neon_vget_lowv8hi): Likewise.
8333         (neon_vget_lowv4si): Likewise.
8334         (neon_vget_lowv4sf): Likewise.
8335         (neon_vget_lowv2di): Likewise.
8336
8337         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
8338         test for this emitting vmov.
8339         (Vset_lane): Likewise.
8340         (Vdup_n): Likewise.
8341         (Vmov_n): Likewise.
8342
8343         * doc/arm-neon-intrinsics.texi: Regenerated.
8344
8345 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
8346
8347         * config/arm/neon.md (vec_extractv2di): Correct error in register
8348         numbering to reconcile with neon_vget_lanev2di.
8349
8350 2010-07-02  Richard Guenther  <rguenther@suse.de>
8351
8352         * tree-ssa-structalias.c (pt_solution_set_var): New function.
8353         * tree-ssa-alias.h (pt_solution_set_var): Declare.
8354         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
8355         points-to information.
8356
8357 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
8358
8359         * config/s390/s390.c (override_options): Adopt prefetching
8360         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
8361
8362 2010-07-02  Jan Hubicka  <jh@suse.cz>
8363
8364         * df-problems.c (df_kill_notes): Do not collect dead  notes.
8365         (df_set_note): Just call add_reg_note.
8366         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
8367         df_create_unused_note): Do not deal with lists of old notes.
8368         (df_note_bb_compute): Likewise.
8369
8370 2010-07-02  Richard Guenther  <rguenther@suse.de>
8371
8372         * tree-ssa-structalias.c (find_func_aliases): Handle
8373         pointer alignment via BIT_AND_EXPR.
8374         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
8375
8376 2010-07-02  Richard Guenther  <rguenther@suse.de>
8377
8378         * tree-data-ref.c (initialize_data_dependence_relation): Handle
8379         mismatching number of dimensions properly.
8380
8381 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8382
8383         PR target/44707
8384         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
8385         (lo_sum (high ...) ...) patterns generated by earlier passes.
8386
8387 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8388
8389         * doc/install.texi (Prerequisites): Document Perl requirement on
8390         Solaris 2.
8391         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
8392
8393 2010-07-02  Richard Guenther  <rguenther@suse.de>
8394
8395         PR middle-end/44777
8396         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
8397
8398 2010-07-02  Jan Hubicka  <jh@suse.cz>
8399
8400         PR middle-end/44706
8401         * predict.c (predict_paths_for_bb): Handle case when control dependence
8402         BB has only abnormal edges.
8403
8404 2010-07-02  Richard Guenther  <rguenther@suse.de>
8405
8406         PR tree-optimization/44748
8407         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
8408         the embedded conversion in MEM_REFs.
8409
8410 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
8411
8412         * reload.c: Include toplev.h.
8413         * recog.c:  Likewise.
8414         * Makefile.in: Adjust dependencies.
8415
8416 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
8417
8418         PR debug/44694
8419         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
8420         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
8421
8422 2010-07-01  Richard Guenther  <rguenther@suse.de>
8423
8424         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
8425         types for offsets.
8426
8427 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
8428
8429         PR target/44732
8430         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
8431         Fix argument types.
8432
8433 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
8434
8435         PR target/44727
8436         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
8437         Make sure operand 0 dies.
8438
8439 2010-07-01  Richard Guenther  <rguenther@suse.de>
8440
8441         PR middle-end/42834
8442         PR middle-end/44468
8443         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
8444         * doc/generic.texi (References to storage): Document MEM_REF.
8445         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
8446         (print_call_name): Likewise.
8447         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
8448         (build_simple_mem_ref_loc): New function.
8449         (mem_ref_offset): Likewise.
8450         * tree.h (build_simple_mem_ref_loc): Declare.
8451         (build_simple_mem_ref): Define.
8452         (mem_ref_offset): Declare.
8453         * fold-const.c: Include tree-flow.h.
8454         (operand_equal_p): Handle MEM_REF.
8455         (build_fold_addr_expr_with_type_loc): Likewise.
8456         (fold_comparison): Likewise.
8457         (fold_unary_loc): Fold
8458         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
8459         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
8460         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
8461         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
8462         (ptr_deref_may_alias_ref_p_1): Likewise.
8463         (ao_ref_base_alias_set): Properly differentiate base object for
8464         offset and TBAA.
8465         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
8466         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
8467         (indirect_refs_may_alias_p): Likewise.
8468         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
8469         chasing code.
8470         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
8471         (call_may_clobber_ref_p_1): Likewise.
8472         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
8473         * expr.c (expand_assignment): Handle MEM_REF.
8474         (store_expr): Handle MEM_REFs from STRING_CSTs.
8475         (store_field): If expanding a MEM_REF of a non-addressable
8476         decl use bitfield operations.
8477         (get_inner_reference): Handle MEM_REF.
8478         (expand_expr_addr_expr_1): Likewise.
8479         (expand_expr_real_1): Likewise.
8480         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
8481         * alias.c (ao_ref_from_mem): Handle MEM_REF.
8482         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
8483         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
8484         (dr_analyze_indices): Likewise.
8485         (dr_analyze_alias): Likewise.
8486         (object_address_invariant_in_loop_p): Likewise.
8487         * gimplify.c (mark_addressable): Handle MEM_REF.
8488         (gimplify_cond_expr): Build MEM_REFs.
8489         (gimplify_modify_expr_to_memcpy): Likewise.
8490         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
8491         (gimple_fold_indirect_ref): Adjust.
8492         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
8493         * tree.def (MEM_REF): New tree code.
8494         * tree-dfa.c: Include toplev.h.
8495         (get_ref_base_and_extent): Handle MEM_REF.
8496         (get_addr_base_and_unit_offset): New function.
8497         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
8498         * gimple-fold.c (may_propagate_address_into_dereference): Handle
8499         MEM_REF.
8500         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
8501         accesses if the array has just one dimension.  Remove always true
8502         parameter.  Do not require type compatibility here.
8503         (maybe_fold_offset_to_component_ref): Remove.
8504         (maybe_fold_stmt_indirect): Remove.
8505         (maybe_fold_reference): Remove INDIRECT_REF handling.
8506         Fold back to non-MEM_REF.
8507         (maybe_fold_offset_to_address): Simplify.  Deal with type
8508         mismatches here.
8509         (maybe_fold_reference): Likewise.
8510         (maybe_fold_stmt_addition): Likewise.  Also handle
8511         &ARRAY + I in addition to &ARRAY[0] + I.
8512         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
8513         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
8514         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
8515         * tree-ssa.c (useless_type_conversion_p): Make most pointer
8516         conversions useless.
8517         (warn_uninitialized_var): Handle MEM_REF.
8518         (maybe_rewrite_mem_ref_base): New function.
8519         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
8520         to SSA form.
8521         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
8522         INDIRECT_REF handling.
8523         (copy_tree_body_r): Handle MEM_REF.
8524         * gimple.c (is_gimple_addressable): Adjust.
8525         (is_gimple_address): Likewise.
8526         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
8527         invariant base are invariant.
8528         (is_gimple_min_lval): Adjust.
8529         (is_gimple_mem_ref_addr): New function.
8530         (get_base_address): Handle MEM_REF.
8531         (count_ptr_derefs): Likewise.
8532         (get_base_loadstore): Likewise.
8533         * gimple.h (is_gimple_mem_ref_addr): Declare.
8534         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
8535         * tree-cfg.c (verify_address): New function, split out from ...
8536         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
8537         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
8538         INDIRECT_REFs.
8539         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
8540         INDIRECT_REF.  Allow conversions.
8541         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
8542         a register does not change its size.
8543         (verify_types_in_gimple_reference): Verify MEM_REF.
8544         (verify_gimple_assign_single): Disallow INDIRECT_REF.
8545         Handle MEM_REF.
8546         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
8547         New.
8548         (mark_address_taken): Handle MEM_REF.
8549         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
8550         (get_asm_expr_operands): Pass opf_not_non_addressable.
8551         (get_expr_operands): Handle opf_[not_]non_addressable.
8552         Handle MEM_REF.  Remove INDIRECT_REF handling.
8553         * tree-vrp.c (check_array_ref): Handle MEM_REF.
8554         (search_for_addr_array): Likewise.
8555         (check_array_bounds): Likewise.
8556         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
8557         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
8558         (ref_always_accessed_p): Likewise.
8559         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
8560         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
8561         Handle MEM_REF.
8562         * cgraphbuild.c (mark_load): Properly check for NULL result
8563         from get_base_address.
8564         (mark_store): Likewise.
8565         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
8566         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
8567         handling for MEM_REF.
8568         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
8569         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
8570         * builtins.c (stabilize_va_list_loc): Use the function ABI
8571         valist type if we couldn't canonicalize the argument type.
8572         Always dereference with the canonical va-list type.
8573         (maybe_emit_free_warning): Handle MEM_REF.
8574         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
8575         memmove to memcpy.
8576         * builtins.c (fold_builtin_memory_op): Use ref-all types
8577         for all memcpy foldings.
8578         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
8579         (build_outer_var_ref): Likewise.
8580         (scan_omp_1_op): Likewise.
8581         (lower_rec_input_clauses): Likewise.
8582         (lower_lastprivate_clauses): Likewise.
8583         (lower_reduction_clauses): Likewise.
8584         (lower_copyprivate_clauses): Likewise.
8585         (expand_omp_atomic_pipeline): Likewise.
8586         (expand_omp_atomic_mutex): Likewise.
8587         (create_task_copyfn): Likewise.
8588         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
8589         Remove old union trick.  Initialize constant offsets.
8590         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
8591         INDIRECT_REF.  Init base_alias_set properly.
8592         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
8593         (vn_reference_fold_indirect): Adjust for MEM_REFs.
8594         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
8595         for ARRAY_REFs.
8596         (may_insert): Remove.
8597         (visit_reference_op_load): Do not test may_insert.
8598         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
8599         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
8600         a field to store the constant offset this op applies.
8601         (run_scc_vn): Adjust prototype.
8602         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
8603         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
8604         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
8605         bother about volatile qualifiers on pointers.
8606         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
8607         * tree-ssa-loop-ivopts.c
8608         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
8609         (strip_offset_1): Likewise.
8610         (find_interesting_uses_address): Replace INDIRECT_REF handling with
8611         MEM_REF handling.
8612         (get_computation_cost_at): Likewise.
8613         * ipa-pure-const.c (check_op): Handle MEM_REF.
8614         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
8615         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
8616         and constants.
8617         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
8618         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
8619         (eliminate_local_variables_1): Likewise.
8620         (create_call_for_reduction_1): Likewise.
8621         (create_loads_for_reductions): Likewise.
8622         (create_loads_and_stores_for_name): Likewise.
8623         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
8624         (ssa_accessed_in_tree): Handle MEM_REF.
8625         (ssa_accessed_in_assign_rhs): Likewise.
8626         (update_type_size): Likewise.
8627         (analyze_accesses_for_call_stmt): Likewise.
8628         (analyze_accesses_for_assign_stmt): Likewise.
8629         (transform_access_sites): Likewise.
8630         (transform_allocation_sites): Likewise.
8631         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
8632         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
8633         not handle INDIRECT_REF.
8634         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
8635         (cond_store_replacement): Likewise.
8636         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
8637         MEM_REF, no not handle INDIRECT_REFs.
8638         (insert_into_preds_of_block): Properly initialize avail.
8639         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
8640         for ARRAY_REFs.  Properly handle reference lookups that
8641         require a bit re-interpretation.
8642         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
8643         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
8644         (build_ref_for_offset_1): Remove.
8645         (build_ref_for_offset): Build MEM_REFs.
8646         (gate_intra_sra): Disable for now.
8647         (sra_ipa_modify_expr): Handle MEM_REF.
8648         (ipa_early_sra_gate): Disable for now.
8649         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
8650         MEM_REF handling.
8651         (disqualify_base_of_expr): Likewise.
8652         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
8653         MEM_REF handling.
8654         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
8655         Use mem_ref_offset.  Remove bogus folding.
8656         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
8657         (make_fancy_name_1): Add support for MEM_REF.
8658         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
8659         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
8660         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
8661         (compute_complex_ancestor_jump_func): Likewise.
8662         (ipa_analyze_virtual_call_uses): Likewise.
8663         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
8664         INDIRECT_REF folding with more generalized MEM_REF folding.
8665         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
8666         (forward_propagate_addr_into_variable_array_index): Also handle
8667         &ARRAY + I in addition to &ARRAY[0] + I.
8668         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
8669         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
8670         creates assignments with overlap.
8671         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
8672         (get_frame_field): Likewise.
8673         (get_nonlocal_debug_decl): Likewise.
8674         (convert_nonlocal_reference_op): Likewise.
8675         (struct nesting_info): Add mem_refs pointer-set.
8676         (create_nesting_tree): Allocate it.
8677         (convert_local_reference_op): Insert to be folded mem-refs.
8678         (fold_mem_refs): New function.
8679         (finalize_nesting_tree_1): Perform defered folding of mem-refs
8680         (free_nesting_tree): Free the pointer-set.
8681         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
8682         (vectorizable_load): Likewise.
8683         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
8684         (propagate_with_phi): Likewise.
8685         * tree-object-size.c (addr_object_size): Handle MEM_REFs
8686         instead of INDIRECT_REFs.
8687         (compute_object_offset): Handle MEM_REF.
8688         (plus_stmt_object_size): Handle MEM_REF.
8689         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
8690         for &MEM_REF.
8691         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
8692         (symbol_marked_for_renaming): Likewise.
8693         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
8694         (fold-const.o): Add $(TREE_FLOW_H).
8695         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
8696         (find_func_clobbers): Likewise.
8697         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
8698         (decompose_access): Likewise.
8699         (replace_field_acc): Likewise.
8700         (replace_field_access_stmt): Likewise.
8701         (insert_new_var_in_stmt): Likewise.
8702         (get_stmt_accesses): Likewise.
8703         (reorg_structs_drive): Disable.
8704         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
8705         (ix86_canonical_va_list_type): Likewise.
8706
8707 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
8708
8709         PR other/44566
8710         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
8711         * target.def (struct gcc_target): Replace enum reg_class with
8712         reg_class_t in hook argument / return types.
8713         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
8714         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
8715         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
8716         * targhooks.h (default_branch_target_register_class): Likewise.
8717         (default_ira_cover_classes, default_secondary_reload): Likewise.
8718         (default_memory_move_cost, default_register_move_cost): Likewise.
8719         * targhooks.c (default_branch_target_register_class): Likewise.
8720         (default_ira_cover_classes, default_secondary_reload): Likewise.
8721         (default_memory_move_cost, default_register_move_cost): Likewise.
8722         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
8723         * bt-load.c (branch_target_load_optimize): Likewise.
8724         * ira.c (setup_cover_and_important_classes): Likewise.
8725         * ira-costs.c (copy_cost): Likewise.
8726         * reload1.c (emit_input_reload_insns): Likewise.
8727         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
8728         * config/frv/frv.c (frv_secondary_reload): Likewise.
8729         * config/s390/s390.c (s390_secondary_reload): Likewise.
8730         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
8731         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
8732         (ix86_register_move_cost): Likewise.
8733         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
8734         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
8735         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
8736         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
8737         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
8738         (rs6000_ira_cover_classes): Likewise.
8739         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
8740         * config/picochip/picochip-protos.h (picochip_secondary_reload):
8741         Likewise.
8742         * config/pa/pa.c (pa_secondary_reload): Likewise.
8743         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
8744         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
8745         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
8746         * doc/tm.texi: Regenerate.
8747
8748 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
8749
8750         PR bootstrrap/44726
8751         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
8752         use.
8753         (build_alias_set_optimal_p): Likewise.
8754         (build_base_obj_set_for_drs): Likewise.
8755
8756 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
8757
8758         * target.def: Remove comment about licensing problems of function
8759         declarations.
8760
8761         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
8762         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
8763         * doc/tm.texi: Regenerate.
8764
8765         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
8766         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
8767
8768         * target.def (enum_va_list_p): Use DEFHOOK.
8769         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
8770         Rename ptype to ptree.
8771         * doc/tm.texi: Regenerate.
8772
8773         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
8774         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
8775         * doc/tm.texi: Regenerate.
8776
8777         * target.def (memory_move_cost): Use DEFHOOK.
8778         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
8779         Rename regclass AKA class to rclass.
8780         * doc/tm.texi: Regenerate.
8781
8782         * target.def (pragma_parse): Use DEFHOOK.
8783         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
8784         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
8785         * doc/tm.texi: Regenerate.
8786
8787         * target.def (pass_by_reference): Use DEFHOOK.
8788         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
8789         * doc/tm.texi: Regenerate.
8790
8791         * target.def (resolve_overloaded_builtin): Rename params to arglist.
8792         Use DEFHOOK.
8793         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
8794         * doc/tm.texi: Regenerate.
8795
8796         * target.def (return_pops_args): Use DEFHOOK.
8797         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
8798         Rename stack-size to size.
8799         * doc/tm.texi: Regenerate.
8800
8801         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
8802         last-sched_cycle to last_clock, cur_cycle to clock.
8803         * doc/tm.texi.in: Use @hook.
8804         * doc/tm.texi: Regenerate.
8805
8806         * target.def (print_operand, print_operand_address): Update comment.
8807         (print_operand_punct_valid_p): Likewise.
8808
8809 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8810
8811         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
8812         to rtl.h.
8813         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
8814         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
8815         * rtl-error.h: New.
8816         * regrename.c: Do not include toplev.h. Include rtl-error.h.
8817         * rtl-error.c: Likewise.
8818         * reload.c: Likewise.
8819         * recog.c:  Likewise.
8820         * sel-sched.c: Likewise.
8821         * function.c: Likewise.
8822         * reg-stack.c: Likewise.
8823         * cfgrtl.c: Likewise.
8824         * reload1.c: Likewise.
8825         * final.c: Include rtl-error.
8826         * Makefile.in: Adjust dependencies.
8827
8828 2010-06-30  Jan Hubicka  <jh@suse.cz>
8829
8830         PR middle-end/PR44706
8831         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
8832         to return the value.
8833
8834 2010-06-30  Michael Matz  <matz@suse.de>
8835
8836         PR bootstrap/44699
8837         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
8838         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
8839         a gimple reg, attach the original VDEF to the last store in the
8840         sequence.
8841
8842 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
8843
8844         PR other/44034
8845         * config/darwin.c (darwin_override_options): Use renamed
8846         targetm.asm_out.emit_unwind_label.
8847
8848 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
8849
8850         PR tree-optimization/39799
8851         * tree-inline.c (remap_ssa_name): Initialize variable only if
8852         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
8853
8854 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
8855
8856         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
8857
8858 2010-06-30  Richard Guenther  <rguenther@suse.de>
8859
8860         PR target/44722
8861         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
8862         against oscillation with reverse peephole2.
8863
8864 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
8865
8866         PR target/44721
8867         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
8868         Fix last commit.
8869
8870 2010-06-30  Nick Clifton  <nickc@redhat.com>
8871
8872         * config/rx/rx-modes.def: New file.
8873         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
8874         (CC_REGNUM): Define.
8875         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
8876         register.
8877         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
8878         (SELECT_CC_MODE): Define.
8879         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
8880         (reg:CC CC_REG) instead of (cc0).
8881         (attr "cc"): Delete.
8882         (cbranchsi4): Do not split compare and branch here. Instead move
8883         it to...
8884         (cbranchsi4_<code>): ... here.  New patterns.
8885         (cmpsi): Call rx-compare_redundant to find out if it is necessary
8886         to emit the compare instruction.
8887         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
8888         cc_status flags.
8889         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
8890         FIRST_PSEUDO_REGNUM.
8891         (rx_expand_prologue, rx_expand_epilogue): Likewise.
8892         (rx_notice_update_cc): Delete.
8893         (rx_cc_modes_compatible): New function.
8894         (flags_needed_for_conditional): New function.
8895         (flags_from_mode): New function.
8896         (rx_compare_redundant): New function - scans backwards through
8897         insn list to find out if condition flags are already set correctly.
8898         (TARGET_CC_MODES_COMPATIBLE): Define.
8899         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
8900
8901         * config/rx/rx.h (BRANCH_COST): Define.
8902         (REGISTER_MOVE_COST): Define.
8903         * config/rx/predicates (rx_source_operand): Allow all constant types.
8904         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
8905         (tstsi4): New pattern.
8906         * config/rx/rx.c (rx_memory_move_cost): Define.
8907         (TARGET_MEMORY_MOVE_COST): Define.
8908
8909 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8910
8911         * tree.h (block_may_fallthru): Declare here.
8912         * tree-flow.h (block_may_fallthru): Do not declare here.
8913         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
8914         bitmap.h
8915         * Makefile.in (c-typeck.o): Update dependencies.
8916
8917 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
8918
8919         PR debug/44694
8920         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
8921         * cselib.c (cfa_base_preserved_regno): New static variable.
8922         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
8923         of REGNO (cfa_base_preserved_val->locs->loc).
8924         (cselib_preserve_cfa_base_value): Add regno argument, set
8925         cfa_base_preserved_regno to it.
8926         (cselib_invalidate_regno): Allow removal of registers other than
8927         cfa_base_preserved_regno from cfa_base_preserved_val.
8928         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
8929         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
8930         of MEM addresses, if not on LHS.
8931         (reverse_op): Don't add reverse ops for cfa_base_rtx.
8932         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
8933
8934 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
8935
8936         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
8937         static variables.
8938         (peep2_buf_position): New static function.
8939         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
8940         peephole2_optimize): Use it.
8941         (peep2_attempt, peep2_update_life): New static functions, broken out
8942         of peephole2_optimize.
8943         (peep2_fill_buffer): New static function.
8944         (peephole2_optimize): Change the main loop to try to fill the buffer
8945         with the maximum number of insns before matching them against
8946         peepholes.  Use a forward scan.  Remove special case for targets with
8947         conditional execution.
8948         * genrecog.c (change_state): Delete dead code.
8949         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
8950         Rewrite so as not to expect the second insn to have had a peephole
8951         applied yet.
8952
8953 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
8954
8955         * genhooks.c (emit_findices): Cast field precision to int.
8956         (emit_documentation): Likewise.
8957
8958 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
8959
8960         PR tree-optimization/43801
8961         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
8962         if old_decl was DECL_ONE_ONLY.
8963
8964         PR debug/44668
8965         * dwarf2out.c (add_accessibility_attribute): New function.
8966         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
8967         instead of adding DW_AT_accessibility manually.
8968         (gen_enumeration_type_die, gen_struct_or_union_type_die,
8969         gen_typedef_die): Use it.
8970
8971 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
8972
8973         * vmsdbgout.c (full_name): Just output the file name if not native.
8974
8975 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
8976
8977         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
8978         (funcnam_table): New static table.
8979         (funcnum_table): New static table.
8980         (write_rtnbeg): Write value saved in funcnum_table.
8981         (write_rtnend): Write value saved in funcnum_table.
8982         (vmsdbgout_begin_function): Save current function info in
8983         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
8984         (vmsdbgout_finish): Iterate over funcnum_table.
8985
8986 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
8987
8988         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
8989         (vmsdbgout_type_decl): Declare
8990         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
8991         (FUNC_EPILOGUE_LABEL): New macro
8992         (vmsdbgout_begin_epilogue): New function.
8993         (vmsdbgout_type_decl): New function.
8994
8995 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
8996
8997         * vmsdbg.h: Update copyright.
8998
8999 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9000
9001         * vmsdbg.h (DST_K_TBG): New DST constant.
9002         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
9003         (write_modbeg): Cast module_language to avoid warning.
9004         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
9005
9006 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
9007
9008         PR other/44034
9009         * target.def, doc/tm.texi.in, genhooks.c: New files.
9010         * target.h: Instead of defining individual hook members,
9011         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
9012         include target.def.
9013         * target-def.h: Instead of defining individual hook initializers,
9014         include target-hooks-def.h.
9015         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
9016         targetm.live_on_entry -> targetm.extra_live_on_entry
9017         targetm.sched.md_finish ->targetm.sched.finish
9018         targetm.sched.md_init -> targetm.sched.init
9019         targetm.sched.md_init_global -> targetm.sched.init_global
9020         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
9021         targetm.asm_out.except_table_label ->
9022           targetm.asm_out.emit_except_table_label
9023         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
9024         targetm.target_help -> targetm.help
9025         targetm.vectorize.builtin_support_vector_misalignment ->
9026           targetm.vectorize.support_vector_misalignment
9027         targetm.file_start_app_off -> targetm.asm_file_start_app_off
9028         targetm.file_start_file_directive ->
9029          targetm.asm_file_start_file_directive
9030         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
9031         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
9032         * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
9033         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
9034           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
9035         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
9036           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
9037         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
9038         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
9039         * Makefile.in (TARGET_H): Depend on target.def.
9040         (TARGET_DEF_H): Depend on target-hooks-def.h.
9041         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
9042         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
9043         * doc/tm.texi: Regenerate.
9044
9045         * Makefile.in (s-tm-texi): Remove stray tab / rule.
9046
9047         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
9048         (targetm.sched.init): Likewise.
9049
9050 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
9051
9052         PR bootstrap/44713
9053         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
9054         (function_arg_advance_32): Const-ify TYPE parameter.
9055         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
9056         (ix86_function_arg_advance): Change type of NAMED to bool.
9057         (function_arg_32): Const-ify CUM and TYPE parameters.
9058         (function_arg_64): Likewise.  Change type of NAMED to bool.
9059         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
9060         to bool.
9061         (ix86_function_arg): Change type of NAMED to bool.
9062         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
9063         last argument as a bool.
9064
9065 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
9066
9067         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
9068         (OVERRIDE_OPTIONS): Add note of obsolescence.
9069         Replace references with references to TARGET_OPTION_OVERRIDE.
9070         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
9071          the macro).
9072         * targhooks.c (default_target_option_override): New function.
9073         * targhooks.h (default_target_option_override): Declare.
9074         * target.h (struct gcc_target): Add override member to
9075         target_option member.
9076         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
9077         targetm.target_option.override call.
9078         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
9079         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
9080
9081 2010-06-29  Jan Hubicka  <jh@suse.cz>
9082
9083         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
9084
9085 2010-06-29  Jan Hubicka  <jh@suse.cz>
9086
9087         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
9088         unreachable.
9089         (rebuild_frequencies): New function.
9090         * predict.h (rebuild_frequencies): Declare.
9091         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
9092         entry block and edge reaching new_entry.
9093         (tree_function_versioning): When doing partial cloning, rebuild
9094         frequencies when done.
9095         * passes.c (execute_function_todo): Use rebild_frequencies.
9096
9097 2010-06-29  Richard Guenther  <rguenther@suse.de>
9098
9099         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
9100         * tree-flow.h (enum noalias_state): Remove.
9101         (struct var_ann_d): Remove noalias_state member.
9102
9103 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
9104
9105         PR target/43902
9106         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
9107         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
9108         (maddhidi4): Likewise.
9109
9110         Revert parts of the change for PR25130.
9111         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
9112         MEM_ALIAS_SET.
9113
9114 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
9115
9116         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
9117         targetm.calls.function_incoming_arg, and
9118         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
9119         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
9120         * target.h (struct gcc_target): Add function_arg_advance,
9121         function_arg, and function_incoming_arg fields.
9122         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
9123         (TARGET_FUNCTION_INCOMING_ARG): Define.
9124         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
9125         and TARGET_FUNCTION_INCOMING_ARG.
9126         * targhooks.h (default_function_arg_advance): Declare.
9127         (default_function_arg, default_function_incoming_arg): Declare.
9128         * targhooks.c (default_function_arg_advance): New function.
9129         (default_function_arg, default_function_incoming_arg): New function.
9130         * config/i386/i386.c (function_arg_advance): Rename to...
9131         (ix86_function_arg_advance): ...this.  Make static.
9132         (function_arg): Rename to...
9133         (ix86_function_arg): ...this.  Make static.
9134         (TARGET_FUNCTION_ARG_ADVANCE): Define.
9135         (TARGET_FUNCTION_ARG): Define.
9136         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
9137         (FUNCTION_ARG): Delete.
9138         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
9139         (function_arg): Delete prototype.
9140
9141 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
9142
9143         * reginfo.c (init_reg_sets_1): Adjust comments.
9144         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
9145         * calls.c (prepare_call_address): Likewise.
9146         (emit_call_1): Use targetm.calls.return_pops_args.
9147         (expand_call): Likewise.
9148         * function.c (assign_parms): Likewise.
9149         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
9150         * target.h (struct gcc_target) [struct calls]: Add
9151         return_pops_args field.
9152         * targhooks.h (default_return_pops_args): Declare.
9153         * targhooks.c (default_return_pops_args): Define.
9154         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
9155         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
9156         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
9157         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
9158         documentation.
9159         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
9160         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
9161         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
9162         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
9163         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
9164         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
9165         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
9166         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
9167         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
9168         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
9169         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
9170         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
9171         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
9172         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
9173         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
9174         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
9175         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
9176         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
9177         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
9178         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
9179         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
9180         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
9181         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
9182         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
9183         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
9184         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
9185         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
9186         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
9187         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
9188         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
9189         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
9190         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
9191         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
9192         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
9193         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
9194         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
9195         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
9196         * config/i386/i386.c (ix86_return_pops_args): Make static.
9197         Constify arguments.
9198         (TARGET_RETURN_POPS_ARGS): Define.
9199         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
9200         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
9201         (TARGET_RETURN_POPS_ARGS): Define.
9202         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
9203         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
9204         (TARGET_RETURN_POPS_ARGS): Define.
9205
9206 2010-06-29  Richard Guenther  <rguenther@suse.de>
9207
9208         PR middle-end/44667
9209         * tree-inline.c (initialize_inlined_parameters): Make sure
9210         to remap the inlined parameter variable substitutions types.
9211
9212 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
9213
9214         PR rtl-optimization/44659
9215         * combine.c (make_compound_operation) <SUBREG>: Do not return the
9216         result of force_to_mode if it partially re-expanded the compound.
9217
9218 2010-06-28  Jan Hubicka  <jh@suse.cz>
9219
9220         PR middle-end/44671
9221         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
9222         RESULT_DECL.
9223
9224 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
9225
9226         * double-int.h (force_fit_type_double): Remove declaration.
9227         * double-int.c (force_fit_type_double): Move to tree.c.
9228         * tree.h (force_fit_type_double): Declare.
9229         * tree.h (force_fit_type_double): Moved from double-int.c. Use
9230         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
9231         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
9232         * convert.c (convert_to_pointer): Adjust call to
9233         force_fit_type_double.
9234         * tree-vrp.c (extract_range_from_assert,
9235         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
9236         * fold-const.c: Update comment.
9237         (int_const_binop, fold_convert_const_int_from_int,
9238         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
9239         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
9240         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
9241         round_up_loc): Adjust call to force_fit_type_double.
9242
9243 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9244
9245         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
9246
9247 2010-06-28  Martin Jambor  <mjambor@suse.cz>
9248
9249         * tree-sra.c (convert_callers): New parameter, change fndecls of
9250         recursive calls.
9251         (modify_function): Pass the old decl to convert_callers.
9252
9253 2010-06-28  Martin Jambor  <mjambor@suse.cz>
9254
9255         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
9256         ipa_check_create_node_params and ipa_initialize_node_params with
9257         checking asserts they are not necessary.
9258
9259 2010-06-28  Jan Hubicka  <jh@suse.cz>
9260
9261         PR tree-optimization/44687
9262         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
9263
9264 2010-06-28  Martin Jambor  <mjambor@suse.cz>
9265
9266         PR c++/44535
9267         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
9268         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
9269         instead of BINFO_BASE_BINFO.
9270
9271 2010-06-28  Michael Matz  <matz@suse.de>
9272
9273         PR middle-end/44592
9274         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
9275         proper VDEF chain for intermediate stores in the sequence.
9276
9277 2010-06-28  Jan Hubicka  <jh@suse.cz>
9278
9279         PR tree-optimization/44357
9280         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
9281         uninlinable functions.
9282
9283 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9284
9285         * config.gcc (powerpc*-*-*): Handle titan.
9286         * config/rs6000/rs6000.c (titan_cost): New costs.
9287         (rs6000_override_options): Add "titan" to processor_target_table.
9288         Add Titan to branch alignment logic.
9289         Correctly set rs6000_cost for titan.
9290         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
9291         * config/rs6000/titan.md: New file.
9292         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
9293
9294 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
9295
9296         * tree-browser.c (TB_history_stack): Convert to a VEC.
9297         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
9298         (TB_history_prev): Likewise.
9299
9300 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
9301
9302         * vec.h (vec_heap_free): Add parentheses around free.
9303
9304 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
9305
9306         * system.h: Poison GCC_EXCEPT_H for front-end files.
9307
9308         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
9309         langhook.
9310         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
9311         Define to NULL by default.
9312         * except.h: Define GCC_EXCEPT_H.
9313         (doing_eh): Remove prototype.
9314         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
9315         (lang_protect_cleanup_actions): Remove.
9316         * except.c (lang_protect_cleanup_actions): Remove.
9317         (doing_eh): Remove.
9318         (gen_eh_region): Don't check doing_eh here.
9319         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
9320         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
9321         instead of lang_protect_cleanup_actions.
9322         * omp-low.c (maybe_catch_exception): Likewise.
9323         * Makefile.in: Update dependencies.
9324
9325 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
9326
9327         * cgraph.h (struct varpool_node): new used_from_object_file flag.
9328         (struct cgraph_local_info): new used_from_object_file flag.
9329         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
9330         (cgraph_clone_node): initialize used_from_object_file.
9331         (cgraph_create_virtual_clone): initialize used_from_object_file.
9332         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
9333         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
9334         when compiling with -fwhole-program.
9335         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
9336         internal resolver.
9337         * ipa.c (function_and_variable_visibility): Set externally_visible
9338         flag of varpool_node if used_from_object_file flag is set.
9339         (cgraph_externally_visible_p): check used_from_object_file flag.
9340         * doc/invoke.texi (-fwhole-program option): Change description of
9341         externally_visible attribute accordingly.
9342         * doc/extend.texi (externally_visible): Ditto.
9343
9344 2010-06-27  Jan Hubicka  <jh@suse.cz>
9345
9346         * params.def (max-inline-insns-auto): Default to 40.
9347         * doc/invoke.texi (max-inline-insns-auto): Document the change.
9348
9349 2010-06-27  Jan Hubicka  <jh@suse.cz>
9350
9351         PR middle-end/44671
9352         PR middle-end/44686
9353         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
9354         signature change.
9355         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
9356         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
9357
9358 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
9359
9360         * target.h (struct gcc_target): Add register_move_cost field.
9361         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
9362         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
9363         * targhooks.c (default_register_move_cost): New function.
9364         * targhooks.h (default_register_move_cost): Declare function.
9365         * defaults.h (REGISTER_MOVE_COST): Delete.
9366         * ira-int.h (ira_register_move_cost): Update comment.
9367         * ira.c (ira_register_move_cost): Update comment.
9368         * reload.h (register_move_cost): Declare.
9369         * reginfo.c (register_move_cost): New function.
9370         (move_cost): Update comment.
9371         (init_move_cost, memory_move_secondary_cost): Replace
9372         REGISTER_MOVE_COST with register_move_cost.
9373         * postreload.c (reload_cse_simplify_set): (Ditto.).
9374         * reload.c (find_valid_class, find_reloads): (Ditto.).
9375         * reload1.c (choose_reload_regs): (Ditto.).
9376         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
9377         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
9378         * doc/md.texi (can_create_pseudo_p): Update documentation.
9379
9380         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
9381         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
9382         * config/i386/i386.h (ix86_memory_move_cost): Make static.
9383         (TARGET_MEMORY_MOVE_COST): Define.
9384
9385         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
9386         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
9387         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
9388         (TARGET_MEMORY_MOVE_COST): Define.
9389
9390 2010-06-27  Richard Guenther  <rguenther@suse.de>
9391
9392         PR tree-optimization/44683
9393         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
9394         false edge from the inverted condition.
9395
9396 2010-06-27  Richard Guenther  <rguenther@suse.de>
9397
9398         PR middle-end/44684
9399         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
9400         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
9401         for register LHS.  Or non-store assignments.
9402
9403 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
9404
9405         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
9406         (sparc_emit_set_const64): Likewise.  Remove disabled code.
9407         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
9408         (sparc_emit_set_const64): Likewise.
9409
9410 2010-06-26  Catherine Moore  <clm@codesourcery.com>
9411
9412         * config/mips/mips.md (alu_type): New attribute.
9413         (type): Infer type from alu_type.
9414         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
9415         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
9416         *subsi3_extended, negsi2, negdi2, *low<mode>,
9417         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
9418         xor<mode>3, *nor<mode>3,
9419         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
9420         *zero_extendhi_truncqi):  Set alu_type instead of type.
9421
9422 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
9423
9424         * config/alpha/alpha.c (alpha_need_linkage): Adjust
9425         splay_tree_new_ggc call.
9426         (alpha_use_linkage): Likewise.
9427
9428 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
9429
9430         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
9431         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
9432         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
9433         (static_specs): Remove switches_need_spaces.
9434         (process_command, do_self_spec): Hardcode handling "-o" instead of
9435         checking switches_need_spaces.
9436         * system.h (SWITCHES_NEED_SPACES): Poison.
9437
9438 2010-06-26  Richard Guenther  <rguenther@suse.de>
9439
9440         PR tree-optimization/44393
9441         * tree-loop-distribution.c (generate_loops_for_partition): Fix
9442         stmt removal and VOP renaming.
9443         (generate_memset_zero): Remove redundant stmt updating.
9444         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
9445         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
9446
9447 2010-06-26  Jan Hubicka  <jh@suse.cz>
9448
9449         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
9450         edges comming from header are equivalent.
9451         (visit_bb): Handle PHIs correctly.
9452         * tree-inline.c (copy_phis_for_bb): Be able to copy
9453         PHI from entry edge.
9454         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
9455
9456 2010-06-26  Richard Guenther  <rguenther@suse.de>
9457
9458         PR middle-end/44674
9459         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
9460         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
9461
9462 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
9463
9464         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
9465         add_infile, alloc_switch): New.
9466         (process_command): Remove variable lang_n_infiles.  Process
9467         options in a single pass.  Use new functions for allocating
9468         infiles and switches arrays.  Properly skip operands of
9469         -Xpreprocessor and -Xassembler.
9470
9471 2010-06-26  Jan Hubicka  <jh@suse.cz>
9472
9473         PR middle-end/44671
9474         * cgraphunit.c (cgraph_function_versioning): Remove wrong
9475         cgraph_make_decl_local call; fix typo copying RTL data.
9476
9477 2010-06-25  DJ Delorie  <dj@redhat.com>
9478
9479         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
9480         (m32c_output_aligned_common): Likewise.
9481         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
9482         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
9483         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
9484         (m32c_register_pragmas): Register it.
9485         * config/m32c/m32c.c (m32c_get_pragma_address): New.
9486         (m32c_insert_attributes): Set #pragma address decls volatile.
9487         (pragma_entry_eq): New.
9488         (pragma_entry_hash): New.
9489         (m32c_note_pragma_address): New.
9490         (m32c_get_pragma_address): New.
9491         (m32c_output_aligned_common): New.
9492         * doc/extend.texi: Document the new pragma.
9493
9494         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
9495         also.
9496         * config/m32c/predicates.md (m32c_any_operand): Check the code
9497         instead of memory_operand so as to allow matching volatile MEMs.
9498         (m32c_nonimmediate_operand): Likewise.
9499         (mra_operand): Allow volatiles.
9500
9501 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
9502
9503         PR debug/44610
9504         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
9505         address if the offset is unknown.
9506
9507 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
9508
9509         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
9510         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
9511         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
9512         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
9513         to ia64_start_function. Invoke it.
9514         * config/ia64/ia64.c (ia64_start_function): Call new function
9515         dwarf2out_vms_debug_main_pointer.
9516
9517 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
9518
9519         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
9520         statements computing the true predicate.
9521
9522 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
9523
9524         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
9525         to boolean_true_node.
9526         (reset_bb_predicate): New.
9527         (predicate_bbs): Call reset_bb_predicate.
9528
9529 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
9530
9531         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
9532         (tree_if_conversion): Returns true when something has been changed.
9533         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
9534         changed something.
9535
9536 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
9537
9538         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
9539         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
9540         * tree-if-conv.c: Include dbgcnt.h.
9541         (tree_if_conversion): Use if_conversion_tree to count the number of
9542         if-convertible loops.
9543
9544 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
9545
9546         * common.opt (fprefetch-loop-arrays): Re-define
9547         -fprefetch-loop-arrays as a tri-state option with the initial
9548         value of -1.
9549         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
9550         pass only when flag_prefetch_loop_arrays > 0.
9551         * toplev.c (process_options): Note that, with tri-states,
9552         flag_prefetch_loop_arrays>0 means prefetching is enabled.
9553         * config/i386/i386.c (override_options): Enable prefetching at -O3
9554         for a set of CPUs that sw prefetching is helpful.
9555         (software_prefetching_beneficial_p): New.  Return TRUE if software
9556         prefetching is beneficial for the given CPU.
9557
9558 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
9559
9560         PR rtl-optimization/44326
9561         * implicit-zee.c (find_removable_zero_extends): Replace
9562         INSN_P with NONDEBUG_INSN_P.
9563
9564 2010-06-25  Martin Jambor  <mjambor@suse.cz>
9565
9566         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
9567         (struct ipa_node_params): Removed the modification_analysis_done flag.
9568         (ipa_is_param_modified): Removed.
9569         (ipa_analyze_node): Declare.
9570         (ipa_compute_jump_functions): Remove declaration.
9571         (ipa_count_arguments): Likewise.
9572         (ipa_detect_param_modifications): Likewise.
9573         (ipa_analyze_params_uses): Likewise.
9574         * ipa-prop.c (struct param_analysis_info): New type.
9575         (visit_store_addr_for_mod_analysis): Removed.
9576         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
9577         moved down in the file.
9578         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
9579         (ipa_count_arguments): Made static.
9580         (mark_modified): New function.
9581         (is_parm_modified_before_call): New function.
9582         (compute_pass_through_member_ptrs): New parameter parms_info, call
9583         is_parm_modified_before_call instead of ipa_is_param_modified.
9584         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
9585         it to compute_pass_through_member_ptrs.
9586         (ipa_compute_jump_functions): New parameter parms_info, pass it to
9587         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
9588         on the callee if it is analyzed.  Made static.
9589         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
9590         is_parm_modified_before_call instead of ipa_is_param_modified.
9591         (ipa_analyze_call_uses): New parameter parms_info, pass it to
9592         ipa_analyze_indirect_call_uses.
9593         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
9594         ipa_analyze_call_uses.
9595         (ipa_analyze_params_uses): New parameter parms_info, pass it to
9596         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
9597         (ipa_analyze_node): New function.
9598         (ipa_print_node_params): Do not dump the modified flag.
9599         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
9600         it.  Do not stream the modified parameter flag.
9601         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
9602         it.  Do not stream the modified parameter flag.
9603         * ipa-cp.c (ipcp_analyze_node): Removed.
9604         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
9605         with only a call to ipa_analyze_node.
9606         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
9607         node with only a call to ipa_analyze_node.
9608
9609 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9610
9611         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
9612
9613 2010-06-25  Jan Hubicka  <jh@suse.cz>
9614
9615         * tree-pass.h (pass_split_functions): Declare.
9616         * opts.c (decode_options): Enable function splitting at -O2
9617         * timevar.def (TV_IPA_FNSPLIT): New macro.
9618         * ipa-split.c: New file.
9619         * common.opt (-fpartial-inlining): New flag.
9620         * Makefile.in (ipa-split.o): New object file.
9621         * passes.c (init_optimization_passes): Add ipa-split.
9622         * params.def (partial-inlining-entry-probability): New parameters.
9623         * doc/invoke.texi (-fpartial-inlining): New.
9624
9625 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9626
9627         PR 44665
9628         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
9629         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
9630         (gimplify_expr): Likewise.
9631
9632 2010-06-25  Martin Jambor  <mjambor@suse.cz>
9633
9634         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
9635         statements instead of bailing out on them.
9636         (ipa_analyze_indirect_call_uses): Do not require that loads from the
9637         parameter are in the same BB as the condition.  Update comments.
9638
9639 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
9640
9641         PR middle-end/43866
9642         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
9643         true or always false, return NULL_TREE.
9644         (tree_unswitch_single_loop): Optimize conditions even when reaching
9645         max-unswitch-level parameter.  If num > 0, optimize first all conditions
9646         using entry checks, then do still reachable block discovery and consider
9647         only conditions in still reachable basic blocks in the loop.
9648
9649         PR tree-optimization/44539
9650         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
9651         the call doesn't have LHS, but has VDEF.
9652
9653 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
9654
9655         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
9656         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
9657         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
9658         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
9659         * system.h (MODIFY_TARGET_NAME): Poison.
9660
9661 2010-06-25  Alan Modra  <amodra@gmail.com>
9662
9663         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
9664         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
9665         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9666         CMODEL_LARGE as default.
9667         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
9668         (offsettable_ok_by_alignment): Delete.
9669         (rs6000_emit_move): Remove mcmodel=medium optimization.
9670
9671 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
9672
9673         With large parts from Jim Wilson:
9674         PR target/43902
9675         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
9676         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
9677         * optabs.c (optab_for_tree_code): Likewise.
9678         (expand_widen_pattern_expr): Likewise.
9679         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
9680         out of execute_optimize_widening_mul.
9681         (convert_plusminus_to_widen): New function.
9682         (execute_optimize_widening_mul): Use the two new functions.
9683         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
9684         Remove code to generate widening multiply-accumulate.  Add support
9685         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
9686         * gimple-pretty-print.c (dump_ternary_rhs): New function.
9687         (dump_gimple_assign): Call it when appropriate.
9688         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
9689         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
9690         (expand_gimple_stmt_1): Likewise.
9691         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
9692         WIDEN_MULT_MINUS_EXPR.
9693         * tree-ssa-operands.c (get_expr_operands): Likewise.
9694         * tree-inline.c (estimate_operator_cost): Likewise.
9695         * gimple.c (extract_ops_from_tree_1): Renamed from
9696         extract_ops_from_tree.  Add new arg for a third operand; fill it.
9697         (gimple_build_assign_stat): Support operations with three operands.
9698         (gimple_build_assign_with_ops_stat): Likewise.
9699         (gimple_assign_set_rhs_from_tree): Likewise.
9700         (gimple_assign_set_rhs_with_ops_1): Renamed from
9701         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
9702         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
9703         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
9704         WIDEN_MULT_MINUS_EXPR.
9705         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
9706         (extract_ops_from_tree_1): Adjust declaration.
9707         (gimple_assign_set_rhs_with_ops_1): Likewise.
9708         (gimple_build_assign_with_ops): Pass NULL for last operand.
9709         (gimple_build_assign_with_ops3): New macro.
9710         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
9711         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
9712         functions.
9713         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
9714         (verify_gimple_assign): Call it.
9715         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
9716         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
9717         functions for dealing with three-operand statements.
9718         * tree.c (commutative_ternary_tree_code): New function.
9719         * tree.h (commutative_ternary_tree_code): Declare it.
9720         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
9721         ternary statements.
9722         (gimple_assign_nonzero_warnv_p): Likewise.
9723         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
9724         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
9725         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
9726         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
9727         (struct hashtable_expr): New member ternary in the union.
9728         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
9729         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
9730         (iterative_hash_hashable_expr): Likewise.
9731         (print_expr_hash_elt): Handle EXPR_TERNARY.
9732         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
9733         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
9734         statements.  Handle GIMPLE_TERNARY_RHS.
9735
9736 2010-06-25  Jan Hubicka  <jh@suse.cz>
9737
9738         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
9739
9740 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
9741
9742         PR c/44517
9743         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
9744         parameters are not good.
9745         (c_parser_parameter_declaration): Error unknown type name if the type
9746         name can't start declaration specifiers.
9747
9748 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
9749
9750         * gcc.c (translate_options): Don't mention +e in comment.
9751         (process_command): Don't handle +e specially.
9752
9753 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
9754
9755         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
9756
9757         * ira-build.c (merge_hard_reg_conflicts): New function.
9758         (create_cap_allocno, copy_info_to_removed_store_destinations,
9759         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
9760         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
9761         (remove_unnecessary_allocnos, remove_low_level_allocnos)
9762         copy_nifo_to_removed_store_destination): Use them.
9763         * ira-lives.c (make_hard_regno_born): New function, split out of
9764         make_regno_born.
9765         (make_allocno_born): Likewise.
9766         (make_hard_regno_dead): New function, split out of make_regno_dead.
9767         (make_allocno_dead): Likewise.
9768         (inc_register_pressure): New function, split out of set_allocno_live.
9769         (dec_register_pressure): New function, split out of clear_allocno_live.
9770         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
9771         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
9772         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
9773         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
9774         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
9775         mark_pseudo_regno_live.
9776         (process_bb_node_lives): Use mark_pseudo_regno_live,
9777         make_hard_regno_born and make_allocno_dead.
9778         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
9779         set_allocno_live, clear_allocno_live): Delete functions.
9780
9781         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
9782         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
9783         functions.
9784         (ira_flattening): Use ira_parent_allocno.
9785         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
9786         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
9787
9788         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
9789         statement.
9790
9791         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
9792         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
9793         minmax_set_iter_cond, minmax_set_iter_next,
9794         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
9795         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
9796         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
9797         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
9798         uses changed.
9799
9800         * ira-int.h (struct live_range, live_range_t): Renamed from struct
9801         ira_allocno_live_range and allocno_live_range_t; all uses changed.
9802         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
9803         All uses changed.
9804
9805 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
9806
9807         * thumb2.md (thumb2_tlobits_cbranch): Delete.
9808         (peephole2 to convert zero_extract/compare of single bit to
9809          lshift/compare): New.
9810
9811 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
9812
9813         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
9814         recursive call and call to 'int_const_binop'.
9815         (build_range_check, fold_cond_expr_with_comparison, unextend,
9816         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
9817         multiple_of_p): Adjust call to const_binop.
9818
9819 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
9820
9821         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
9822         determine size of XFmode operand.
9823         (XFmode extended DFmode push splitter): Ditto.
9824         (XFmode extended SFmode push splitter): Ditto.
9825
9826 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
9827
9828         PR target/44588
9829         * config/i386/i386.md (extract_code): New.
9830         (<u>divmodqi4): Likewise.
9831         (divmodhiqi3): Likewise.
9832         (udivmodhiqi3): Likewise.
9833         (<u>divqi3): Remvoved.
9834
9835 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
9836
9837         PR middle-end/44492
9838         * recog.h (struct recog_data): Add is_asm field.
9839         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
9840         present in constraints of inline-asm operand and memory operand
9841         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
9842         (extract_insn): Initialize recog_data.is_asm.
9843         * doc/md.texi (Constraints): Document operand side-effect rules.
9844
9845 2010-06-24  Andi Kleen  <ak@linux.intel.com>
9846
9847         * c-parser.c (c_parser_conditional_expression): Call
9848         warn_for_omitted_condop.
9849         * doc/invoke.texi: Document omitted condop warning.
9850
9851 2010-06-24  Nick Clifton<nickc@redhat.com>
9852
9853         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
9854         insn in the sequence is a jump insn before setting its label.
9855
9856 2010-06-24  Alan Modra  <amodra@gmail.com>
9857
9858         * collect2.c (main): Match exactly --version and --help.
9859
9860 2010-06-24  DJ Delorie  <dj@redhat.com>
9861
9862         * config/m32c/m32c-pragma.c: Don't include rtl.h.
9863
9864 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
9865
9866         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
9867         using X87MODEF mode iterator.
9868         (pushsf splitter): Macroize splitter using P mode iterator.
9869         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
9870         mode iterator.
9871
9872         (*movxf_internal): Rename from *movxf_integer.
9873         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
9874         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
9875         (*movdf_internal): Rename from *movdf_integer.
9876         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
9877         (*movsf_internal): Rename from *movdf_1.
9878
9879 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
9880
9881         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
9882         (const_gimple_seq_node): Removed typedefs.
9883
9884         * gimple.h (gimple_seq_node_d, gimple_seq_node)
9885         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
9886
9887 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
9888
9889         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
9890         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
9891         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
9892         and CODE_FOR_vec_extract_lo_v4df.
9893
9894         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
9895         Changed to define_insn_and_split.
9896         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
9897         (vec_extract_lo_v16hi): Likewise.
9898         (vec_extract_lo_v32qi): Likewise.
9899         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
9900         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
9901
9902 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
9903
9904         PR target/44640
9905         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
9906         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
9907         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
9908         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
9909         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
9910
9911         PR target/44640
9912         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
9913
9914         PR other/44644
9915         * df-core.c (struct df): Rename to df_d.
9916         * df.h (struct df): Likewise.
9917         * dse.h (struct df): Remove forward declaration.
9918         * recog.h (struct insn_data): Rename to:
9919         (struct_insn_data_d).  Adjusted all users.
9920
9921 2010-06-23  Arnaud Charlet  <charlet@adacore.com
9922
9923         PR ada/22220
9924         * doc/install.texi: Update requirements to build GNAT.
9925
9926 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
9927
9928         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
9929         enum type.
9930         (m68k_sched_attr_opx_type): Remove unreachable return.
9931         (m68k_sched_attr_opy_type): Likewise.
9932         (m68k_sched_attr_size): Likewise.
9933         (sched_get_opxy_mem_type): Likewise.
9934         (m68k_sched_attr_op_mem): Likewise.
9935
9936 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
9937
9938         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
9939         new statement and adjust VDEF only if necessary.  Remove superfluous
9940         call to maybe_clean_or_replace_eh_stmt.
9941         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
9942         copy the flags.
9943         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
9944         * tree-inline.c (copy_bb): ...and not there.
9945
9946 2010-06-22  Cary Coutant  <ccoutant@google.com>
9947
9948         * dwarf2out.c (is_nested_in_subprogram): New function.
9949         (should_move_die_to_comdat): Use it.
9950         (copy_ancestor_tree): Don't mark DIEs here.
9951         (copy_decls_walk): Start walk from root of newly-added tree;
9952         mark DIEs here instead.
9953
9954 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
9955
9956         * config/i386/i386.md (unit): Also check sseishft1.
9957
9958 2010-06-22  Jan Hubicka  <jh@suse.cz>
9959
9960         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
9961         enabled.
9962
9963 2010-06-22  Jan Hubicka  <jh@suse.cz>
9964
9965         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
9966         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
9967         Return true if something changed.
9968         * df.h (df_confluence_function_n): Return bool.
9969         * df-core.c (df_worklist_propagate_forward,
9970         df_worklist_propagate_backward): Track changes and ages.
9971         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
9972         track ages.
9973         * dse.c (dse_confluence_n): Return always true.
9974
9975 2010-06-22  Jan Hubicka  <jh@suse.cz>
9976
9977         * bitmap.c (bitmap_clear_bit): Micro optimize.
9978
9979 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
9980
9981         * config/i386/i386.md (SWI1248x): New mode iterator.
9982         (SWI48x): Ditto.
9983         (SWI12): Ditto.
9984         (SWI24): Ditto.
9985
9986         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
9987         SWI1248x mode iterator.
9988         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
9989         using SWI124 mode iterator.
9990         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
9991         mode iterator.
9992         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
9993         *pushdi2_prologue_rex64 using P mode iterator.
9994         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
9995         using SWI48 mode iterator.
9996         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
9997         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
9998         using SWI1248x mode iterator.
9999         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
10000         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
10001         SWI48 mode iterator.
10002         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
10003         iterator.
10004         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
10005         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
10006         SWI12 mode iterator.
10007         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
10008         SWI12 mode iterator.
10009         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
10010         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
10011         SWI24 mode iterator.
10012         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
10013         SWI48 mode iterator.
10014         (mov<mode>_insn_1): New expander.
10015         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
10016         using SWI48x mode iterator.
10017
10018         (*movoi_internal_avx): Rename from *movoi_internal.
10019         (*movti_internal_rex64): Rename from *movti_rex64.
10020         (*movti_internal_sse): Rename from *movti_sse.
10021         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
10022         (*movdi_internal): Rename from *movdi_2.
10023         (*movsi_internal): Rename from *movsi_1.
10024         (*movhi_internal): Rename from *movhi_1.
10025         (*movqi_internal): Rename from *movqi_1.
10026
10027         (insv): Update the call to gen_movsi_insv_1 for rename.
10028         * config/i386/i386.c (promote_duplicated_reg): Ditto.
10029
10030 2010-06-22  Jan Hubicka  <jh@suse.cz>
10031
10032         * passes.c (execute_function_todo): Move call of statistics_fini_pass
10033         to ...
10034         (execute_todo) ... this one.
10035
10036 2010-06-22  Alan Modra  <amodra@gmail.com>
10037
10038         PR target/44364
10039         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
10040         * caller-save.c (insert_restore, insert_save): Use non-validate
10041         form of adjust_address.
10042
10043 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10044
10045         PR target/39690
10046         * config/pa/pa.c (override_options): Disable
10047         -freorder-blocks-and-partition.
10048
10049 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
10050
10051         PR target/44615
10052         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
10053
10054         * config/i386/i386.md (type): Add sseishft1
10055
10056         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
10057         (ppro_insn_load): Likewise.
10058         (ppro_insn_store): Likewise.
10059         (ppro_insn_both): Likewise.
10060
10061         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
10062         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
10063         for type.
10064         (*vec_extractv2di_1_avx): Likewise.
10065         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
10066         type.  Remove atom_unit.
10067         (*vec_extractv2di_1_sse2): Likewise.
10068
10069 2010-06-21  DJ Delorie  <dj@redhat.com>
10070
10071         * diagnostic.h (diagnostic_classification_change_t): New.
10072         (diagnostic_context): Add history and push/pop list.
10073         (diagnostic_push_diagnostics): Declare.
10074         (diagnostic_pop_diagnostics): Declare.
10075         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
10076         from pragmas in a history chain instead of the global table.
10077         (diagnostic_push_diagnostics): New.
10078         (diagnostic_pop_diagnostics): New.
10079         (diagnostic_report_diagnostic): Scan history chain to find state
10080         of diagnostics as of the diagnostic location.
10081         * opts.c (set_option): Pass UNKNOWN_LOCATION to
10082         diagnostic_classify_diagnostic.
10083         (enable_warning_as_error): Likewise.
10084         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
10085         use in the history chain.
10086         * doc/extend.texi: Document pragma GCC diagnostic changes.
10087
10088 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
10089
10090         * dwarf2out.c (add_linkage_name): New function.  Don't add
10091         anything to DW_TAG_member DIEs.
10092         (add_name_and_src_coords_attributes): Use it.
10093         (gen_variable_die): Call it for C++ static data members if
10094         specification is DW_TAG_member.
10095
10096         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
10097         C++ char16_t and char32_t.
10098
10099         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
10100         * genattrtab.c: Include vecprim.h.
10101         (cached_attrs, cached_attr_count, attrs_seen_once,
10102         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
10103         attrs_cached_after): New variables.
10104         (find_attrs_to_cache): New function.
10105         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
10106         (write_test_expr): Add attrs_cached argument, return it too,
10107         attempt to cache non-const attributes used more than once in
10108         a single case handling.
10109         (write_attr_get): Use find_attrs_to_cache, for caching candidates
10110         emit cached_* variables.  Adjust write_attr_set callers.
10111         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
10112         to find attributes that should be cached in this block.  Adjust
10113         write_test_expr callers.
10114         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
10115         callers.
10116         (make_automaton_attrs): Adjust write_test_expr caller.
10117
10118         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
10119         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
10120         (make_automaton_attrs): If find_tune_attr returns non-NULL,
10121         write separate internal_dfa_insn_code_* and insn_default_latency_*
10122         functions for each attribute's value and emit init_sched_attrs
10123         function and function pointers.
10124         * genattr.c (const_attrs, reservations): New variables.
10125         (gen_attr): Add const attributes to const_attrs vector.
10126         (check_tune_attr, find_tune_attr): New functions.
10127         (main): Add reservations to reservations vector.  If find_tune_attr
10128         returns true, add prototype for init_sched_attrs and make
10129         internal_dfa_insn_code and insn_default_latency function pointers,
10130         otherwise define init_sched_attrs as dummy macro.
10131         * cfgexpand.c: Include insn-attr.h.
10132         (gimple_expand_cfg): Call init_sched_attrs.
10133
10134         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
10135
10136         PR target/44575
10137         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
10138         va_arg from a set of register save slots into a temporary,
10139         if the container is bigger than type size, do the copying
10140         using smaller mode or using memcpy.
10141
10142         PR bootstrap/44426
10143         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
10144         prototype.
10145         (sel_print_to_dot): Remove macro.
10146         (sel_print): Likewise.  New prototype.
10147         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
10148         (sel_print): New function.
10149
10150 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10151
10152         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
10153         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
10154
10155 2010-06-21  Nick Clifton  <nickc@redhat.com>
10156
10157         * config/rx/rx.h (PTRDIFF_TYPE): Define.
10158         (SMALL_REGISTER_CLASS): Define (to zero).
10159         (PRINT_OPERAND): Delete.
10160         (PRINT_OPERAND_ADDRESS): Delete.
10161         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
10162         (rx_print_operand_address): Delete prototype.
10163         * config/rx/rx.c (rx_print_operand): Make static.
10164         Allow %H and %L to handle CONST_DOUBLEs.
10165         (rx_print_operand_address): Make static.
10166         (rx_gen_move_template): Rename local variable 'template' to
10167         out_template.
10168         (rx_function_arg): Do not pass unknown sized objects in registers.
10169         (TARGET_PRINT_OPERAND): Define.
10170         (TARGET_PRINT_OPERAND_ADDRESS): Define.
10171
10172 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
10173
10174         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
10175
10176 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
10177
10178         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
10179         stack-alignment for simple leaf-functions.
10180
10181 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
10182
10183         * doc/install.texi: Document bootstrap-lto.
10184
10185 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
10186
10187         PR debug/44248
10188         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
10189         (input_function): Drop them here, if VTA is disabled.
10190
10191 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
10192
10193         PR target/44546
10194         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
10195         New predicate.
10196         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
10197         ix86_swapped_fp_comparsion_operator instead of
10198         ix86_fp_comparison_operator.
10199
10200         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
10201         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
10202         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
10203         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
10204         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
10205         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
10206
10207 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
10208
10209         PR other/32998
10210         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
10211         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
10212         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
10213         (decode_cmdline_option): Update for this return value.  Set
10214         orig_option_with_args_text field.  Set arg field for unknown
10215         options.  Make static.
10216         (decode_cmdline_options_to_array): New.
10217         (prune_options): Update handling of find_opt return value.
10218         * opts.c (read_cmdline_option): Take decoded option.  Return void.
10219         (read_cmdline_options): Take decoded options.
10220         (decode_options): Add parameters for decoded options.  Use
10221         decode_cmdline_options_to_array.  Use decoded options for -O
10222         scan.  Use integral_argument for -O parameters.  Update call to
10223         read_cmdline_options.
10224         (enable_warning_as_error): Update handling of find_opt return value.
10225         * opts.h: Update comment on unknown options.
10226         (struct cl_decoded_option): Update comments on opt_index and arg.
10227         Add orig_option_with_args_text.
10228         (decode_cmdline_option): Remove.
10229         (decode_cmdline_options_to_array): Declare.
10230         (decode_options): Update prototype.
10231         * toplev.c (save_argv): Remove.
10232         (save_decoded_options, save_decoded_options_count): New.
10233         (read_integral_parameter): Remove.
10234         (print_switch_values): Use decoded options.
10235         (toplev_main): Don't set save_argv.  Update call to decode_options.
10236         * toplev.h (read_integral_parameter): Remove.
10237         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
10238
10239 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
10240
10241         PR target/44072
10242         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
10243         immediate.
10244         * constraints.md (Pw, Px): New constraints.
10245         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
10246
10247 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
10248
10249         * config/i386/sse.md (fma4modesuffixf4): Removed.
10250         (ssemodesuffixf2s): Likewise.
10251         (ssemodesuffixf4): Likewise.
10252         (ssemodesuffixf2c): Likewise.
10253         (ssescalarmodesuffix2s): Likewise.
10254         (avxmodesuffixf2c): Likewise.
10255         (ssemodesuffix): New.
10256         (ssescalarmodesuffix): Likewise.
10257         Update patterns with ssemodesuffix and ssescalarmodesuffix.
10258
10259 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
10260
10261         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
10262
10263 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
10264
10265         * stor-layout.c (debug_rli): Remove unused local variables.
10266
10267 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
10268
10269         PR rtl-optimization/40900
10270         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
10271         original expression for later reuse.
10272         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
10273         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
10274
10275 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
10276
10277         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
10278         double_int_fits_in_uhwi_p): Implement as static inline.
10279         (double_int_xor): New inline function.
10280         (double_int_lrotate, double_int_rrotate, double_int_max,
10281         double_int_umax, double_int_smax, double_int_min, double_int_umin,
10282         double_int_smin): Declare.
10283         (lrotate_double, rrotate_double): Remove declaration.
10284         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
10285         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
10286         (double_int_lrotate, double_int_rrotate, double_int_max,
10287         double_int_umax, double_int_smax, double_int_min, double_int_umin,
10288         double_int_smin): New function.
10289         * fold-const.c (int_const_binop): Clean up, use double_int_*
10290         functions.
10291         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
10292         double_int_* and immed_double_int_const functions.
10293
10294 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
10295
10296         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
10297         * function.c (types_used_by_cur_var_decl): Likewise.
10298         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
10299
10300 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
10301
10302         * tree.h (record_layout_info): Change type of pending_statics field
10303         to a VEC.
10304         * stor-layout.c (start_record_layout): Store NULL into
10305         pending_statics.
10306         (debug_rli): Call debug_vec_tree instead of debug_tree.
10307         (place_field): Likewise.
10308         (finish_record_layout): Likewise.
10309
10310 2010-06-18  Alan Modra  <amodra@gmail.com>
10311
10312         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
10313
10314 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10315
10316         PR target/43740
10317         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
10318         for SET source operand from SET destination operand.
10319
10320 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
10321
10322         PR rtl-optimization/39871
10323         * reload1.c (init_eliminable_invariants): For flag_pic, disable
10324         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
10325         (function_invariant_p): Rule out a plus of frame or arg pointer with
10326         a SYMBOL_REF.
10327         * ira.c (find_reg_equiv_invariant_const): Likewise.
10328
10329 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
10330
10331         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
10332         print_operand_address and puts to output the operand for CONST.
10333
10334 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
10335
10336         PR debug/44572
10337         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
10338         hook.
10339
10340 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10341
10342         * v850-protos.h (print_operand): Delete.
10343         (print_operand_address): Delete.
10344         * v850.h (PRINT_OPERAND): Delete.
10345         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10346         (PRINT_OPERAND_ADDRESS): Delete.
10347         * v850.c (print_operand_address): Rename to...
10348         (v850_print_operand_address): ...this.  Make static. Call
10349         v850_print_operand.
10350         (print_operand): Rename to...
10351         (v850_print_operand): ...this.  Make static.  Call
10352         v850_print_operand_address.
10353         (v850_print_operand_punct_valid_p): New function.
10354         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10355         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
10356
10357 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10358
10359         * config/sh/sh-protos.h (print_operand): Delete.
10360         (print_operand_address): Delete.
10361         * config/sh/sh.h (PRINT_OPERAND): Delete.
10362         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10363         (PRINT_OPERAND_ADDRESS): Delete.
10364         * config/sh/sh.c (sh_print_operand_address): Make static.
10365         (sh_print_operand): Make static.  Call sh_print_operand_address
10366         and sh_print_operand.
10367         (sh_print_operand_punct_valid_p): New function.
10368         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10369         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
10370
10371 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10372
10373         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
10374         (mcore_print_operand_address): Delete.
10375         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
10376         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10377         (PRINT_OPERAND_ADDRESS): Delete.
10378         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
10379         (mcore_print_operand): Make static.
10380         (mcore_print_operand_punct_valid_p): New function.
10381         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
10382         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
10383
10384 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10385
10386         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
10387         (print_operand_address): Delete.
10388         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
10389         (PRINT_OPERAND_ADDRESS): Delete.
10390         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
10391         static.
10392         (m68hc11_print_operand): Make static.
10393         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10394
10395 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10396
10397         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
10398         (m32r_print_operand_address): Delete.
10399         * config/m32r/m32r.h (m32r_punct_chars): Delete.
10400         (PRINT_OPERAND): Delete.
10401         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10402         (PRINT_OPERAND_ADDRESS): Delete.
10403         * config/m32r/m32r.c (m32r_punct_chars): Make static.
10404         (m32r_print_operand_address): Make static.
10405         (m32r_print_operand): Make static.
10406         (m32r_print_operand_punct_valid_p): New function.
10407         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
10408         (TARGET_PRINT_OPERAND_ADDRESS): Define.
10409
10410 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10411
10412         * config/iq2000/iq2000-protos.h (print_operand): Delete.
10413         (print_operand_address): Delete.
10414         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
10415         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10416         (PRINT_OPERAND_ADDRESS): Delete.
10417         (iq2000_print_operand_punct): Delete.
10418         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
10419         (iq2000_print_operand_address): Make static.
10420         (iq2000_print_operand): Make static.
10421         (iq2000_print_operand_punct_valid_p): New function.
10422         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
10423         (TARGET_PRINT_OPERAND_ADDRESS): Define.
10424
10425 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10426
10427         * config/frv/frv-protos.h (frv_print_operand): Delete.
10428         (frv_print_operand_address): Delete.
10429         * config/frv/frv.h (PRINT_OPERAND): Delete.
10430         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10431         (PRINT_OPERAND_ADDRESS): Delete.
10432         * config/frv/frv.c (frv_print_operand_address): Make static.
10433         (frv_print_operand): Make static.
10434         (frv_print_operand_punct_valid_p): New function.
10435         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
10436         (TARGET_PRINT_OPERAND_ADDRESS): Define.
10437
10438 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
10439
10440         * tree.h (vec_member): Declare.
10441         * tree.c (vec_member): Define.
10442
10443 2010-06-17  Richard Guenther  <rguenther@suse.de>
10444
10445         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
10446         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
10447
10448 2010-06-17  Richard Guenther  <rguenther@suse.de>
10449
10450         * tree-inline.c (declare_return_variable): Remove bogus code.
10451
10452 2010-06-17  Richard Guenther  <rguenther@suse.de>
10453
10454         * gimplify.c (gimplify_bind_expr): Always promote complex
10455         and vector variables to registers if possible.
10456
10457 2010-06-17  Richard Guenther  <rguenther@suse.de>
10458
10459         * expr.c (get_inner_reference): Use double_int for bit_offset
10460         calculation.
10461
10462 2010-06-16  DJ Delorie  <dj@redhat.com>
10463
10464         * common.opt (-fstrict-volatile-bitfields): new.
10465         * doc/invoke.texi: Document it.
10466         * fold-const.c (optimize_bit_field_compare): For volatile
10467         bitfields, use the field's type to determine the mode, not the
10468         field's size.
10469         * expr.c (expand_assignment): Likewise.
10470         (get_inner_reference): Likewise.
10471         (expand_expr_real_1): Likewise.
10472         * expmed.c (store_fixed_bit_field): Likewise.
10473         (extract_bit_field_1): Likewise.
10474         (extract_fixed_bit_field): Likewise.
10475
10476 2010-06-16  Richard Guenther  <rguenther@suse.de>
10477
10478         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
10479
10480 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
10481
10482         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
10483         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
10484         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
10485         * debug.c: Likewise.
10486         * sdbout.c: Likewise.
10487         * vmsdbgout.c: Likewise.
10488         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
10489         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
10490         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
10491         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
10492         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
10493         * dwarf2out.c (dw_fde_struct): New fields
10494         dw_fde_vms_{end,begin}_prologue.
10495         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
10496         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
10497         (dwarf2out_vms_end_prologue): New function.
10498         (dwarf2out_vms_begin_epilogue): New function.
10499         (dw_val_struct): New value dw_val_class_vms_delta.
10500         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
10501         begin_epilogue for VMS.
10502         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
10503         new static functions.
10504         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
10505         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
10506         static functions.
10507         (print_die): New case dw_val_class_vms_delta.
10508         (attr_checksum): Likewise.
10509         (same_dw_val_p: Likewise.
10510         (size_of_die): Likewise.
10511         (value_format): Likewise.
10512         (output_die): Likewise.
10513         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
10514         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
10515         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
10516         dwarf2out_cfi_begin_epilogue
10517         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
10518
10519 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
10520
10521         * config/cris/cris-protos.h (cris_print_operand): Delete.
10522         (cris_print_operand_address): Delete.
10523         * config/cris/cris.h (PRINT_OPERAND): Delete.
10524         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10525         (PRINT_OPERAND_ADDRESS): Delete.
10526         * config/cris/cris.c (cris_print_operand_address): Make static.
10527         (cris_print_operand): Make static.
10528         (cris_print_operand_punct_valid_p): New function.
10529         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
10530         (TARGET_PRINT_OPERAND_ADDRESS): Define.
10531
10532 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
10533
10534         * config/arm/arm-protos.h (arm_print_operand): Delete.
10535         (arm_print_operand_address): Delete.
10536         * config/arm/arm.h (PRINT_OPERAND): Delete.
10537         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10538         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
10539         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
10540         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
10541         (arm_print_operand): Make static.
10542         (arm_print_operand_punct_valid_p): New function.
10543         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
10544         (TARGET_PRINT_OPERAND_ADDRESS): Define.
10545
10546 2010-06-16  Nick Clifton  <nickc@redhat.com>
10547
10548         * config/rx/constraints.md (NEGint4): New constraint.
10549         * config/rx/rx.md (attr cc): Add set_zsc.
10550         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
10551         initialised.
10552         (cmpsf): Likewise.
10553         (call_internal): Clobber the cc0 register.
10554         (call_value_internal): Likewise.
10555         (cstoresi4): Likewise.
10556         (movsieq): Likewise.
10557         (movsine): Likewise.
10558         (addsi3): Add alternative to handle small negative constants.
10559         (sunsi3): Likewise.
10560         (addsi3): Do not set the O bit in the cc0 register.
10561         (adddi3): Likewise.
10562         (subsi3): Likewise.
10563         (subdi3): Likewise.
10564         (andsi3): Reorder alternatives to prefer shorter forms.
10565         (mulsi3): Likewise.
10566         (iorsi3): Likewise.
10567         (negsi2): Note that the cc0 flags are set.
10568         (rotlsi3): Note that only the Z and S bits are set in cc0.
10569         (lshrsi3): Likewise.
10570         (ashlsi3): Likewise.
10571         (subsf3): Use %Q for the MEM operand.
10572         (fix_truncsfsi2): Likewise.
10573         (floatsisf2): Likewise.
10574         (bitset): Remove early clobber from destination.
10575         (bitset_in_memory): Likewise.
10576         (lrintsf2): Clobber the cc0 register.
10577         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
10578         (rx_print_operand): Handle %N.
10579
10580 2010-06-16  Jan Hubicka  <jh@suse.cz>
10581
10582         * df-core.c (df_compact_blocks): Free problem_temps vector.
10583
10584 2010-06-16  Martin Jambor  <mjambor@suse.cz>
10585
10586         PR tree-optimization/43905
10587         * tree-sra.c: Include tree-inline.h.
10588         (create_abstract_origin): Removed.
10589         (modify_function): Version the call graph node instead of creating
10590         abstract origins and dealing with same_body aliases.
10591         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
10592         function is versionable.
10593         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
10594
10595 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
10596
10597         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
10598         (CHOOSE_DYNAMIC_LINKER): Update.
10599
10600 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
10601
10602         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
10603         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
10604         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
10605         *prefetch_3dnow_rex.
10606
10607 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
10608
10609         * target.h (struct asm_out):Add declare_constant_name field.
10610         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
10611         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
10612         * output.h (default_asm_declare_constant_name): Declare.
10613         (assemble_label): Update prototype.
10614         * varasm.c (assemble_constant_contents): Use
10615         targetm.asm_out.declare_constant_name target hook.
10616         (assemble_label): Add 'file' argument.
10617         (default_asm_declare_constant_name): New function.
10618         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
10619         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
10620         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
10621
10622         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
10623         * config/darwin.c (darwin_asm_declare_constant_name): New function.
10624         (machopic_output_indirection): Update assemble_label argument list.
10625         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
10626         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
10627
10628 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
10629
10630         PR middle-end/44391
10631         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
10632         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
10633
10634 2010-06-15  Richard Guenther  <rguenther@suse.de>
10635
10636         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
10637
10638 2010-06-15  Paul Brook  <paul@codesourcery.com>
10639
10640         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
10641         hard-float ABI.
10642
10643 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
10644
10645         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
10646         don't get a vector type for output.
10647
10648 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
10649
10650         PR fortran/44536
10651         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
10652         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
10653         (LANG_HOOKS_DECLS): Add it.
10654         * gimplify.c (omp_notice_variable): Call
10655         lang_hooks.decls.omp_report_decl.
10656
10657 2010-06-15  Martin Jambor  <mjambor@suse.cz>
10658
10659         PR lto/44464
10660         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
10661         on the newly dead SSA name.
10662
10663 2010-06-15  Alan Modra  <amodra@gmail.com>
10664
10665         * doc/invoke.texi: Add mcmodel to powerpc options.
10666         * configure.ac: Add HAVE_LD_LARGE_TOC test.
10667         * configure: Regenerate.
10668         * config.in: Regenerate.
10669         * config/rs6000/linux64.opt (mcmodel): New.
10670         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
10671         (TARGET_CMODEL, SET_CMODEL): Define.
10672         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
10673         select CMODEL_MEDIUM default.
10674         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
10675         (TARGET_CMODEL): Define default.
10676         * config/rs6000/rs6000.c (cmodel): New variable.
10677         (rs6000_explicit_options): Add cmodel field.
10678         (rs6000_handle_option): Handle -mcmodel.
10679         (create_TOC_reference): Add largetoc_reg param.  Generate high,
10680         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
10681         (rs6000_delegitimize_address): Recognise new toc reference rtl
10682         and minimal-toc rtl.
10683         (rs6000_legitimize_reload_address): Handle new toc references.
10684         (print_operand_address): Handle legitimate_constant_pool_address_p
10685         match before lo_sum.
10686         (rs6000_eliminate_indexed_memrefs): Tidy.
10687         (rs6000_emit_move): Tweak threshold for inlining constants.
10688         Keep rs6000_emit_allocate_stack large stack frame offsets
10689         loaded into r0 inline.
10690         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
10691         (tocrel_base, tocrel_offset): New variables.
10692         (toc_relative_expr_p): Set them here.
10693         (print_operand_address): Skip over any offset on constant pool address.
10694         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
10695         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
10696         (offsettable_ok_by_alignment): New function.
10697         (rs6000_emit_move): Address suitably aligned local symbol_refs
10698         relative to the toc pointer for -mcmodel=medium.
10699         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
10700         strict param.  Allow lo_sum version of addressing.  Verify reg
10701         used for -mminimal-toc and -mcmodel != small.  Update all callers.
10702         * config/rs6000/constraints.md: Update for above change.
10703         * config/rs6000/predicates.md: Likewise.
10704         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
10705         code.
10706         (tls_gd): Split for -mcmodel=medium/large.
10707         (tls_gd_high, tls_gd_low): New.
10708         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
10709         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
10710         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
10711         (largetoc_high, largetoc_low): New.
10712         (cmptf_internal2): Add clobber.
10713         * config/rs6000/rs6000-protos.h: Update.
10714
10715 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
10716
10717         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
10718         true if no prefetch is going to be generated for a given group.
10719         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
10720         estimate the prefetch_count.
10721         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
10722         prefetch count by considering the unroll_factor and prefetch_mod
10723         for is_loop_prefetching_profitable.
10724
10725 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
10726
10727         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
10728         anything if the argument is not a MEM.
10729
10730 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
10731
10732         PR debug/43650
10733         PR debug/44181
10734         PR debug/44247
10735         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
10736         debug stmts.
10737         (canonicalize_loop_ivs): Likewise.
10738
10739 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
10740
10741         PR debug/43656
10742         * haifa-sched.c (setup_insn_reg_pressure_info,
10743         update_register_pressure): Reject debug insns.
10744         (ready_sort): Don't setup reg pressure for debug insns.
10745         (schedule_insn): Don't update reg pressure for debug insns.
10746
10747 2010-06-14  Richard Guenther  <rguenther@suse.de>
10748
10749         * lto-streamer.c (cached_bp): Remove.
10750         (bitpack_delete): Likewise.
10751         (bitpack_create): Likewise.
10752         (bp_get_next_word): Likewise.
10753         (bp_pack_value, bp_unpack_value): Move ...
10754         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
10755         Re-implement.
10756         (struct bitpack_d): Likewise.
10757         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
10758         New inline functions.
10759         * lto-streamer-out.c (lto_output_bitpack): Remove.
10760         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
10761         (pack_value_fields): Adjust.
10762         (lto_write_tree): Likewise.
10763         (output_gimple_stmt): Likewise.
10764         (output_function): Likewise.
10765         * lto-streamer-in.c (input_gimple_stmt): Adjust.
10766         (input_function): Likewise.
10767         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
10768         (lto_input_bitpack): Remove.
10769         (lto_materialize_tree): Adjust.
10770         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
10771         * lto-cgraph.c (lto_output_edge): Adjust.
10772         (lto_output_node): Likewise.
10773         (lto_output_varpool_node): Likewise.
10774         (lto_output_ref): Likewise.
10775         (input_node): Likewise.
10776         (input_varpool_node): Likewise.
10777         (input_ref): Likewise.
10778         (input_edge): Likewise.
10779         (output_node_opt_summary): Likewise.
10780         (input_node_opt_summary): Likewise.
10781         * ipa-pure-const.c (pure_const_write_summary): Likewise.
10782         (pure_const_read_summary): Likewise.
10783         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
10784         (ipa_read_indirect_edge_info): Likewise.
10785         (ipa_write_node_info): Likewise.
10786         (ipa_read_node_info): Likewise.
10787
10788 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
10789
10790         PR target/44534
10791         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
10792         (vec_extract_lo_v16hi): Likewise.
10793         (vec_extract_lo_v32qi): Likewise.
10794
10795 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
10796
10797         PR bootstrap/44426
10798         * tree.h (build_call_expr): Don't define as vararg macro, instead
10799         add a prototype.
10800         * builtins.c (build_call_nofold): Remove.
10801         (expand_builtin_int_roundingfn, expand_builtin_pow,
10802         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
10803         expand_builtin_memset_args, expand_builtin_strcmp,
10804         expand_builtin_strncmp, expand_builtin_memory_chk): Use
10805         build_call_nofold_loc instead of build_call_nofold.
10806         (build_call_expr): New function.
10807
10808         PR tree-optimization/44508
10809         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
10810         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
10811         don't eliminate trivially dead stmts.
10812         * tree-vrp.c (vrp_finalize): Pass false as last argument
10813         to substitute_and_fold.
10814         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
10815         to substitute_and_fold.
10816         * tree-ssa-ccp.c (ccp_finalize): Likewise.
10817
10818         PR bootstrap/44509
10819         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
10820
10821 2010-06-14  Ira Rosen  <irar@il.ibm.com>
10822
10823         PR tree-optimization/44507
10824         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
10825         to build initial vector for BIT_AND_EXPR.
10826         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
10827
10828 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
10829
10830         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
10831         adjust z10prop set_attr.
10832
10833 2010-06-13  Jan Hubicka  <jh@suse.cz>
10834
10835         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
10836         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
10837         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
10838         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
10839         datastructure checks into checking asserts.
10840         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
10841         * tree-ssa-sccvn.c (VN_INFO): Likewise.
10842         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
10843         df_ref_create_structure): Likewise.
10844         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
10845         pool_free): Use gcc_checking_assert.
10846         * alias.c (get_alias_set): Likewise.
10847         * var-tracking.c (variable_htab_free, shared_hash_copy,
10848         canonicalize_values_mark, variable_merge_over_cur): Likewise.
10849         * lto-streamer.c (bp_unpack_value): Likewise.
10850
10851 2010-06-13  Richard Guenther  <rguenther@suse.de>
10852
10853         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
10854         Do not stream but initialize TYPE_CANONICAL to NULL.
10855         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
10856         * gimple.c (gimple_types_compatible_p): Disregard
10857         TYPE_STRUCTURAL_EQUALITY_P.
10858         (gimple_register_type): Use TYPE_CANONICAL as cache.
10859         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
10860         before registering common types.
10861         * config/i386/i386.c (ix86_function_arg_boundary): Do not
10862         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
10863         * tree.h (TYPE_CANONICAL): Clarify documentation.
10864
10865 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
10866
10867         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
10868         LIBCALL_VALUE): Remove macros.
10869         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
10870         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10871         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10872         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
10873         (ia64_function_value): Make static. Handle receiving the function
10874         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
10875
10876 2010-06-12  Jan Hubicka  <jh@suse.cz>
10877
10878         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
10879         at correct place.
10880
10881 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
10882
10883         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
10884
10885 2010-06-12  Jan Hubicka  <jh@suse.cz>
10886
10887         * df-core.c (df_clear_bb_info): New function.
10888         (df_set_blocks): bb_info is always allocated.
10889         (df_get_bb_info): Use block_info_elt_size.
10890         (df_set_bb_info): Likewise.
10891         (df_compact_blocks): Update for new block_info.
10892         (grow_bb_info): New function.
10893         * df-problems.c (df_grow_bb_info): Move to df-core.c
10894         (df_rd_set_bb_info): Remove.
10895         (df_rd_free_bb_info): Do not free block pool.
10896         (df_rd_alloc): Do not create pool, use check for
10897         obstack presence instead of NULL pointer for new blocks.
10898         (df_rd_free): DO not free alloc pool; clear block_info.
10899         (problem_RD): Add size of block info structure.
10900         (df_lr_set_bb_info): Remove.
10901         (df_lr_free_bb_info): Do not free block pool.
10902         (df_lr_alloc): Do not create pool, use check for
10903         obstack presence instead of NULL pointer for new blocks.
10904         (df_lr_free): DO not free alloc pool; clear block_info.
10905         (problem_LR): Add size of block info structure.
10906         (df_live_set_bb_info): Remove.
10907         (df_live_free_bb_info): Do not free block pool.
10908         (df_live_alloc): Do not create pool, use check for
10909         obstack presence instead of NULL pointer for new blocks.
10910         (df_live_free): DO not free alloc pool; clear block_info.
10911         (problem_LIVE): Add size of block info structure.
10912         (problem_CHAIN): Add size of block info structure.
10913         (df_byte_lr_set_bb_info): Remove.
10914         (df_byte_lr_free_bb_info): Do not free block pool.
10915         (df_byte_lr_alloc): Do not create pool, use check for
10916         obstack presence instead of NULL pointer for new blocks.
10917         (df_byte_lr_free): DO not free alloc pool; clear block_info.
10918         (problem_BYTE_LR): Add size of block info structure.
10919         (problem_NOTE): Add size of block info structure.
10920         (df_byte_MD_set_bb_info): Remove.
10921         (df_byte_MD_free_bb_info): Do not free block pool.
10922         (df_byte_MD_alloc): Do not create pool, use check for
10923         obstack presence instead of NULL pointer for new blocks.
10924         (df_byte_MD_free): DO not free alloc pool; clear block_info.
10925         (problem_BD): Add size of block info structure.
10926         * df-scan.c (df_scan_free_internal): Free block pool.
10927         (df_scan_set_bb_info): Remove.
10928         (df_scan_free_bb_info): Check for artificial_defs instead
10929         of bb_info being non-NULL.
10930         (df_scan_alloc): DO not create df_scan_block pool.
10931         (problem_SCAN): Set size of block info.
10932         (df_bb_refs_record): Do not allocate bb_info.
10933         * df.h (df_problem): Add block_info_elt_size.
10934         (struct dataflow): Change block_info to void *.
10935         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
10936         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
10937         in-line structures.
10938
10939 2010-06-12  Jan Hubicka  <jh@suse.cz>
10940
10941         PR tree-optimize/44485
10942         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
10943         containing use of return value of noreturn function.
10944
10945 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
10946
10947         * targhooks.c (default_function_value): Don't use
10948         FUNCTION_OUTGOING_VALUE.
10949         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
10950         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
10951
10952 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
10953
10954         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
10955         Add crtfastmath.o to extra_parts.
10956         * config/mips/crtfastmath.c: New.
10957         * config/mips/linux.h (ENDFILE_SPEC): New.
10958
10959 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
10960
10961         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
10962         old_type in parameter.
10963         (gcc_type_for_value): Update call to gcc_type_for_interval.
10964         (compute_type_for_level_1): Renamed compute_type_for_level.
10965         Update call to gcc_type_for_interval.
10966
10967 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
10968
10969         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
10970         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
10971
10972 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
10973
10974         * opts-common.c: Include options.h.
10975         (integral_argument): Move from opts.c.
10976         (decode_cmdline_option): New.  Based on read_cmdline_option.
10977         * opts.c (integral_argument): Move to opts-common.c.
10978         (read_cmdline_option): Move most contents to
10979         decode_cmdline_option.  Use %qs in diagnostics.
10980         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
10981         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
10982         decode_cmdline_option): New.
10983
10984 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
10985
10986         PR target/44481
10987         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
10988         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
10989         (partiysi2_cmp): Ditto.
10990         (*partiyhi2_cmp): Ditto.
10991         (*parityqi2_cmp): Remove.
10992
10993 2010-06-11  Jan Hubicka  <jh@suse.cz>
10994
10995         * bitmap.h (bmp_iter_next_bit): New.
10996         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
10997
10998 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
10999             Eric Botcazou  <ebotcazou@adacore.com>
11000
11001         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
11002         computed cost.
11003
11004 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
11005
11006         * config/i386/i386.md (unspec): New define_c_enum.
11007         (unspecv): Ditto.
11008
11009 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
11010
11011         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
11012
11013 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
11014
11015         PR middle-end/44483
11016         * tree-if-conv.c (bb_predicate_s): New struct.
11017         (bb_predicate_p): New.
11018         (bb_has_predicate): New.
11019         (bb_predicate): New.
11020         (set_bb_predicate): New.
11021         (bb_predicate_gimplified_stmts): New.
11022         (set_bb_predicate_gimplified_stmts): New.
11023         (add_bb_predicate_gimplified_stmts): New.
11024         (init_bb_predicate): New.
11025         (free_bb_predicate): New.
11026         (is_predicated): Use bb_predicate.
11027         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
11028         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
11029         before processing their successors.
11030         (clean_predicate_lists): Removed.
11031         (find_phi_replacement_condition): Use bb_predicate.
11032         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
11033         computations.
11034         (insert_gimplified_predicates): New.
11035         (combine_blocks): Call insert_gimplified_predicates.
11036         (tree_if_conversion): Call free_bb_predicate instead of
11037         clean_predicate_lists.
11038
11039 2010-10-11  Paul Brook  <paul@codesourcery.com>
11040
11041         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
11042         * config/arm/arm.c (all_architectures): Change v7e-m default to
11043         cortexm4.
11044         * config/arm/arm-cores.def: Add cortex-m4.
11045         * config/arm/arm-tune.md: Regenerate.
11046
11047 2010-06-11  Jan Hubicka  <jh@suse.cz>
11048
11049         * ipa-pure-const.c (special_builtlin_state): New function.
11050         (check_call): Use it instead of special casign BUILT_IN_RETURN.
11051         (propagate_pure_const): Use it.
11052
11053 2010-06-11  Jan Hubicka  <jh@suse.cz>
11054
11055         * df-problems.c (df_live_scratch): Convert to bitmap_head.
11056         (df_live_alloc): Initialize df_live_scratch when initializing
11057         problem_data.
11058         (df_live_transfer_function): Update uses of df_live_scratch.
11059         (df_live_free): Free problem_data; clear df_live_scratch before
11060         releasing the obstack.
11061         (df_md_free): Free problem data.
11062
11063 2010-06-11  Jan Hubicka  <jh@suse.cz>
11064
11065         * doc/invoke.texi (Wsuggest-attribute): Document.
11066         (Wmissing-noreturn): Remove.
11067         * ipa-pure-const.c (warn_function_noreturn): New function.
11068         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
11069         warn_missing_noreturn.
11070         * common.opt (Wsuggest-attribute=noreturn): New.
11071         * tree-flow.h (warn_function_noreturn): Declare.
11072         * tree-cfg.c (execute_warn_function_noreturn): Use
11073         warn_function_noreturn.
11074         (gate_warn_function_noreturn): New.
11075         (pass_warn_function_noreturn): Update.
11076
11077 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11078
11079         * c-typeck.c (handle_warn_cast_qual): Add loc
11080         parameter. Improve warning message.
11081         (build_c_cast): Pass location to handle_warn_cast_qual.
11082
11083 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
11084
11085         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
11086         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
11087         insn mnemonic.
11088         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
11089
11090 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
11091
11092         Fix bootstap on mips
11093         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
11094         be naming typedefs.
11095
11096 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
11097
11098         * system.h (helper_const_non_const_cast): New inline for
11099         gcc version <= 4.0.
11100         (CONST_CAST2): For gcc version <= 4.0 use
11101         new helper to do const/non-const casting.
11102
11103 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11104
11105         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
11106         * Makefile.in (OBJS-common): Include insn-enums.o.
11107         (insn-enums.o): New rule.
11108         (simple_generated_c): Add insn-enums.c.
11109         (build/genenums.o): New rule.
11110         (genprogmd): Add "enums".
11111         * genconstants.c (print_enum_type): Declare a C string array
11112         for each enum.
11113         * genenums.c: New file.
11114         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
11115         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
11116         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
11117
11118 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11119
11120         * doc/md.texi (define_enum_attr): Document.
11121         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
11122         * read-md.h (lookup_enum_type): Declare.
11123         * read-md.c (lookup_enum_type): New function.
11124         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
11125         * genattrtab.c (attr_desc): Add an enum_name field.
11126         (evaluate_eq_attr): Take the associated attribute as argument.
11127         Get the enum prefix from the enum_name field, if defined.
11128         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
11129         (simplify_test_exp): Pass attr to evaluate_eq_attr.
11130         (add_attr_value): New function, split out from...
11131         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
11132         (write_test_expr): Pass attr to evaluate_eq_attr.
11133         (write_attr_get): Use the enum_name as the enum tag, if defined.
11134         (write_attr_valueq): Use the enum_name as a prefix, if defined.
11135         (find_attr): Initialize enum_name.
11136         (main): Handle DEFINE_ENUM_ATTR.
11137         * gensupport.c (process_rtx): Likewise.
11138         * config/mips/mips.h (mips_tune_attr): Delete.
11139         * config/mips/mips.md (cpu): Use define_attr_enum.
11140
11141 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11142
11143         * doc/md.texi (define_c_enum, define_enum): Document.
11144         * read-md.h (md_constant): Add a parent_enum field.
11145         (enum_value, enum_type): New structures.
11146         (upcase_string, traverse_enum_types): Declare.
11147         * read-md.c (enum_types): New variable.
11148         (upcase_string, add_constant): New functions.
11149         (handle_constants): Don't create the hash table here.
11150         Use add_constant.
11151         (traverse_md_constants): Don't check for a null md_constants.
11152         (decimal_string, handle_enum, traverse_enum_types): New functions.
11153         (read_md_files): Initialize md_constants and md_enums.
11154         * genconstants.c (print_md_constant): Ignore info argument.
11155         Only print constants that belong to no enum.
11156         (print_enum_type): New function.
11157         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
11158         for each defined enum type.
11159         * config/mips/mips.md (processor): New define_enum.
11160         (unspec): New define_c_enum.
11161         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
11162         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
11163         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
11164         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
11165         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
11166         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
11167         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
11168         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
11169         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
11170         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
11171         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
11172         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
11173         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
11174         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
11175         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
11176         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
11177         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
11178         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
11179         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
11180         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
11181         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
11182         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
11183         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
11184         (UNSPEC_RDDSP): Move to mips-dsp.md.
11185         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
11186         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
11187         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
11188         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
11189         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
11190         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
11191         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
11192         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
11193         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
11194         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
11195         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
11196         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
11197         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
11198         Moved to mips-dspr2.md.
11199         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
11200         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
11201         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
11202         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
11203         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
11204         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
11205         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
11206         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
11207         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
11208         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
11209         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
11210         UNSPEC_LOONGSON_PSADBH)
11211         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
11212         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
11213         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
11214         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
11215         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
11216         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
11217         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
11218         (cpu): Update comment.
11219         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
11220         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
11221         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
11222         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
11223         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
11224         UNSPEC_LOONGSON_PCMPEQ)
11225         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
11226         UNSPEC_LOONGSON_PINSR_0)
11227         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
11228         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
11229         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
11230         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
11231         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
11232         UNSPEC_LOONGSON_PSADBH)
11233         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
11234         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
11235         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
11236         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
11237         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
11238         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
11239         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
11240         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
11241         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
11242         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
11243         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
11244         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
11245         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
11246         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
11247         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
11248         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
11249         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
11250         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
11251         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
11252         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
11253         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
11254         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
11255         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
11256         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
11257         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
11258         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
11259         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
11260         (UNSPEC_RDDSP): Moved from mips.md.
11261         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
11262         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
11263         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
11264         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
11265         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
11266         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
11267         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
11268         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
11269         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
11270         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
11271         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
11272         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
11273         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
11274         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
11275         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
11276         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
11277         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
11278         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
11279         (UNSPEC_SCC): Moved from mips.md.
11280         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
11281         "processor_type" to "processor".
11282         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
11283         * config/mips/mips.h (processor_type): Delete.
11284         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
11285         "processor_type" to "processor".
11286
11287 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11288
11289         * configure.ac (tm_include_list): Add insn-constants.h.
11290         * configure: Regenerate.
11291         * Makefile.in (GTM_H): Move insn-constants.h here from...
11292         (TM_H): ...here.
11293         * mkconfig.sh: Remove special handling for insn-constants.h.
11294
11295 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11296
11297         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
11298         (BUILD_MD): ...this new variable.
11299         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
11300         that include the old contents of simple_generated_h and
11301         simple_generated_c.
11302         (simple_generated_h, simple_generated_c): Include them.  Add
11303         insn-constants.h.
11304         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
11305         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
11306         Remove these dependencies from the main rule and include
11307         insn-conditions.md in the command line only if it appears
11308         in the dependency list.
11309         (insn-constants.h, s-constants): Delete.
11310         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
11311         or gensupport.h.
11312         (build/genmddeps.o): Likewise.
11313         (genprogrtl): New variable that contains everything from genprogmd
11314         except mddeps and constants.
11315         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
11316         depend on $(BUILD_MD)
11317         (genprog): New variable.  Make these programs depend on
11318         $(BUILD_ERRORS).
11319         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
11320         (main): Use read_md_files instead of init_rtx_reader_args.
11321         * genconstants.c: As for genmddeps.c.
11322         * read-md.h (read_skip_construct): Declare.
11323         * read-md.c (read_skip_construct): New function.
11324         (handle_file): Allow a null handle_directive, skipping the
11325         construct if so.
11326         (parse_include): Update the comment accordingly.
11327
11328 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11329
11330         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
11331         * genmddeps.c: Include read-md.h.
11332         (main): Call init_rtx_reader_args instead of init_md_reader_args.
11333         * genattr.c (main): Likewise.
11334         * genattrtab.c (main): Likewise.
11335         * genautomata.c (main): Likewise.
11336         * gencodes.c (main): Likewise.
11337         * genconditions.c (main): Likewise.
11338         * genconfig.c (main): Likewise.
11339         * genconstants.c (main): Likewise.
11340         * genemit.c (main): Likewise.
11341         * genextract.c (main): Likewise.
11342         * genflags.c (main): Likewise.
11343         * genopinit.c (main): Likewise.
11344         * genoutput.c (main): Likewise.
11345         * genpeep.c (main): Likewise.
11346         * genrecog.c (main): Likewise.
11347         * genpreds.c (main): Likewise.
11348         * gensupport.h (in_fname): Move to read-md.h.
11349         (init_md_reader_args_cb): Rename to...
11350         (init_rtx_reader_args_cb): ...this and return a bool.
11351         (init_md_reader_args): Rename to...
11352         (init_rtx_reader_args): ...this and return a bool.
11353         (include_callback): Move to read-md.h.
11354         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
11355         (file_name_list, first_dir_md_include): Move to read-md.c
11356         (first_bracket_include): Delete unused variable.
11357         (last_dir_md_include): Move to read-md.c.
11358         (process_include): Delete, moving code to read-md.c:handle_include.
11359         (process_rtx): Don't handle INCLUDE.
11360         (save_string): Delete.
11361         (rtx_handle_directive): New function.
11362         (init_md_reader_args_cb): Rename to...
11363         (init_rtx_reader_args_cb): ...this and return a boolean success value.
11364         Use read_md_args.
11365         (init_md_reader_args): Rename to...
11366         (init_rtx_reader_args): ...this and return a boolean success value.
11367         * rtl.def (INCLUDE): Delete.
11368         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
11369         argument.
11370         * read-rtl.c (read_conditions): Don't gobble ')' here.
11371         (read_mapping): Likewise.
11372         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
11373         Handle top-level non-rtx constructs here rather than in read_rtx_1.
11374         Store the whole queue in *X.  Remove call to init_md_reader.
11375         (read_rtx_1): Rename to...
11376         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
11377         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
11378         here.
11379         (read_nested_rtx): New function.  Handle (nil) here rather than
11380         in read_rtx_code.
11381         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
11382         gobble ')' here.
11383         * read-md.h (directive_handler_t): New type.
11384         (in_fname, include_callback): Moved from read-md.h.
11385         (read_constants, init_md_reader): Delete.
11386         (read_md_files): Declare.
11387         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
11388         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
11389         from gensupport.c.
11390         (read_constants): Rename to...
11391         (handle_constants): ...this.  Don't gobble ')' here.
11392         (handle_include, handle_file, handle_toplevel_file)
11393         (parse_include): New functions, mostly taken from gensupport.c.
11394         (init_md_reader): Subsume into...
11395         (read_md_files): ...this new function.
11396
11397 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11398
11399         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
11400         (unread_char): Decrement read_md_lineno after putting back '\n'.
11401         * read-md.c (fatal_with_file_and_line): Push back any characters
11402         that we decide not to add to the context.
11403         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
11404         fatal_expected_char in cases where '/' ends a line (for example).
11405         (read_name): Don't increment read_md_lineno here.
11406         (read_escape): Likewise.
11407         (read_quoted_string): Likewise.
11408         (read_braced_string): Likewise.
11409
11410 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11411
11412         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
11413         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
11414         * genconstants.c: Include read-md.h.
11415         * read-rtl.c (md_constants): Move to read-md.c.
11416         (md_name): Move to read-md.h.
11417         (initialize_iterators): Use leading_string_hash instead of def_hash
11418         and leading_string_eq_p instead of def_name_eq_p.
11419         (read_name): Move to read-md.c.
11420         (def_hash, def_name_eq_p): Delete.
11421         (read_constants, traverse_md_constants): Move to read-md.c.
11422         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
11423         * read-md.h: Include hashtab.h.
11424         (md_name): Moved from read-rtl.c.
11425         (md_constant): Moved from read-md.h.
11426         (leading_string_hash, leading_string_eq_p, read_name)
11427         (read_constants, traverse_md_constants): Declare.
11428         * read-md.c (md_constants): Moved from read-rtl.c.
11429         (leading_string_hash, leading_string_eq_p): New functions.
11430         (read_name, read_constants, traverse_md_constants): Moved from
11431         read-rtl.c.
11432
11433 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11434
11435         * read-rtl.c (md_name): New structure.
11436         (read_name): Take an md_name instead of a buffer pointer.
11437         Use the "string" field instead of strcpy when expanding constants.
11438         (read_constants): Remove the tmp_char argument.  Update the calls
11439         to read_name, using two local name buffers instead of the tmp_char
11440         argument.  Merge the constant-creation code.
11441         (read_conditions): Remove the tmp_char argument.  Update the calls
11442         to read_name, using a local name buffer instead of the tmp_char
11443         argument.
11444         (read_mapping): Replace tmp_char variable with a local name buffer.
11445         Update the calls to read_name.
11446         (read_rtx_1): Likewise.  Update the calls to read_constants and
11447         read_conditions.
11448
11449 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11450
11451         * Makefile.in (build/read-md.o): Depend on errors.h.
11452         * read-md.h (error_with_line): Declare.
11453         * read-md.c: Include errors.h.
11454         (message_with_line_1): New function, extracted from...
11455         (message_with_line): ...here.
11456         (error_with_line): New function.
11457         * genattrtab.c: If a call to message_with_line is followed by
11458         "have_error = 1;", replace both statements with a call to
11459         error_with_line.
11460         * genoutput.c: Likewise.
11461         * genpreds.c: Likewise.
11462         * genrecog.c: If a call to message_with_line is followed by
11463         "error_count++;", replace both statements with a call to
11464         error_with_line.
11465         (errorcount): Delete.
11466         (main): Don't check it.
11467         * gensupport.c: If a call to message_with_line is followed by
11468         "errors = 1;", replace both statements with a call to error_with_line.
11469         (errors): Delete.
11470         (process_define_cond_exec): Check have_error instead of errors.
11471         (init_md_reader_args_cb): Likewise.  Don't set errors.
11472
11473 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11474
11475         * read-md.h (read_md_file): Declare.
11476         (read_char, unread_char): New functions.
11477         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
11478         (read_quoted_string, read_string): Remove FILE * argument.
11479         * read-md.c (read_md_file): New variable.
11480         (read_md_filename, read_md_lineno): Update comments and remove
11481         unnecessary initialization.
11482         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
11483         (read_escape, read_quoted_string, read_braced_string, read_string):
11484         Remove FILE * argument.  Update calls accordingly, using read_char
11485         and unread_char instead of getc and ungetc.
11486         * rtl.h (read_rtx): Remove FILE * argument.
11487         * read-rtl.c (iterator_group): Remove FILE * argument from
11488         "find_builtin".
11489         (iterator_traverse_data): Remove "infile" field.
11490         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
11491         (add_mapping, read_name, read_constants, read_conditions)
11492         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
11493         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
11494         Remove file arguments from all calls, using read_char and unread_char
11495         instead of getc and ungetc.
11496         * gensupport.c (process_include): Preserve read_md_file around
11497         the include.  Set read_md_file to the handle of the included file.
11498         Update call to read_rtx.
11499         (init_md_reader_args_cb): Set read_md_file to the handle of the file
11500         and remove local FILE *.  Update calls to read_rtx.
11501
11502 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11503
11504         * read-md.h (read_rtx_lineno): Rename to...
11505         (read_md_lineno): ...this.
11506         (read_rtx_filename): Rename to...
11507         (read_md_filename): ...this.
11508         (copy_rtx_ptr_loc): Rename to...
11509         (copy_md_ptr_loc): ...this.
11510         (print_rtx_ptr_loc): Rename to...
11511         (print_md_ptr_loc): ...this.
11512         * read-md.c: Likewise.  Update references after renaming.
11513         (string_obstack): Replace RTL with MD in comment.
11514         (set_rtx_ptr_loc): Rename to...
11515         (set_md_ptr_loc): ...this.
11516         (get_rtx_ptr_loc): Rename to...
11517         (get_md_ptr_loc): ...this.
11518         * genconditions.c: Update references after renaming.
11519         * genemit.c: Likewise.
11520         * genoutput.c: Likewise.
11521         * genpreds.c: Likewise.
11522         * gensupport.c: Likewise.
11523         * read-rtl.c: Likewise.
11524
11525 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
11526
11527         * Makefile.in (READ_MD_H): New variable.
11528         (BUILD_RTL): Add build/read-md.o.
11529         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
11530         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
11531         (build/genattrtab.o, build/genconditions.o build/genemit.o)
11532         (build/genextract.o, build/genflags.o, build/genoutput.o)
11533         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
11534         (build/read-md.o): New rule.
11535         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
11536         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
11537         * coretypes.h: ...here.
11538         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
11539         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
11540         * genattr.c: Include read-md.h.
11541         * genattrtab.c: Likewise.
11542         * genconditions.c: Likewise.
11543         * genemit.c: Likewise.
11544         * genextract.c: Likewise.
11545         * genflags.c: Likewise.
11546         * genoutput.c: Likewise.
11547         * genpreds.c: Likewise.
11548         * genrecog.c: Likewise.
11549         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
11550         (join_c_conditions, print_c_condition, read_rtx_filename)
11551         (read_rtx_lineno): Move to read-md.h.
11552         * read-rtl.c: Include read-md.h.
11553         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
11554         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
11555         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
11556         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
11557         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
11558         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
11559         (read_braced_string, read_string): Move to read-md.c.
11560         (read_rtx): Move some initialization to init_md_reader and call
11561         init_md_reader here.
11562         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
11563         Move to read-md.h.
11564         * gensupport.c: Include read-md.h.
11565         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
11566         * read-md.h, read-md.c: New files.
11567
11568 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
11569
11570         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
11571         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11572         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
11573         * config/moxie/moxie.c (moxie_function_value): Make static.
11574         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
11575         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11576
11577 2010-06-10  Martin Jambor  <mjambor@suse.cz>
11578
11579         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
11580         * dbgcnt.def (tree_sra): New counter.
11581         * tree-sra.c: Include dbgcnt.h.
11582         (gate_intra_sra): Check tree_sra debug counter.
11583
11584 2010-06-10  Martin Jambor  <mjambor@suse.cz>
11585
11586         PR tree-optimization/44258
11587         * tree-sra.c (build_access_subtree): Return false iff there is a
11588         partial overlap.
11589         (build_access_trees): Likewise.
11590         (analyze_all_variable_accesses): Disqualify candidates if
11591         build_access_trees returns true for them.
11592
11593 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
11594
11595         PR debug/41371
11596         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
11597         tail-recurse into canonical node.  Fast-forward over
11598         non-canonical VALUEs.
11599
11600 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
11601
11602         PR boostrap/44470
11603         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
11604         (*addsi_1_zext) <TYPE_LEA>: Likewise.
11605         (add lea splitter): Likewise.
11606         (add_zext lea splitter): Likewise.
11607
11608 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
11609
11610         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
11611
11612 2010-06-10  Jan Hubicka  <jh@suse.cz>
11613
11614         * df-problems.c (df_live_problem_data): Add live_bitmaps.
11615         (df_live_alloc): Initialize problem data and live_osbtacks.
11616         (df_live_finalize): Remove obstack, problem data; do not
11617         clear all bitmaps.
11618         (df_live_top_dump, df_live_bottom_dump): Do not dump old
11619         data when not allocated.
11620         (df_live_verify_solution_start): Do not allocate problem data.
11621         (df_live_verify_solution_end): Check if out is allocated.
11622         (struct df_md_problem_data): New structure.
11623         (df_md_alloc): Allocate problem data.
11624         (df_md_free): Free problem data; do not clear bitmaps.
11625
11626 2010-06-10  Jan Beulich  <jbeulich@novell.com>
11627
11628         PR bootstrap/37304
11629         * configure.ac: Replace $() with ${} when intending to expand
11630         variables rather than invoking commands.
11631         * configure: Re-generate.
11632
11633 2010-06-10  Jan Hubicka  <jh@suse.cz>
11634
11635         PR rtl-optimization/44460
11636         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
11637         TYPE_NEEDS_CONSTRUCTING sanity check.
11638
11639 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
11640
11641         * doc/include/fdl.texi: Move to GFDL version 1.3.
11642
11643         * doc/cpp.texi: Move to GFDL version 1.3.
11644         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
11645         * doc/gccint.texi: Move to GFDL version 1.3.
11646         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
11647         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
11648         * doc/invoke.texi: Move to GFDL version 1.3.
11649
11650 2010-06-09  Jan Hubicka  <jh@suse.cz>
11651
11652         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
11653         Break out from ...
11654         (propagate) ... here; swap the order.
11655
11656 2010-06-09  Jan Hubicka  <jh@suse.cz>
11657
11658         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
11659         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
11660         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
11661         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
11662
11663 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
11664
11665         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
11666         Do not the gather memory reference in the outer loop if the step
11667         is not a constant.
11668
11669 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
11670
11671         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
11672         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
11673         8 to 4.  Minor change of the related comments.
11674
11675 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
11676
11677         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
11678         the scev analysis when the variable is not used outside the loop
11679         in a close phi node: call compute_overall_effect_of_inner_loop.
11680
11681 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
11682
11683         * graphite-sese-to-poly.c (single_pred_cond): Renamed
11684         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
11685         (build_sese_conditions_before): Renamed call to single_pred_cond.
11686         (build_sese_conditions_after): Same.
11687
11688 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
11689
11690         * graphite-poly.h: Fix comments and indentation.
11691         * graphite-sese-to-poly.c: Same.
11692         (build_sese_conditions_before): Compute stmt and gbb only when needed.
11693         * tree-chrec.c: Fix comments and indentation.
11694         (tree-ssa-loop-niter.c): Same.
11695
11696 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
11697
11698         PR rtl-optimization/42461
11699         * dce.c (deletable_insn_p): Return true for const or pure calls again.
11700         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
11701
11702 2010-06-09  Jan Hubicka  <jh@suse.cz>
11703
11704         * bitmap.c (bitmap_and): Walk array forward.
11705         (bitmap_and_compl_into): Likewise.
11706         (bitmap_xor): Likewise.
11707         (bitmap_xor_into):  Likewise.
11708         (bitmap_equal_p): Likewise.
11709         (bitmap_intersect_p): Likewise.
11710         (bitmap_intersect_compl_p): Likewise.
11711         (bitmap_ior_and_into): Likewise.
11712         (bitmap_elt_copy): Likewise.
11713         (bitmap_and_compl): Likewise.
11714         (bitmap_elt_ior): Likewise.
11715
11716 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
11717
11718         * opts-common.c (prune_options): Ensure replacement argv array
11719         is correctly terminated by a NULL entry.
11720
11721 2010-06-09  Jan Hubicka  <jh@suse.cz>
11722
11723         * cgraph.h (varpool_first_static_initializer,
11724         varpool_next_static_initializer): Make checking only when
11725         checking enabled.
11726         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
11727         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
11728         gcc_assert to gcc_checking_assert.
11729         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
11730         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
11731         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
11732         op_iter_init_phiuse, op_iter_init_phidef,
11733         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
11734         gcc_checking_assert.
11735         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
11736         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
11737         partition_is_global, live_on_entry, live_on_exit,
11738         live_merge_and_clear): Likewise.
11739         * system.h (gcc_checking_assert): New macro.
11740         * gimple.h (set_bb_seq): Use gcc_checking_assert.
11741
11742 2010-06-09  Jason Merrill  <jason@redhat.com>
11743
11744         * Makefile.in (TAGS): Collect tags info from c-family.
11745
11746 2010-06-09  Jan Hubicka  <jh@suse.cz>
11747
11748         * gimple.h (gcc_gimple_checking_assert): New macro.
11749         (gimple_set_def_ops, gimple_set_use_ops,
11750         gimple_set_vuse, gimple_set_vdef,
11751         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
11752         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
11753         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
11754         gimple_asm_output_op, gimple_asm_output_op_ptr,
11755         gimple_asm_set_output_op, gimple_asm_clobber_op,
11756         gimple_asm_set_clobber_op, gimple_asm_label_op,
11757         gimple_asm_set_label_op, gimple_try_set_kind,
11758         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
11759         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
11760         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
11761         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
11762         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
11763         gimple_omp_for_set_initial, gimple_omp_for_final,
11764         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
11765         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
11766         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
11767         conditional with ENABLE_GIMPLE_CHECKING.
11768         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
11769
11770 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
11771
11772         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
11773         (get_computation_cost_at): Use it.
11774         (determine_use_iv_cost_condition): Likewise.
11775         (determine_iv_cost): Likewise.
11776
11777 2010-06-09  Richard Guenther  <rguenther@suse.de>
11778
11779         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
11780         replace constants.
11781
11782 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
11783
11784         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
11785
11786 2010-06-09  Martin Jambor  <mjambor@suse.cz>
11787
11788         PR tree-optimization/44423
11789         * tree-sra.c (dump_access): Dump also grp_assignment_read.
11790         (analyze_access_subtree): Pass negative allow_replacements to children
11791         if the current type is scalar.
11792
11793 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
11794
11795         PR testsuite/42843
11796         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
11797         * doc/plugins.texi (Plugin license check): Update information
11798         on type of plugin_is_GPL_compatible.
11799         * Makefile.in (PLUGINCC): Define as $(COMPILER).
11800         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
11801
11802 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
11803
11804         * config/arm/arm.c (thumb2_reorg): New function.
11805         (arm_reorg): Call it.
11806         * config/arm/thumb2.md (define_peephole2 for flag clobbering
11807         arithmetic operations): Delete.
11808
11809 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
11810
11811         PR target/44067
11812         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
11813         e500v2 target.
11814
11815 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
11816
11817         PR plugins/44459
11818         * gcc-plugin.h: Encapsulate all declarations in extern "C".
11819
11820 2010-06-08  Jan Hubicka  <jh@suse.cz>
11821
11822         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
11823         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
11824
11825 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
11826
11827         PR tree-optimization/39874
11828         PR middle-end/28685
11829         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
11830         Declare.
11831         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
11832         same_bool_result_p): New.
11833         (and_var_with_comparison, and_var_with_comparison_1,
11834         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
11835         (or_var_with_comparison, or_var_with_comparison_1,
11836         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
11837         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
11838         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
11839         of combine_comparisons.
11840         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
11841
11842 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
11843
11844         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
11845         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11846         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
11847         pdp11_function_value_regno_p): New functions.
11848         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11849         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11850
11851 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
11852
11853         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
11854         Thumb-2 in the MINUS case.
11855
11856 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11857
11858         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
11859
11860         * doc/gty.texi (GTY Options): Document typed GC allocation and
11861         variable_size GTY option.
11862
11863         * ggc-internal.h: New.
11864
11865         * ggc.h: Update copyright year.
11866         (digit_string): Move to stringpool.c.
11867         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
11868         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
11869         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
11870         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
11871         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
11872         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
11873         (ggc_force_collect, ggc_get_size, ggc_statistics)
11874         (ggc_print_common_statistics): Move to ggc-internal.h.
11875         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
11876         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
11877         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
11878         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
11879         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
11880         (ggc_alloc_zone_pass_stat): Remove.
11881         (ggc_internal_alloc_stat, ggc_internal_alloc)
11882         (ggc_internal_cleared_alloc_stat): New.
11883         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
11884         (ggc_internal_vec_alloc_stat)
11885         (ggc_internal_cleared_vec_alloc_stat)
11886         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
11887         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
11888         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
11889         (ggc_cleared_alloc_ptr_array_two_args): New.
11890         (htab_create_ggc, splay_tree_new_ggc): Redefine.
11891         (ggc_splay_alloc): Change the type of the first argument to
11892         enum gt_types_enum.
11893         (ggc_alloc_string): Make macro.
11894         (ggc_alloc_string_stat): New.
11895         (ggc_strdup): Redefine.
11896         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
11897         (ggc_alloc_rtvec_sized): New.
11898         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
11899         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
11900         (ggc_internal_cleared_alloc_zone_stat)
11901         (ggc_internal_zone_alloc_stat)
11902         (ggc_internal_zone_cleared_alloc_stat)
11903         (ggc_internal_zone_vec_alloc_stat)
11904         (ggc_alloc_zone_rtx_def_stat)
11905         (ggc_alloc_zone_tree_node_stat)
11906         (ggc_alloc_zone_cleared_tree_node_stat)
11907         (ggc_alloc_cleared_gimple_statement_d_stat): New.
11908
11909         * ggc-common.c: Include ggc-internal.h.
11910         (ggc_internal_cleared_alloc_stat): Rename from
11911         ggc_alloc_cleared_stat.
11912         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
11913         (ggc_calloc): Remove.
11914         (ggc_cleared_alloc_htab_ignore_args): New.
11915         (ggc_cleared_alloc_ptr_array_two_args): New.
11916         (ggc_splay_alloc): Add obj_type parameter.
11917         (init_ggc_heuristics): Formatting fixes.
11918
11919         * ggc-none.c: Update copyright year.
11920         (ggc_alloc_stat): Rename to ggc_alloc_stat.
11921         (ggc_alloc_cleared_stat): Rename to
11922         ggc_internal_cleared_alloc_stat.
11923         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
11924
11925         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
11926         Remove references to ggc_alloc in comments.
11927         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
11928         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
11929         (new_ggc_zone, destroy_ggc_zone): Remove.
11930         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
11931
11932         * ggc-zone.c: Include ggc-internal.h.  Remove references to
11933         ggc_alloc in comments.
11934         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
11935         (ggc_internal_alloc_zone_pass_stat): New.
11936         (ggc_internal_cleared_alloc_zone_stat): New.
11937         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
11938         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
11939         (new_ggc_zone, destroy_ggc_zone): Remove.
11940
11941         * stringpool.c: Update copyright year.  Include ggc-internal.h
11942         (digit_vector): Make static.
11943         (digit_string): Moved from ggc.h.
11944         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
11945         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
11946
11947         * Makefile.in (GGC_INTERNAL_H): New.
11948         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
11949         $(GGC_INTERNAL_H) to dependencies.
11950
11951         * gentype.c: Update copyright year.
11952         (walk_type): Accept variable_size GTY option.
11953         (USED_BY_TYPED_GC_P): New macro.
11954         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
11955         whitespace at the end of strings.
11956         (get_type_specifier, variable_size_p): New functions.
11957         (alloc_quantity, alloc_zone): New enums.
11958         (write_typed_alloc_def): New function.
11959         (write_typed_struct_alloc_def): Likewise.
11960         (write_typed_typed_typedef_alloc_def): Likewise.
11961         (write_typed_alloc_defns): Likewise.
11962         (output_typename, write_splay_tree_allocator_def): Likewise.
11963         (write_splay_tree_allocators): Likewise.
11964         (main): Call write_typed_alloc_defns and
11965         write_splay_tree_allocators.
11966
11967         * lto-streamer.h (lto_file_decl_data_ptr): New.
11968
11969         * passes.c (order): Define using cgraph_node_ptr.
11970
11971         * strinpool.c (struct string_pool_data): Declare nested_ptr using
11972         ht_identifier_ptr.
11973
11974         * gimple.h (union gimple_statement_d): Likewise.
11975
11976         * rtl.h (struct rtx_def): Likewise.
11977         (struct rtvec_def): Likewise.
11978
11979         * tree.h (union tree_node): Likewise.
11980
11981         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
11982
11983         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
11984
11985         * tree-scalar-evolution.c (scev_initialize): Likewise.
11986
11987         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
11988
11989         * dwarf2asm.c (dw2_force_const_mem): Likewise.
11990
11991         * omp-low.c (lower_omp_critical): Likewise.
11992
11993         * bitmap.h (struct bitmap_head_def): Update comment to not
11994         reference ggc_alloc.
11995
11996         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
11997
11998         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
11999
12000         * ipa-prop.c (duplicate_ggc_array): Rename to
12001         duplicate_ipa_jump_func_array.  Use typed GC allocation.
12002         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
12003
12004         * gimple.c (gimple_alloc_stat): Use
12005         ggc_alloc_cleared_gimple_statement_d_stat.
12006
12007         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
12008
12009         * tree.c (make_node_stat): Use
12010         ggc_alloc_zone_cleared_tree_node_stat.
12011         (make_tree_vec_stat): Likewise.
12012         (build_vl_exp_stat): Likewise.
12013         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
12014         (make_tree_binfo_stat): Likewise.
12015         (tree_cons_stat): Likewise.
12016
12017         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
12018         (shallow_copy_rtx_stat): Likewise.
12019         (make_node_stat): Likewise.
12020
12021         * lto-symtab.c: Fix comment.
12022
12023         * tree-cfg.c (create_bb): Update comment to not reference
12024         ggc_alloc_cleared.
12025         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
12026
12027         * varpool.c (varpool_node): Use typed GC allocation.
12028         (varpool_extra_name_alias): Likewise.
12029
12030         * varasm.c (emutls_decl): Likewise.
12031         (get_unnamed_section): Likewise.
12032         (get_noswitch_section): Likewise.
12033         (get_section): Likewise.
12034         (get_block_for_section): Likewise.
12035         (build_constant_desc): Likewise.
12036         (create_constant_pool): Likewise.
12037         (force_const_mem): Likewise.
12038
12039         * tree.c (build_vl_exp_stat): Likewise.
12040         (build_real): Likewise.
12041         (build_string): Likewise.
12042         (decl_debug_expr_insert): Likewise.
12043         (decl_value_expr_insert): Likewise.
12044         (type_hash_add): Likewise.
12045         (build_omp_clause): Likewise.
12046
12047         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
12048
12049         * tree-ssa.c (init_tree_ssa): Likewise.
12050
12051         * tree-ssa-structalias.c (heapvar_insert): Likewise.
12052
12053         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
12054
12055         * tree-ssa-loop-niter.c (record_estimate): Likewise.
12056
12057         * tree-ssa-alias.c (get_ptr_info): Likewise.
12058
12059         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
12060
12061         * tree-phinodes.c (allocate_phi_node): Likewise.
12062
12063         * tree-iterator.c (tsi_link_before): Likewise.
12064         (tsi_link_after): Likewise.
12065
12066         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
12067
12068         * tree-dfa.c (create_var_ann): Likewise.
12069
12070         * tree-cfg.c (create_bb): Likewise.
12071
12072         * toplev.c (alloc_for_identifier_to_locale): Likewise.
12073         (general_init): Likewise.
12074
12075         * stringpool.c (stringpool_ggc_alloc): Likewise.
12076         (gt_pch_save_stringpool): Likewise.
12077
12078         * sese.c (if_region_set_false_region): Likewise.
12079
12080         * passes.c (do_per_function_toporder): Likewise.
12081
12082         * optabs.c (set_optab_libfunc): Likewise.
12083         (set_conv_libfunc): Likewise.
12084
12085         * lto-symtab.c (lto_symtab_register_decl): Likewise.
12086
12087         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
12088         (input_eh_region): Likewise.
12089         (input_eh_lp): Likewise.
12090         (make_new_block): Likewise.
12091         (unpack_ts_real_cst_value_fields): Likewise.
12092
12093         * lto-section-in.c (lto_new_in_decl_state): Likewise.
12094
12095         * lto-cgraph.c (input_node_opt_summary): Likewise.
12096
12097         * loop-init.c (loop_optimizer_init): Likewise.
12098
12099         * lambda.h (lambda_vector_new): Likewise.
12100
12101         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
12102
12103         * ira.c (update_equiv_regs): Likewise.
12104
12105         * ipa.c (cgraph_node_set_new): Likewise.
12106         (cgraph_node_set_add): Likewise.
12107         (varpool_node_set_new): Likewise.
12108         (varpool_node_set_add): Likewise.
12109
12110         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
12111         (duplicate_ipa_jump_func_array): Likewise.
12112         (ipa_read_node_info): Likewise.
12113
12114         * ipa-cp.c (ipcp_create_replace_map): Likewise.
12115
12116         * integrate.c (get_hard_reg_initial_val): Likewise.
12117
12118         * gimple.c (gimple_alloc_stat): Likewise.
12119         (gimple_build_omp_for): Likewise.
12120         (gimple_seq_alloc): Likewise.
12121         (gimple_copy): Likewise.
12122
12123         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
12124         (gsi_insert_after_without_update): Likewise.
12125
12126         * function.c (add_frame_space): Likewise.
12127         (insert_temp_slot_address): Likewise.
12128         (assign_stack_temp_for_type): Likewise.
12129         (allocate_struct_function): Likewise.
12130         (types_used_by_var_decl_insert): Likewise.
12131
12132         * except.c (init_eh_for_function): Likewise.
12133         (gen_eh_region): Likewise.
12134         (gen_eh_region_catch): Likewise.
12135         (gen_eh_landing_pad): Likewise.
12136         (add_call_site): Likewise.
12137
12138         * emit-rtl.c (get_mem_attrs): Likewise.
12139         (get_reg_attrs): Likewise.
12140         (start_sequence): Likewise.
12141         (init_emit): Likewise.
12142
12143         * dwarf2out.c (new_cfi): Likewise.
12144         (queue_reg_save): Likewise.
12145         (dwarf2out_frame_init): Likewise.
12146         (new_loc_descr): Likewise.
12147         (find_AT_string): Likewise.
12148         (new_die): Likewise.
12149         (add_var_loc_to_decl): Likewise.
12150         (clone_die): Likewise.
12151         (clone_as_declaration): Likewise.
12152         (break_out_comdat_types): Likewise.
12153         (new_loc_list): Likewise.
12154         (loc_descriptor): Likewise.
12155         (add_loc_descr_to_each): Likewise.
12156         (add_const_value_attribute): Likewise.
12157         (tree_add_const_value_attribute): Likewise.
12158         (add_comp_dir_attribute): Likewise.
12159         (add_name_and_src_coords_attributes): Likewise.
12160         (lookup_filename): Likewise.
12161         (store_vcall_insn): Likewise.
12162         (dwarf2out_init): Likewise.
12163
12164         * dbxout.c (dbxout_init): Likewise.
12165
12166         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
12167
12168         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
12169
12170         * config/score/score7.c (score7_output_external): Likewise.
12171
12172         * config/score/score3.c (score3_output_external): Likewise.
12173
12174         * config/s390/s390.c (s390_init_machine_status): Likewise.
12175
12176         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
12177         (rs6000_init_machine_status): Likewise.
12178         (output_toc): Likewise.
12179
12180         * config/pa/pa.c (pa_init_machine_status): Likewise.
12181         (get_deferred_plabel): Likewise.
12182
12183         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
12184
12185         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
12186
12187         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
12188
12189         * config/mep/mep.c (mep_init_machine_status): Likewise.
12190         (mep_note_pragma_flag): Likewise.
12191
12192         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
12193
12194         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
12195
12196         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
12197
12198         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
12199         (i386_pe_maybe_record_exported_symbol): Likewise.
12200
12201         * config/i386/i386.c (get_dllimport_decl): Likewise.
12202         (ix86_init_machine_status): Likewise.
12203         (assign_386_stack_local): Likewise.
12204
12205         * config/frv/frv.c (frv_init_machine_status): Likewise.
12206
12207         * config/darwin.c (machopic_indirection_name): Likewise.
12208
12209         * config/cris/cris.c (cris_init_machine_status): Likewise.
12210
12211         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
12212
12213         * config/avr/avr.c (avr_init_machine_status): Likewise.
12214
12215         * config/arm/arm.c (arm_init_machine_status): Likewise.
12216
12217         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
12218         (alpha_need_linkage): Likewise.
12219         (alpha_use_linkage): Likewise.
12220
12221         * cgraph.c (cgraph_allocate_node): Likewise.
12222         (cgraph_create_edge_1): Likewise.
12223         (cgraph_create_indirect_edge): Likewise.
12224         (cgraph_add_asm_node): Likewise.
12225
12226         * cfgrtl.c (init_rtl_bb_info): Likewise.
12227
12228         * cfgloop.c (alloc_loop): Likewise.
12229         (rescan_loop_exit): Likewise.
12230
12231         * cfg.c (init_flow): Likewise.
12232         (alloc_block): Likewise.
12233         (unchecked_make_edge): Likewise.
12234
12235         * c-parser.c (c_parse_init): Likewise.
12236         (c_parse_file): Likewise.
12237
12238         * c-decl.c (bind): Likewise.
12239         (record_inline_static): Likewise.
12240         (push_scope): Likewise.
12241         (make_label): Likewise.
12242         (lookup_label_for_goto): Likewise.
12243         (finish_struct): Likewise.
12244         (finish_enum): Likewise.
12245         (c_push_function_context): Likewise.
12246
12247         * bitmap.c (bitmap_element_allocate): Likewise.
12248         (bitmap_gc_alloc_stat): Likewise.
12249
12250         * alias.c (record_alias_subset): Likewise.
12251         (init_alias_analysis): Likewise.
12252
12253 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
12254
12255         * fold-const.c (fold_comparison): Remove redundant parenthesis.
12256         * tree-inline.c (expand_call_inline): Pass translated return value of
12257         cgraph_inline_failed_string to diagnostic function.
12258
12259 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
12260             Shujing Zhao  <pearly.zhao@oracle.com>
12261
12262         PR c/37724
12263         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
12264         implicit bad conversions is initialization.
12265         (error_init): Use gmsgid instead of msgid for argument name and change
12266         the call for error.
12267         (pedwarn_init): Use gmsgid instead of msgid for argument name and
12268         change the call for pedwarn.
12269         (warning_init): Use gmsgid instead of msgid for argument name and
12270         change the call for warning.
12271
12272 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
12273
12274         * config/mips/mips-protos.h (mips_print_operand): Delete.
12275         (mips_print_operand_address): Delete.
12276         * config/mips/mips.h (mips_print_operand_punct): Delete.
12277         (PRINT_OPERAND): Delete.
12278         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12279         (PRINT_OPERAND_ADDRESS): Delete.
12280         * config/mips/mips.c (mips_print_operand_punct): Make static.
12281         (mips_print_operand_address): Make static.
12282         (mips_print_operand): Make static.  Call
12283         mips_print_operand_punct_valid_p.
12284         (mips_print_operand_punct_valid_p): New function.
12285         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12286         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12287
12288 2010-06-07  Jan Hubicka  <jh@suse.cz>
12289
12290         PR middle-end/44454
12291         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
12292         are allocated.
12293
12294 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
12295
12296         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
12297         name of RECORD.
12298
12299 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12300
12301         * doc/sourcebuild.texi (Effective-Target Keywords, Other
12302         attributes): Document gas.
12303
12304 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
12305
12306         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
12307         <TYPE_LEA>: Split instruction.
12308         <default>: Remove alternative 2 handling.
12309         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
12310         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
12311         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
12312
12313         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
12314         (ashift_zext lea splitter): Use DImode for multiplication.
12315
12316         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
12317         to generate addition.
12318
12319 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
12320
12321         * common.opt (fira-verbose): Use Var.
12322         (fpcc-struct-return): Use Init instead of VarExists.
12323         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
12324         toplev.c.
12325         * flags.h (flag_signed_char, flag_short_enums,
12326         flag_pcc_struct_return, flag_ira_verbose,
12327         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
12328         * toplev.c (flag_detailed_statistics, flag_signed_char,
12329         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
12330         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
12331         * toplev.h (flag_crossjumping, flag_if_conversion,
12332         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
12333         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
12334         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
12335         flag_cprop_registers, time_report, flag_ira_loop_pressure,
12336         flag_ira_coalesce, flag_ira_move_spills,
12337         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
12338
12339 2010-06-07  Jan Hubicka  <jh@suse.cz>
12340
12341         * df-core.c (df_analyze_problem): Do verification after allocation.
12342
12343         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
12344         (df_lr_alloc): Initialize problem data; move bitmaps to
12345         lr_bitmaps obstack.
12346         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
12347         (df_lr_verify_solution_start): Do not initialize problem data;
12348         allocate bitmaps in lr_bitmaps.
12349         (df_lr_verify_solution_end): Do not free problem data.
12350
12351 2010-06-07  Jan Hubicka  <jh@suse.cz>
12352
12353         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
12354         if caller is noreturn.
12355         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
12356         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
12357         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
12358         * ipa-pure-const.c (check_decl): Add IPA parameter.
12359         (state_from_flags): New function.
12360         (better_state, worse_state): New functions.
12361         (check_call): When in IPA mode, do not care about callees.
12362         (check_load, check_store): Update.
12363         (check_ipa_load, check_ipa_store): New.
12364         (check_stmt): When in IPA mode, use IPA checkers.
12365         (analyze_function): Use state_from_flags.
12366         (propagate): Check indirect edges and references.
12367
12368 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
12369
12370         PR rtl-optimization/44404
12371         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
12372         of count_occurrences to see if it's safe to modify mem_insn.
12373
12374 2010-06-07  Richard Guenther  <rguenther@suse.de>
12375
12376         * gimplify.c (gimplify_cleanup_point_expr): For empty body
12377         and EH-only cleanup drop the cleanup instead of inserting it
12378         unconditionally.
12379
12380 2010-06-07  Ira Rosen  <irar@il.ibm.com>
12381
12382         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
12383         documentation.
12384         * targhooks.c (default_builtin_vectorization_cost): New function.
12385         * targhooks.h (default_builtin_vectorization_cost): Declare.
12386         * target.h (enum vect_cost_for_stmt): Define.
12387         (builtin_vectorization_cost): Change argument and comment.
12388         * tree-vectorizer.h: Remove cost model macros.
12389         * tree-vect-loop.c: Include target.h.
12390         (vect_get_cost): New function.
12391         (vect_estimate_min_profitable_iters): Replace cost model macros with
12392         calls to vect_get_cost.
12393         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
12394         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
12395         default implementation.
12396         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
12397         calls to target hook builtin_vectorization_cost.
12398         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
12399         Likewise.
12400         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
12401         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
12402         implementation to return costs.
12403         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
12404         * config/spu/spu.h: Remove vectorizer cost model macros.
12405         * config/i386/i386.h: Likewise.
12406         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
12407         a call to target hook builtin_vectorization_cost.
12408
12409 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
12410
12411         PR target/44319
12412         * config/i386/i386.c (override_options): Turn zee pass on for level 2
12413         and above and defer till target is known.
12414         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
12415         turn off otherwise.
12416
12417 2010-05-25  Jan Hubicka  <jh@suse.cz>
12418
12419         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
12420         (df_compact_blocks): Likewise.
12421         * df.h (struct df): Turn hardware_regs_used,
12422         regular_block_artificial_uses, eh_block_artificial_uses,
12423         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
12424         bitmap_head.
12425         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
12426         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
12427         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
12428         df_scan_blocks, df_insn_delete, df_insn_rescan,
12429         df_insn_rescan_debug_internal, df_insn_rescan_all,
12430         df_process_deferred_rescans, df_process_deferred_rescans,
12431         df_notes_rescan, df_get_call_refs, df_get_call_refs,
12432         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
12433         df_record_entry_block_defs, df_record_exit_block_uses,
12434         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
12435         df_scan_verify): Update.
12436
12437 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
12438
12439         PR c++/44188
12440         * c-common.c (is_typedef_decl): Move this definition ...
12441         * tree.c (is_typedef_decl): ... here.
12442         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
12443         * c-common.h (is_typedef_decl): Move this declaration ...
12444         * tree.h (is_typedef_decl): ... here.
12445         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
12446         * dwarf2out.c (is_naming_typedef_decl): New function.
12447         (gen_tagged_type_die): Split out of ...
12448         (gen_type_die_with_usage): ... this function. When an anonymous
12449         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
12450         is emitted for the typedef.
12451         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
12452         anonymous tagged types.
12453
12454 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12455
12456         PR c/20000
12457         * c-decl.c (grokdeclarator): Delete warning.
12458
12459 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
12460
12461         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
12462         newly built CALL_EXPR.
12463         * tree-profile.c (tree_profiling): Don't profile functions produced
12464         for built-in stuff.
12465
12466 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
12467
12468         PR bootstrap/44427
12469         PR bootstrap/44428
12470         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
12471         endianness-independent.
12472
12473 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
12474
12475         * c-common.c: Move to c-family/.
12476         * c-common.def: Likewise.
12477         * c-common.h: Likewise.
12478         * c-cppbuiltin.c: Likewise.
12479         * c-dump.c: Likewise.
12480         * c-format.c: Likewise.
12481         * c-format.h : Likewise.
12482         * c-gimplify.c: Likewise.
12483         * c-lex.c: Likewise.
12484         * c-omp.c: Likewise.
12485         * c.opt: Likewise.
12486         * c-opts.c: Likewise.
12487         * c-pch.c: Likewise.
12488         * c-ppoutput.c: Likewise.
12489         * c-pragma.c: Likewise.
12490         * c-pragma.h: Likewise.
12491         * c-pretty-print.c: Likewise.
12492         * c-pretty-print.h: Likewise.
12493         * c-semantics.c: Likewise.
12494         * stub-objc.c: Likewise.
12495
12496         * gengtype.c (get_file_langdir): Special-case files in c-family/.
12497         (get_output_file_with_visibility): Fix name for c-common.h.
12498         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
12499
12500         * c-tree.h: Update include path for moved files.
12501         * c-lang.c: Likewise.
12502         * c-lang.h: Likewise.
12503         * c-parser.c: Likewise.
12504         * c-convert.c: Likewise.
12505         * c-decl.c: Likewise.
12506         * c-objc-common.c: Likewise.
12507         * configure.ac: Make sure c-family/ exists in the build directory.
12508         * configure: Regenerate.
12509         * Makefile.in: Update paths for moved files.  Regroup files per
12510         location and update dependencies.  Move generated_files down after
12511         ALL_GTFILES_H.
12512
12513         * config/spu/spu-c.c: Update paths for moved files.
12514         * config/mep/mep-pragma.c: Likewise.
12515         * config/darwin-c.c: Likewise.
12516         * config/i386/msformat-c.c: Likewise.
12517         * config/i386/i386-c.c: Likewise.
12518         * config/avr/avr-c.c: Likewise.
12519         * config/sol2-c.c: Likewise.
12520         * config/ia64/ia64-c.c: Likewise.
12521         * config/rs6000/rs6000-c.c: Likewise.
12522         * config/arm/arm.c: Likewise.
12523         * config/arm/arm-c.c: Likewise.
12524         * config/h8300/h8300.c: Likewise.
12525         * config/v850/v850-c.c: Likewise.
12526
12527         * config/t-darwin: Fix dependencies for moved files.
12528         * config/t-sol2: Fix dependencies for moved files.
12529         * config/mep/t-mep: Fix dependencies for moved files.
12530         * config/ia64/t-ia64: Fix dependencies for moved files.
12531         * config/rs6000/t-rs6000: Fix dependencies for moved files.
12532         * config/v850/t-v850: Fix dependencies for moved files.
12533         * config/v850/t-v850e: Fix dependencies for moved files.
12534
12535         * config/m32c/m32c-pragma.c
12536
12537         * po/exgettext: Look in c-family/ also.
12538
12539 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
12540
12541         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
12542         (mark_control_dependent_edges_necessary): Call it instead of marking
12543         the last statement manually.
12544         (propagate_necessity): Likewise.
12545
12546 2010-06-05  Jan Hubicka  <jh@suse.cz>
12547
12548         * basic-block.h (compute_dominance_frontiers): Updated.
12549         (compute_idf): Likewise.
12550
12551         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
12552         for dominance frontiers.
12553         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
12554         (insert_updated_phi_nodes_for): Likewise.
12555         (update_ssa): Likewise.
12556         * cfganal.c (compute_dominance_frontiers_1): Likewise.
12557         (compute_dominance_frontiers): Likewise.
12558         (compute_idf): Likewise.
12559         * df-problems.c (df_md_local_compute): Likewise.
12560
12561 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
12562
12563         * target.h (struct gcc_target): Add memory_move_cost field.
12564         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
12565         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
12566         * targhooks.c (default_memory_move_cost): New function.
12567         * targhooks.h (default_memory_move_cost): Declare function.
12568         * reload.h (memory_move_cost): Declare.
12569         (memory_move_secondary_cost): Change type of 'in' argument to bool.
12570         * reginfo.c (memory_move_cost): New function.
12571         (memory_move_secondary_cost): Change type of 'in' argument to bool.
12572         * ira.h (ira_memory_move_cost): Update comment.
12573         * ira.c (ira_memory_move_cost): Update comment.
12574         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
12575         with memory_move_cost.
12576         * postreload.c (reload_cse_simplify_set): (Ditto.).
12577         * reload1.c (choose_reload_regs): (Ditto.).
12578         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
12579         (MEMORY_MOVE_COST):  Revise documentation.
12580
12581         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
12582         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
12583         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
12584         type of 'in' argument to bool.
12585         (TARGET_MEMORY_MOVE_COST): Define.
12586
12587 2010-06-05  Jan Hubicka  <jh@suse.cz>
12588
12589         * ipa-pure-const.c (propagate): Fix typo in handling of functions
12590         that cannot return.  Be more careful when merging the results with
12591         previously known ones.
12592
12593 2010-06-05  Matthias Klose  <doko@ubuntu.com>
12594
12595         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
12596         function to add the -iplugindir option.
12597         (find_plugindir_spec_function): Add new declaration and function.
12598         (static_spec_func): Use it for "find-plugindir".
12599
12600 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
12601
12602         PR c++/44361
12603         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
12604         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
12605         statement expression.
12606
12607 2010-06-05  Jan Hubicka  <jh@suse.cz>
12608
12609         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
12610         (df_rd_problem_data): Convert sparse_invalidated_by_call,
12611         dense_invalidated_by_call to bitmap head.
12612         (df_rd_alloc, df_rd_bb_local_compute_process_def,
12613         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
12614         df_rd_start_dump, df_lr_verify_transfer_functions,
12615         df_live_verify_transfer_functions, df_chain_create_bb,
12616         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
12617         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
12618         df_simulate_one_insn_forwards, df_md_alloc,
12619         df_md_bb_local_compute_process_def,
12620         df_md_bb_local_compute_process_def, df_md_local_compute,
12621         df_md_transfer_function df_md_free): Update.
12622
12623 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
12624
12625         PR c/44322
12626         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
12627         target type for ADDR_EXPR; require no changes to qualifiers except
12628         for function types.
12629         * c-tree.h (c_build_type_variant): Remove.
12630
12631 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
12632
12633         * genautomata.c (get_excl_set): Do work per element, not per char.
12634         (check_presence_pattern_sets): Similar.
12635         (check_absence_pattern_sets): Similar.
12636
12637 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
12638
12639         * genautomata.c (curr_state_pass_num): Delete.
12640         (min_issue_delay_pass_states): Delete.
12641         (min_issue_delay): Delete.
12642         (initiate_min_issue_delay_pass_states): Delete.
12643         (output_min_issue_delay_table): Compute min_issue_delay_vect
12644         using a breadth-first search variant.
12645         (output_tables): Don't call initiate_min_issue_delay_pass_states.
12646
12647 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
12648
12649         PR boostrap/44421
12650         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
12651         (df_byte_lr_bb_local_compute): Likewise.
12652
12653 2010-06-03  Jason Merrill  <jason@redhat.com>
12654
12655         Implement noexcept operator (5.3.7)
12656         * c-common.c (c_common_reswords): Add noexcept.
12657         * c-common.h (enum rid): Add RID_NOEXCEPT.
12658
12659 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
12660
12661         * config/darwin-driver.c (darwin_default_min_version): Use
12662         GCC-specific formats in diagnostics.
12663         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
12664         diagnostics.
12665         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
12666         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
12667         eval_spec_function, handle_braces, process_brace_body, main,
12668         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
12669         getenv_spec_function, compare_version_strings,
12670         version_compare_spec_function): Use GCC-specific formats in
12671         diagnostics.
12672
12673 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
12674
12675         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
12676         that operand 0 and operand 1 are equal.
12677         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
12678         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
12679         and operand 1 are equal.
12680         <default>: Ditto.  Remove ??? comment.
12681         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
12682         and operand 1 are equal.
12683         <default>: Ditto.  Remove ??? comment.
12684         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
12685         are equal.
12686         (*add<mode>_4) <default>: Ditto.
12687         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
12688
12689 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
12690
12691         * config/i386/i386-protos.h (ix86_print_operand): Declare.
12692         * config/i386/i386.c (ix86_print_operand): Make non-static.
12693         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
12694         * output.h (output_operand): Declare.
12695         * final.c (output_operand): Make non-static.
12696
12697 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
12698
12699         PR rtl-optimization/44013
12700         * sched-deps.c (add_dependence_list_and_free): Don't free lists
12701         when processing debug insns.
12702
12703         PR debug/41371
12704         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
12705         recursing.  Check that recursion is bounded.  Rename inner var
12706         to avoid hiding incoming argument.
12707
12708 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
12709
12710         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
12711         operands[2] == 255.
12712         (*addqi_3): Ditto.
12713         (*addqi_4): Ditto.
12714         (*addqi_5): Ditto.
12715         (*addqi_ext_1_rex64): Ditto.
12716         (*addqi_ext_1): Ditto.
12717
12718         (*addqi_4): Check for incdec_operand in QImode.
12719
12720         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
12721         using SWI mode iterator.
12722         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
12723         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
12724         mode iterator.
12725         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
12726         using SWI mode iterator.
12727
12728 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12729
12730         PR c/25880
12731         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
12732         * c-format.c (gcc_diag_flag_specs): Add hash.
12733         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
12734         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
12735         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
12736         pp_c_cv_qualifiers. Handle qualifiers spelling here.
12737         (pp_c_type_qualifier_list): Call the function above.
12738         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
12739         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
12740         (WARN_FOR_QUALIFIERS): New macro.
12741         (convert_for_assignment): Use it.
12742
12743 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
12744
12745         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
12746
12747 2010-06-04  Jan Hubicka  <jh@suse.cz>
12748
12749         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
12750         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
12751         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
12752         DF_BYTE_LR_OUT): Update for embedded bitmaps.
12753         * fwprop.c (single_def_use_enter_block): Likewise.
12754         * ddg.c (create_ddg_dep_from_intra_loop_link,
12755         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
12756         * loop-iv.c (latch_dominating_def): Likewise.
12757         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
12758         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
12759         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
12760         df_rd_transfer_function, df_rd_top_dump,
12761         df_rd_bottom_dump): Update.
12762         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
12763         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
12764         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
12765         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
12766         df_lr_verify_solution_start, df_lr_verify_solution_end,
12767         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
12768         df_live_free_bb_info, df_live_alloc, df_live_reset,
12769         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
12770         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
12771         df_live_verify_solution_start, df_live_verify_solution_end,
12772         df_live_verify_transfer_functions, df_chain_create_bb,
12773         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
12774         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
12775         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
12776         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
12777         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
12778         df_byte_lr_transfer_function, df_byte_lr_top_dump,
12779         df_byte_lr_bottom_dump, df_create_unused_note,
12780         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
12781         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
12782         df_md_transfer_function, df_md_init, df_md_confluence_0,
12783         df_md_confluence_n,
12784         df_md_top_dump, df_md_bottom_dump): Update.
12785         (struct df_lr_problem_data): Embedd bitmap headers.
12786
12787 2010-06-04  Jan Hubicka  <jh@suse.cz>
12788
12789         * dce.c (dce_process_block): Do not re-scan already marked
12790         instructions.
12791
12792 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
12793
12794         PR rtl-optimization/39871
12795         PR rtl-optimization/40615
12796         PR rtl-optimization/42500
12797         PR rtl-optimization/42502
12798         * ira.c (init_reg_equiv_memory_loc: New function.
12799         (ira): Call it twice.
12800         * reload.h (calculate_elim_costs_all_insns): Declare.
12801         * ira-costs.c: Include "reload.h".
12802         (regno_equiv_gains): New static variable.
12803         (init_costs): Allocate it.
12804         (finish_costs): Free it.
12805         (ira_costs): Call calculate_elim_costs_all_insns.
12806         (find_costs_and_classes): Take estimated elimination costs
12807         into account.
12808         (ira_adjust_equiv_reg_cost): New function.
12809         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
12810         * reload1.c (init_eliminable_invariants, free_reg_equiv,
12811         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
12812         (elim_bb): New static variable.
12813         (reload): Move code out of here into init_eliminable_invariants and
12814         free_reg_equiv.  Call them.
12815         (calculate_elim_costs_all_insns): New function.
12816         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
12817         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
12818         but call note_reg_elim_costly if we turned a valid memory address
12819         into an invalid one.
12820         * Makefile.in (ira-costs.o): Depend on reload.h.
12821
12822 2010-06-04  Julian Brown  <julian@codesourcery.com>
12823
12824         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
12825         for pool ranges.
12826
12827 2010-06-04  Richard Guenther  <rguenther@suse.de>
12828
12829         PR lto/41584
12830         * cgraph.h (struct varpool_node): Add lto_file_data field.
12831         * lto-cgraph.c (input_varpool_node): Initialize it.
12832
12833 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
12834
12835         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
12836         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
12837         predicate in "type" attribute calculation.
12838         (*addsi_1_zext): Ditto.
12839         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
12840         (*addsi_2_zext): Ditto.
12841         (*add<mode>_3): Ditto.
12842         (*addsi_3_zext): Ditto.
12843         (*add<mode>_5): Ditto.
12844
12845 2010-06-03  Jan Hubicka  <jh@suse.cz>
12846
12847         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
12848         of bitmap_bit_p.
12849         * cfganal.c (compute_dominance_frontiers_1): Likewise.
12850
12851 2010-06-03  Jan Hubicka  <jh@suse.cz>
12852
12853         * df-problems.c (df_create_unused_note, df_note_bb_compute):
12854         micro-optimize the checks when to add new note.
12855
12856 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
12857
12858         * final.c (output_asm_insn): Call
12859         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
12860         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
12861         (output_address): Call targetm.asm_out.print_operand_address.
12862         Update comments.
12863         * target.h (struct gcc_target): Add print_operand,
12864         print_operand_address, and print_operand_punct_valid_p fields.
12865         * targhooks.h (default_print_operand): Declare.
12866         (default_print_operand_address): Declare.
12867         (default_print_operand_punct_valid_p): Declare.
12868         * targhooks.c (default_print_operand): Define.
12869         (default_print_operand_address): Define.
12870         (default_print_operand_punct_valid_p): Define.
12871         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
12872         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
12873         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
12874         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
12875         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
12876         * vmsdbgout.c (addr_const_to_string): Update comment.
12877         * config/i386/i386.c (print_operand): Rename to...
12878         (ix86_print_operand): ...this.  Make static.
12879         (print_operand_address): Rename to...
12880         (ix86_print_operand_address): ...this.  Make static.  Call
12881         ix86_print_operand instead of PRINT_OPERAND.
12882         (ix86_print_operand_punct_valid_p): New function.
12883         (TARGET_PRINT_OPERAND): Define.
12884         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12885         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12886         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
12887         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12888         (PRINT_OPERAND): Delete.
12889         (PRINT_OPERAND_ADDRESS): Delete.
12890         * config/i386/i386-protos.h (print_operand): Delete prototype.
12891         (print_operand_address): Delete prototype.
12892
12893 2010-06-03  Richard Guenther  <rguenther@suse.de>
12894
12895         PR tree-optimization/44403
12896         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
12897         Preserve pointer qualifiers.
12898         (vect_create_data_ref_ptr): Likewise.
12899
12900 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
12901
12902         PR c++/44294
12903         * defaults.h (MAX_FIXED_MODE_SIZE): New.
12904
12905         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
12906
12907 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
12908
12909         PR debug/44375
12910         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
12911         return false if merging the bbs would lead to goto_locus
12912         location being lost from the IL.
12913
12914 2010-06-03  Jan Hubicka  <jh@suse.cz>
12915             Jakub Jelinek  <jakub@redhat.com>
12916
12917         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
12918         set->regs[i] is NULL or has just one entry.
12919
12920 2010-06-03  Jan Hubicka  <jh@suse.cz>
12921
12922         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
12923         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
12924
12925 2010-06-03  Paul Brook  <paul@codesourcery.com>
12926
12927         * config/arm/arm.c (FL_TUNE): Define.
12928         (arm_default_cpu, arm_cpu_select): Remove.
12929         (all_cores): Populate core field.
12930         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
12931         (arm_find_cpu): New function.
12932         (arm_handle_option): Lookup cpu/architecture names.
12933         (arm_override_options): Cleanup mcpu/march/mtune handling.
12934         (arm_file_start): Ditto.
12935
12936 2010-06-03  Alan Modra  <amodra@gmail.com>
12937
12938         PR target/44169
12939         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
12940         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
12941         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
12942         (rs6000_emit_load_toc_table): Likewise.
12943
12944 2010-06-02  Jan Hubicka  <jh@suse.cz>
12945
12946         * passes.c (init_optimization_passes): Put ipa reference
12947         after ipa pure-const.
12948
12949 2010-06-02  Jan Hubicka  <jh@suse.cz>
12950
12951         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
12952         calls_read_all and calls_write_all.
12953         (get_reference_optimization_summary): Fix formatting.
12954         (is_proper_for_analysis): Check that decl is not readonly.
12955         (propagate_bits): Check CONST/PURE/noreturn flags.
12956         (ipa_init): Move all_module_statics to optimization_summary_obstack.
12957         (analyze_function): Ignore indirect edges.
12958         (copy_global_bitmap): For all module statics, do nothing.
12959         (generate_summary): Do not print calls_read_all/calls_write_all.
12960         (read_write_all_from_decl): Take node as argument; check
12961         cgraph_node_cannot_return.
12962         (propagate): Reorganize read_all/write_all computation;
12963         check indirect edges; check ecf flags; use all_module_statics
12964         in the results; do not free all_module_statics.
12965         (stream_out_bitmap): Handle all_module_statics.
12966         (ipa_reference_write_optimization_summary): Likewise; use
12967         varpool/cgraph encoders to get boundaries.
12968         (ipa_reference_read_optimization_summary): Read in all_module_statics;
12969         use it when possible.
12970
12971 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12972
12973         PR target/44218
12974         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
12975         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
12976
12977         * doc/extend.texi (powerpc builtins): Document vec_recip,
12978         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
12979
12980         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
12981         (rs6000_emit_swrsqrt): Ditto.
12982         (rs6000_emit_swdivsf): Delete.
12983         (rs6000_emit_swdivdf): Ditto.
12984         (rs6000_emit_swrsqrtsf): Ditto.
12985
12986         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
12987         describe the reciprocal estimate support for each type.
12988         (recip_options): Map -mrecip=<opt> into option bits.
12989         (gen_2arg_fn_t): New typedef for binary rtx gen function.
12990         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
12991         reciprocal estimate instructions.
12992         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
12993         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
12994         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
12995         cost information if -mdebug=cost or -mdebug=reg.
12996         (rs6000_override_options): Set -mrecip-precision for power6, and
12997         power7 machines.  If -mvsx or -mdfp, enable various options that
12998         came in previous instruction set ISAs, unless the option was
12999         explicitly disabled by the command line option.  Parse
13000         -mrecip=<opt> options.
13001         (rs6000_builtin_vectorized_function): Add support for vectorizing
13002         the reciprocal estimate builtins and expansions.
13003         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
13004         (bdesc_2arg): Add reciprocal estimate builtins.
13005         (bdesc_1arg): Add reciprocal square root estimate builtins.
13006         (rs6000_expand_builtin): Rewrite to use a switch statement,
13007         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
13008         (rs6000_init_builtins): Create declarations for reciprocal
13009         estimate builtins.
13010         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
13011         sized, prefer traditional floating point registers, if integer
13012         vector types, prefer altivec registers.  Don't actually look at
13013         the memory address any more.
13014         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
13015         builtins.
13016         (rs6000_load_constant_and_splat): New helper function to load up
13017         the constant for reciprocal estimate instructions.
13018         (rs6000_emit_madd): New helper function for generating
13019         multiply/add type instructions, based on the current switches.
13020         (rs6000_emit_msub): Ditto.
13021         (rs6000_emit_mnsub): Ditto.
13022         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
13023         replace a divide with a reciprocal estimate and fixup, adding
13024         support for machines with high precision and vectors.
13025         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
13026         low precision machines.
13027         (rs6000_emit_swdiv): New common function to be called to replace a
13028         division with reciprocal estimate and fixup.
13029         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
13030         for double and vector types.  Add support for high precision machines.
13031
13032         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
13033         the reciprocal estimate instructions can be generated.
13034         (TARGET_FRE): Ditto.
13035         (TARGET_FRSQRTES): Ditto.
13036         (TARGET_FRSQRTE): Ditto.
13037         (RS6000_RECIP_*): New macros for reciprocal estimate support.
13038
13039         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
13040         square root estimate on vectors.
13041         (re<mode>2): New insn for reciprocal division estimate on vectors.
13042
13043         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
13044         New builtin.
13045         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
13046         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
13047         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
13048         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
13049         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
13050         (RS6000_BUILTIN_RSQRT): Ditto.
13051         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
13052         floating point builtin.
13053
13054         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
13055         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
13056         __RECIP_PRECISION__ based on the command line switches.
13057         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
13058
13059         * config/rs6000/rs6000.opt (-mrecip): Document add support for
13060         replacing division instructions with reciprocal estimate and fixup.
13061         (-mrecip=<opt>): New option.
13062         (-mrecip-precision): Ditto.
13063
13064         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
13065         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
13066         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
13067         precision scalar.
13068
13069         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
13070         (UNSPEC_VREFP): Ditto.
13071         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
13072         conterparts with regard to support of -mno-fused-madd and -ffast-math.
13073         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
13074         reciprocal estimate instructions to be generated.
13075         (altivec_vrefp): Ditto.
13076
13077         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
13078         estimate support.
13079         (rreg): New mode attribute for reciprocal estimate support.
13080         (recip<mode>3): New insn for division using reciprocal estimate
13081         and fixup builtins.
13082         (divide define_split): New define_split to convert floating point
13083         division to use reciprocal estimate if the user used the
13084         appropriate options and the split is run when we can add new
13085         pseudo registers for the fixup.
13086         (rsqrt<mode>2): New insn for reciprocal square root support.
13087         (recipsf3): Move into recip<mode>3.
13088         (recipdf3): Ditto.
13089         (fres): Use TARGET_FRES.
13090         (rsqrtsf2): Move into rsqrt<mode>2.
13091         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
13092         (copysignsf3): Add support for VSX.
13093         (fred): Use TARGET_FRE.
13094         (fred_fpr): Ditto.
13095         (rsqrtdf_internal1): New function for frsqrte instruciton.
13096
13097         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
13098         (vec_rsqrt): Ditto.
13099
13100 2010-06-03  Richard Guenther  <rguenther@suse.de>
13101
13102         PR middle-end/44291
13103         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
13104         (set_user_assembler_libfunc): Likewise.
13105
13106 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
13107
13108         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
13109         defaults.h.
13110         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
13111         to defaults.h
13112         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
13113         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
13114         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
13115         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
13116         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
13117         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
13118         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
13119         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
13120         * defaults.h: Updated for above mentioned changes.
13121
13122 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
13123
13124         * c-common.c: Remove header include of tm_p.h.
13125         * Makefile.in (c-common.o): Remove TM_P_H dependency.
13126
13127 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
13128
13129         * tree.h (struct tree_decl_map): New type.
13130         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
13131         (tree_decl_map_hash): New prototype.
13132         (debug_expr_for_decl, value_expr_for_decl): Change into
13133         tree_decl_map hashtab from tree_map.
13134         (init_ttree): Adjust initialization.
13135         (tree_decl_map_hash): New function.
13136         (decl_debug_expr_lookup, decl_debug_expr_insert,
13137         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
13138
13139 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13140
13141         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
13142         linker emulations.
13143         * configure: Regenerate.
13144         * config.in: Regenerate.
13145
13146         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
13147         (X86_64_EMULATION): Define.
13148         (TARGET_LD_EMULATION): Use them.
13149
13150         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
13151         (SPARC64_EMULATION): Define.
13152         (LINK_ARCH_SPEC): Use them.
13153
13154 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
13155
13156         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
13157         smallest_mode_for_size for computing the precision types of new
13158         graphite IVs.  Do not call lang_hooks.types.type_for_size.
13159
13160 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
13161
13162         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
13163         information.
13164         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
13165
13166 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
13167
13168         PR middle-end/44363
13169         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
13170         return false instead.
13171
13172 2010-06-02  Jan Hubicka  <jh@suse.cz>
13173
13174         PR middle-end/44295
13175         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
13176         create new cgraph node to check callee.
13177
13178 2010-06-02  Richard Guenther  <rguenther@suse.de>
13179
13180         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
13181
13182 2010-06-02  Richard Guenther  <rguenther@suse.de>
13183
13184         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
13185         (lto_wrapper_cleanup): ... this.  Do not exit.
13186         (fatal): Adjust.  Exit here.
13187         (fatal_perror): Likewise.
13188         (fatal_signal): New function.
13189         (main): Set up signal handlers to cleanup temporary files.
13190         * Makefile.in (lto-wrapper.o): Adjust dependencies.
13191
13192 2010-06-02  Richard Guenther  <rguenther@suse.de>
13193
13194         PR tree-optimization/44377
13195         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
13196
13197 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13198
13199         * config/s390/2097.md (z10_fhex): Remove insn reservation.
13200         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
13201         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
13202         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
13203         instruction.
13204         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
13205
13206 2010-06-02  Jan Hubicka  <jh@suse.cz>
13207
13208         * bitmap.c (bitmap_descriptor): Add search_iter.
13209         (bitmap_find_bit): Increment it.
13210         (print_statistics): Print it.
13211
13212 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
13213
13214         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
13215         instead of gimple_build_call_vec.  Delete unnecessary local variable.
13216
13217 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
13218
13219         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
13220         change from yesterday.
13221
13222 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
13223
13224         * c-ada-spec.c: Clean up redundant includes.
13225
13226 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
13227
13228         * gimplify.c: Do not include except.h and optabs.h.
13229         (gimplify_body): Do not initialize RTL profiling.
13230         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
13231         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
13232         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
13233         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
13234         langhooks.h.
13235
13236         * tree-pretty-print.h: Include pretty-print.h.
13237         * gimple-pretty-print.h: Include pretty-print.h.
13238
13239         * tree-pretty-print.c: Do not include diagnostic.h.
13240         * tree-vrp.c: Likewise.
13241         * tree-tailcall.c: Likewise
13242         * tree-scalar-evolution.c: Likewise
13243         * tree-ssa-dse.c: Likewise
13244         * tree-chrec.c: Likewise
13245         * tree-ssa-sccvn.c: Likewise
13246         * tree-ssa-copyrename.c: Likewise
13247         * tree-nomudflap.c: Likewise
13248         * tree-call-cdce.c: Likewise
13249         * tree-stdarg.c: Likewise
13250         * tree-ssa-math-opts.c: Likewise
13251         * tree-nrv.c: Likewise
13252         * tree-ssa-sink.c: Likewise
13253         * tree-browser.c: Likewise
13254         * tree-ssa-loop-ivcanon.c: Likewise
13255         * tree-ssa-loop.c: Likewise
13256         * tree-parloops.c: Likewise
13257         * tree-ssa-address.c: Likewise
13258         * tree-ssa-ifcombine.c: Likewise
13259         * tree-if-conv.c: Likewise
13260         * tree-data-ref.c: Likewise
13261         * tree-affine.c: Likewise
13262         * tree-ssa-phiopt.c: Likewise
13263         * tree-ssa-coalesce.c: Likewise
13264         * tree-ssa-pre.c: Likewise
13265         * tree-ssa-live.c: Likewise
13266         * tree-predcom.c: Likewise
13267         * tree-ssa-forwprop.c: Likewise
13268         * tree-ssa-dce.c: Likewise
13269         * tree-ssa-ter.c: Likewise
13270         * tree-ssa-loop-prefetch.c: Likewise
13271         * tree-optimize.c: Likewise
13272         * tree-ssa-phiprop.c: Likewise
13273         * tree-object-size.c: Likewise
13274         * tree-outof-ssa.c: Likewise
13275         * tree-ssa-structalias.c: Likewise
13276         * tree-switch-conversion.c: Likewise
13277         * tree-ssa-reassoc.c: Likewise
13278         * tree-ssa-operands.c: Likewise
13279         * tree-vectorizer.c: Likewise
13280         * tree-vect-data-refs.c: Likewise
13281         * tree-vect-generic.c: Likewise
13282         * tree-vect-stmts.c: Likewise
13283         * tree-vect-patterns.c: Likewise
13284         * tree-vect-slp.c: Likewise
13285         * tree-vect-loop.c: Likewise
13286         * tree-ssa-loop-ivopts.c: Likewise
13287         * tree-ssa-loop-im.c: Likewise
13288         * tree-ssa-loop-niter.c: Likewise
13289         * tree-ssa-loop-unswitch.c: Likewise
13290         * tree-ssa-loop-manip.c: Likewise
13291         * tree-ssa-loop-ch.c: Likewise
13292         * tree-dump.c: Likewise
13293         * tree-complex.c: Likewise
13294
13295         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
13296         * tree-ssa-uninit.c: Likewise
13297         * tree-ssa-threadupdate.c: Likewise
13298         * tree-ssa-uncprop.c: Likewise
13299         * tree-ssa-ccp.c: Likewise
13300         * tree-ssa-dom.c: Likewise
13301         * tree-ssa-propagate.c: Likewise
13302         * tree-ssa-alias.c: Likewise
13303         * tree-dfa.c: Likewise
13304         * tree-cfgcleanup.c: Likewise
13305         * tree-sra.c: Likewise
13306         * tree-ssa-copy.c: Likewise
13307         * tree-ssa.c: Likewise
13308         * tree-profile.c: Likewise
13309         * tree-cfg.c: Likewise
13310         * tree-ssa-threadedge.c: Likewise
13311         * tree-vect-loop-manip.c: Likewise
13312
13313         * tree-inline.c: Do not include diagnostic.h and expr.h.
13314         Include rtl.h.
13315         (copy_decl_for_dup_finish): Do not use NULL_RTX.
13316
13317         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
13318         * tree-loop-distribution.c: Likewise.
13319
13320 2010-06-01  Jan Hubicka  <jh@suse.cz>
13321
13322         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
13323
13324 2010-06-01  Jan Hubicka  <jh@suse.cz>
13325
13326         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
13327         remove return value.
13328         (split_bbs_on_noreturn_calls) .... here.
13329         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
13330         * tree-flow.h (fixup_noreturn_call): New.
13331
13332 2010-06-01  Jan Hubicka  <jh@suse.cz>
13333
13334         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
13335
13336 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
13337
13338         * tree.h (build_nt_call_list): Delete.
13339         * tree.c (build_nt_call_list): Delete.
13340
13341 2010-06-01  Jan Hubicka  <jh@suse.cz>
13342
13343         * fwprop.c: Make emit-rtl.h include last.
13344         * rtlanal.c: Include emit-rtl.h.
13345         * genautomata.c: Output emit-rtl include into insn-automata.c
13346         * df-scan.c: Include emit-rtl.h.
13347         * haifa-sched.c: Indlude emit-rtl.h.
13348         * mode-switching.c: Indlude emit-rtl.h.
13349         * graph.c: Indlude emit-rtl.h.
13350         * sel-sched.c: Include emit-rtl.h.
13351         * sel-sched-ir.c: Include emit-rtl.h.
13352         * ira-build.c: Include emit-rtl.h.
13353         * emit-rtl.c (first_insn, last_insn): Remove defines.
13354         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
13355         Move to emit-rtl.h.
13356         (set_new_first_and_last_insn, get_last_insn_anywhere,
13357         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
13358         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
13359         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
13360         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
13361         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
13362         Use accessor functions.
13363         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
13364          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
13365         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
13366         mem_expr_equal_p): Move here from rtl.h.
13367         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
13368         Move here from emit-rtl.c; make inline.
13369         * cfglayout.h: Include emit-rtl.h.
13370         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
13371          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
13372         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
13373         mem_expr_equal_p, get_insns, set_first-insn,
13374         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
13375         * reg-stack.c: Include emit-rtl.h.
13376         * dce.c: Likewise.
13377
13378 2010-06-01  Jan Hubicka  <jh@suse.cz>
13379
13380         * cgraph.h (tree_function_versioning): Update prototype.
13381         (cgraph_function_versioning): Update prototype.
13382         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
13383         bitmap.
13384         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
13385         (cgraph_materialize_clone, save_inline_function_body): Update use of
13386         tree_function_versioning.
13387         * tree-inline.c (copy_bb): Look for previous copied block to link
13388         after; fix debug output.
13389         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
13390         (copy_body): Likewise.
13391         (expand_call_inline): Update use of copy_body.
13392         (tree_function_versioning): Update use of copy body; accept
13393         blocks_to_copy and new_entry.
13394
13395 2010-06-01  Jan Hubicka  <jh@suse.cz>
13396
13397         * gegenrtl.c: Remove unnecesary prototypes.
13398         (gendecl): Remove.
13399         (gendef): Produce static inline.
13400         (gencode): Remove.
13401         (main): Do not decode parameters; generate header only.
13402         * Makefile.in (genrtl.c): Remove.
13403
13404 2010-06-01  Jan Hubicka  <jh@suse.cz>
13405
13406         * tree-switch-conversion.c (build_one_array): Make it readonly.
13407
13408 2010-06-01  Richard Guenther  <rguenther@suse.de>
13409
13410         * optabs.c (init_optabs): Guard all accesses to reinit.
13411         * ipa-pure-const.c (propagate): Fix another typo.
13412         * opts.c (common_handle_option): Split assignment to bool.
13413         * c-opts.c (c_common_handle_option): Likewise.
13414
13415 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
13416             Matthew Gingell  <gingell@adacore.com>
13417
13418         * doc/invoke.texi: Mention -fdump-ada-spec.
13419         * tree-dump.c (dump_files): Add ada-spec.
13420         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
13421         * tree-pass.h (tree_dump_index): Add TDI_ada.
13422         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
13423         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
13424         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
13425         * c-decl.c: Include c-ada-spec.h.
13426         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
13427         functions.
13428         (c_write_global_declarations): Add handling of -fdump-ada-spec.
13429         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
13430         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
13431         * c-ada-spec.h, c-ada-spec.c: New files.
13432
13433 2010-06-01  Richard Guenther  <rguenther@suse.de>
13434
13435         PR lto/43853
13436         * ipa-pure-const.c (get_function_state): Hand back varying state
13437         if we do not have one.
13438         (has_function_state): New function.
13439         (duplicate_node_data): Adjust.
13440         (remove_node_data): Likewise.
13441         (pure_const_write_summary): Likewise.
13442         (propagate): Likewise.  Fix typo.
13443
13444 2010-06-01  Jan Hubicka  <jh@suse.cz>
13445
13446         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
13447         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
13448         (execute_all_ipa_transforms): Do not play with the states.
13449
13450 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
13451
13452         * config/arm/t-linux-androideabi: New.
13453         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
13454
13455 2010-06-01  Jan Hubicka  <jh@suse.cz>
13456
13457         * tree-inline.c (estimate_num_insns): For stdarg functions look
13458         into call statement to count cost of argument passing.
13459
13460 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
13461
13462         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
13463         argument for fprintf.
13464         (ix86_output_addr_diff_elt): Likewise.
13465         (x86_function_profiler): Likewise.
13466         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
13467         (LPREFIX): Likewise.
13468         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
13469
13470 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
13471
13472         PR target/44338
13473         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
13474         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
13475         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
13476         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
13477         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
13478         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
13479         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
13480         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
13481         TARGET_FUSED_MADD.
13482
13483 2010-05-31  Jan Hubicka  <jh@suse.cz>
13484
13485         * tree.h (tree_range_check_failed): Declare noreturn.
13486
13487 2010-05-31  Jan Hubicka  <jh@suse.cz>
13488
13489         * gimple.c (gimple_call_builtin_p): New function.
13490         * gimple.h (gimple_call_builtin_p): Declare.
13491         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
13492         to exit.
13493         (execute_warn_function_return): BUILT_IN_RETURN is return.
13494         (split_critical_edges): Return edges are not critical.
13495         (is_ctrl_altering_stmt): Builtin_in_return is altering.
13496         (gimple_verify_flow_info): Handle built_in_return.
13497         (execute_warn_function_return): Handle built_in_return.
13498         * ipa-pure-const.c (check_call): Ignore builtin_return.
13499
13500 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
13501
13502         PR middle-end/44337
13503         * expr.c (expand_assignment): Don't store anything for out-of-bounds
13504         array accesses with non-MEM.
13505
13506         PR tree-optimization/44182
13507         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
13508         newly needs to end a bb is followed by debug stmts, instead return
13509         true from the function at the end.
13510         (maybe_move_debug_stmts_to_successors): New function.
13511         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
13512
13513 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
13514
13515         PR target/44161
13516         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
13517
13518 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
13519
13520         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
13521         for nested functions in non-optimized compilation.
13522
13523 2010-05-31  Richard Guenther  <rguenther@suse.de>
13524
13525         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
13526
13527 2010-05-30  Jan Hubicka  <jh@suse.cz>
13528
13529         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
13530
13531 2010-05-30  Richard Guenther  <rguenther@suse.de>
13532
13533         PR lto/42975
13534         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
13535         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
13536         no longer needed.
13537
13538 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
13539
13540         * config/darwin.c (output_objc_section_asm_op): Add comment.
13541         (name_needs_quotes): Add '_' to list of valid comment chars.
13542         (machopic_output_function_base_name): Remove unneeded quotes.
13543         (darwin_encode_section_info): Adjust asm whitespace.
13544         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
13545         (ASM_OUTPUT_LOCAL): Ditto.
13546         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
13547         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
13548         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
13549
13550 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
13551
13552         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
13553         RS6000_OUTPUT_BASENAME unconditionally.
13554         (rs6000_output_function_epilogue): Likewise.
13555
13556 2010-05-30  Jan Hubicka  <jh@suse.cz>
13557
13558         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
13559         nodes.
13560
13561 2010-05-30  Richard Guenther  <rguenther@suse.de>
13562
13563         * tree-cfg.c (verify_gimple_assign_single): Implement
13564         verification for COND_EXPR rhs.
13565
13566 2010-05-30  Jan Hubicka  <jh@suse.cz>
13567
13568         * cgraph.h (cgraph_dump_file): Declare.
13569         * cgraphunit.c (cgraph_dump_file): Export.
13570         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
13571
13572 2010-05-30  Jan Hubicka  <jh@suse.cz>
13573
13574         * dwarf2out.c (reference_to_unused,
13575         premark_types_used_by_global_vars_helper): Avoid creation of new
13576         varpool nodes.
13577
13578 2010-05-30  Jan Hubicka  <jh@suse.cz>
13579
13580         * cgraph.h (cgraph_node_cannot_return,
13581         cgraph_edge_cannot_lead_to_return): New functions.
13582         * cgraph.c (cgraph_node_cannot_return,
13583         cgraph_edge_cannot_lead_to_return): Use them.
13584         * ipa-pure-const.c (pure_const_names): New static var.
13585         (check_call): Handle calls not leading to return.
13586         (pure_const_read_summary): Dump info read.
13587         (propagate): Dump info about propagation process; ignore side effects
13588         of functions not leading to exit; fix handling of pure functions.
13589
13590 2010-05-30  Jan Hubicka  <jh@suse.cz>
13591
13592         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
13593         for tail call epilogues.
13594
13595 2010-05-30  Jan Hubicka  <jh@suse.cz>
13596
13597         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
13598         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
13599         dump files.
13600
13601 2010-05-29  Jan Hubicka  <jh@suse.cz>
13602
13603         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
13604         node; remove references in node we no longer keep in cgrpah but need
13605         body of.
13606
13607 2010-05-29  Jan Hubicka  <jh@suse.cz>
13608
13609         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
13610
13611 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13612
13613         PR target/44165
13614         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
13615
13616 2010-05-29  Jan Hubicka  <jh@suse.cz>
13617
13618         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
13619         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
13620         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
13621         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
13622         debug_names_replaced_by, debug_update_ssa): Likewise.
13623         * sbitmap.c (debug_sbitmap): Likewise.
13624         * genrecog.c (debug_decision, debug_decision_list): Likewise.
13625         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
13626         debug_tree_chain): Likewise.
13627         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
13628         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
13629         * optabs.c (debug_optab_libfuncs): Likewise.
13630         (verify_loop_closed_ssa): Likewise.
13631         * value-prof.c (verify_histograms): Likewise.
13632         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
13633         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
13634         * cfghooks.c (verify_flow_info): Likewise.
13635         * fold-const.c (debug_fold_checksum): Likewise.
13636         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
13637         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
13638         Likewise.
13639         * omega.c (debug_omega_problem): Likewise.
13640         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
13641         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
13642         * dominance.c (verify_dominators, debug_dominance_info,
13643         debug_dominance_tree): Likewise.
13644         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
13645         * df_regno_debug, df_ref_debug,
13646         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
13647         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
13648         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
13649         * sel-sched.c (debug_state): Likewise.
13650         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
13651         Likewise.
13652         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
13653         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
13654         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
13655         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
13656         Likewise.
13657         * c-pretty-print.c (debug_c_tree): Likewise.
13658         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
13659         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
13660         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
13661         * ebitmap.c (debug_ebitmap): Likewise.
13662         * function.c (debug_find_var_in_block_tree): Likewise.
13663         * print-rtl.c (debug_rtx): Likewise.
13664         (debug_rtx_count): Likewise.
13665         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
13666         * stor-layout.c (debug_rli): Likewise.
13667         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
13668         * tree-data-ref.c (debug_data_references,
13669         debug_data_dependence_relations, debug_data_reference,
13670         debug_data_dependence_relation, debug_rdg_vertex,
13671         debug_rdg_component, debug_rdg): Likewise.
13672         * tree-affine.c (debug_aff): Likewise.
13673         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
13674         Likewise.
13675         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
13676         * emit-rtl.c (verify_rtl_sharing): Likewise.
13677         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
13678         debug_value_expressions): Likewise.
13679         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
13680         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
13681         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
13682         * cfglayout.c (verify_insn_chain): Likewise.
13683         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
13684         debug_clast_stmt, debug_generated_program): Likewise.
13685         * ggc-page.c (debug_print_page_list): Likewise.
13686         * tree-ssa-ter.c (debug_ter): Likewise.
13687         * graphite-dependences.c (debug_pddr): Likewise.
13688         * sched-deps.c (debug_ds): Likewise.
13689         * tree-ssa.c (verify_ssa): Likewise.
13690         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
13691         debug_scattering_functions, debug_iteration_domains, debug_pdr,
13692         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
13693         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
13694         * tree-inline.c (debug_find_tree): Likewise.
13695         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
13696         debug_ppl_powerset_matrix): Likewise.
13697         * var-tracking.c (debug_dv): Likewise.
13698         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
13699         * cfgloop.c (verify_loop_structure): Likewise.
13700         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
13701         * c-common.c (verify_sequence_points): Likewise.
13702         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
13703         debug_candidates, debug_rgn_dependencies): Likewise.
13704         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
13705         * debug_constraint_graph, debug_solution_for_var,
13706         debug_sa_points_to_info): Likewise.
13707         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
13708         Likewie.
13709         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
13710         debug_loops, debug_loop, debug_loop_num): Likewise.
13711         * passes.c (debug_pass): Likewise.
13712         (dump_properties): Likewise; add cfglayout property.
13713         (debug_properties): Likewise.
13714         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
13715         * varpool.c (debug_varpool): Likewise.
13716         * regcprop.c (debug_value_data): Likewise.
13717         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
13718         debug_immediate_uses_for): Likewise.
13719
13720 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
13721
13722         PR bootstrap/44315
13723         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
13724         Filter out insn-flags.h.
13725
13726 2010-05-29  Jan Hubicka  <jh@suse.cz>
13727
13728         * cgraph.h (struct varpool_node_set_def,
13729         struct cgraph_node_set_def): Remove unused AUX pointer.
13730         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
13731         VEC_empty macro.
13732
13733 2010-05-29  Jan Hubicka  <jh@suse.cz>
13734
13735         PR middle-end/44324
13736         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
13737
13738 2010-05-29  Richard Guenther  <rguenther@suse.de>
13739
13740         * lto-streamer.c (cached_bp): New global variable.
13741         (bitpack_create): Return the cached bitpack, if available.
13742         (bitpack_delete): Clear and cache the bitpack, if appropriate.
13743         (bp_pack_value): Remove redundant asserts.
13744
13745 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
13746
13747         PR middle-end/44306
13748         * tree-if-conv.c (is_true_predicate): New.
13749         (is_predicated): Use is_true_predicate.
13750         (add_to_predicate_list): Same.  Do not use unshare_expr.
13751         (add_to_dst_predicate_list): Same.
13752
13753 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
13754
13755         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
13756         field on edges.
13757         (predicate_bbs): Same.
13758         (clean_predicate_lists): Same.
13759         (find_phi_replacement_condition): Do not AND the predicate from
13760         edge->aux.
13761
13762 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
13763
13764         PR bootstrap/44315
13765         * Makefile.in (build/gencondmd.o): Add a missing `\'.
13766
13767 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13768
13769         PR target/44261
13770         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
13771         (negdf2): Adjust expander pattern and use negdf2_slow.
13772         (negsf2): Likewise.
13773
13774 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
13775
13776         * basic-block.h (struct control_flow_graph): Move last_label_uid field
13777         up.
13778         * df.h (struct df_base_ref): Move regno field up.
13779         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
13780         * expr.h (struct separate_ops): Move location field up.
13781         * optabs.h (struct optab_d): Move libcall_basename field down.
13782         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
13783         * config/i386/i386.h (struct machine_function): Convert call_abi field
13784         into a bitfield.  Move cfa field to the end of the structure.
13785
13786 2010-05-29  Jan Hubicka  <jh@suse.cz>
13787
13788         * varpool.c (varpool_get_node): Fix lookup.
13789
13790 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
13791
13792         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
13793         RTL specific prototypes with #ifdef RTX_CODE.
13794         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
13795         * config/spu/t-spu-elf: Fix dependencies.
13796
13797         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
13798
13799 2010-05-29  Mike Stump  <mikestump@comcast.net>
13800
13801         PR bootstrap/44315
13802         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
13803         TM_H when building to avoid dependency loops.
13804
13805 2010-05-29  Jan Hubicka  <jh@suse.cz>
13806
13807         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
13808         refs and body; not the whole node for masters of materialized clones.
13809
13810 2010-05-29  Mike Stump  <mikestump@comcast.net>
13811
13812         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
13813
13814 2010-05-29  Jan Hubicka  <jh@suse.cz>
13815
13816         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
13817         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
13818         use of clone_function_name.
13819         * cgraph.h (cgraph_create_virtual_clone,
13820         cgraph_function_versioning): update prototypes.
13821         (clone_function_name): Declare.
13822         * ipa-cp.c (ipcp_insert_stage): Update call of
13823         cgraph_create_virtual_clone.
13824         * omp-low.c (create_omp_child_function_name): Use
13825         cgraph_create_virtual_clone.
13826         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
13827         (cgraph_function_versioning): Take SUFFIX argument; produce new name
13828         and make decl local.
13829
13830 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
13831
13832         * vec.h: Include statistics.h
13833         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
13834         with VEC_H.
13835
13836 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
13837
13838         * c-lex.c: Do not include c-tree.h.
13839         * c-pretty-print.c: Likewise.
13840         * c-opts.c: Likewise.
13841         * c-gimplify.c: Likewise.
13842         * c-common.c: Likewise.
13843         * c-dump.c: Likewise.  Include c-common.h.
13844
13845 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
13846
13847         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
13848         before including diagnostic-core.h.
13849         (c_cpp_error): New prototype moved from c-tree.h.
13850         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
13851         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
13852         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
13853         (c_cpp_error): Prototype moved to c-common.h.
13854         * Makefile.in: Update dependency for C_COMMON_H.
13855
13856 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
13857
13858         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
13859         * c-common.c (c_register_addr_space): Remove here.
13860         * c-decl.c (c_register_addr_space): Re-add here.
13861
13862 2010-05-28  Mike Stump  <mikestump@comcast.net>
13863
13864         * config/darwin-c.c: Remove c-tree.h include.
13865
13866 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
13867
13868         * gcc.c: Include diagnostic.h.
13869         (error_count): Remove.  All users changed to use errorcount.
13870         (programname): Remove.  All users changed to use progname.
13871         (fancy_abort, internal_error, fatal_error, error, warning, inform,
13872         fnotice): Remove.
13873         (execute): Don't include "Internal error" and bug reporting
13874         information in argument of internal_error call.
13875         (process_command): Don't increment error_count after calling
13876         perror_with_name.
13877         (input_filename): Rename to gcc_input_filename.  All users
13878         changed.
13879         (main): Call diagnostic_initialize.  Register delete_temp_files
13880         with atexit.  Use seen_error to test for errors.
13881         * gcc.h: Include diagnostic-core.h.
13882         (fatal_error, error, warning): Remove.
13883         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
13884         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
13885         (gcc.o): Update dependencies.
13886
13887 2010-05-28  Jeff Law  <law@redhat.com>
13888
13889         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
13890         functions.
13891         * ira.h (ira_bad_reload_regno): Declare
13892         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
13893
13894         * ira-color.c (update_curr_costs): Free updated hard reg costs.
13895         (ira_reassign_conflict_allocnos): Remove bogus asserts.
13896         (allocno_reload_assign): Likewise.
13897
13898 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
13899
13900         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
13901         build1_stat.
13902
13903 2010-05-28  Richard Guenther  <rguenther@suse.de>
13904
13905         PR lto/44312
13906         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
13907         Stream fixed-point constants mode.
13908         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
13909         and TYPE_PRECISION.
13910         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
13911         Stream fixed-point constants mode.
13912         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
13913         and TYPE_PRECISION.
13914
13915 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
13916
13917         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
13918         only place it was called from.
13919         (number_of_latch_executions): Do not return chrec_dont_know when the
13920         may_be_zero is a runtime condition: instead, return a COND_EXPR
13921         including the may_be_zero condition.
13922         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
13923         of nb_iterations.
13924         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
13925         COND_EXPRs.
13926
13927 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
13928
13929         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
13930         generate COND_EXPRs for degenerate_phi_result.
13931
13932 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
13933
13934         PR middle-end/44293
13935         * tree-if-conv.c (if_convertible_loop_p): Check the
13936         if-convertibility of phi nodes in non predicated BBs.
13937
13938 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
13939
13940         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
13941
13942 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
13943
13944         PR driver/15303
13945         * gcc.c (inform, warning, inform): New functions.
13946         (fatal_ice): Rename to internal_error; change cmsgid parameter to
13947         gmsgid.  All callers changed.
13948         (notice): Rename to fnotice; add parameter fp.  All callers changed.
13949         (fatal_error): Rename to fatal_signal.  All users changed.
13950         (fatal): Rename to fatal_error; change cmsgid parameter to
13951         gmsgid.  All callers changed.
13952         (process_command): Use warning instead of error for warnings.
13953         (end_going_arg): Don't use _() around argument of error.
13954         (do_spec_1): Use inform for message from %n specs.  Use warning
13955         instead of error for warnings.
13956         (main): Use inform for comparison messages.  Use warning for
13957         message about unused linker input.
13958         (error): Increment error_count.  Print "error: ".
13959         * gcc.h (fatal): Change to fatal_error.
13960         (warning): Declare.
13961         * config/darwin-driver.c (darwin_default_min_version): Use warning
13962         instead of fprintf for warnings.
13963         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
13964
13965 2010-05-28  Julian Brown  <julian@codesourcery.com>
13966
13967         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
13968         (*thumb2_addsi3_compare0_scratch): New.
13969         * config/arm/constraints.md (Pv): New.
13970         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
13971         for ARM mode only.
13972         (*addsi3_compare0_scratch): Likewise.
13973
13974 2010-05-28  Jan Hubicka  <jh@suse.cz>
13975
13976         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
13977         check.
13978         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
13979         only on local statics.
13980
13981 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
13982
13983         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
13984
13985 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
13986
13987         PR bootstrap/44314
13988         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
13989         (OPTION_GLIBC): Define.
13990
13991 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
13992
13993         PR debug/41048
13994         * dwarf2out.c (double_int_type_size_in_bits): New function.
13995         (round_up_to_align): Change first argument and return value to
13996         double_int.
13997         (field_byte_offset): Work internally on double_ints.
13998
13999         PR target/43636
14000         * builtins.c (expand_movstr): Use a temporary pseudo instead
14001         of target even when target is not NULL and not const0_rtx, but
14002         fails movstr predicate.
14003         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
14004
14005 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
14006
14007         * final.c (rest_of_clean_state): Use %m in errors instead of
14008         strerror (errno).
14009         * gengtype.c (read_input_list, close_output_files): Use xstrerror
14010         instead of strerror.
14011         * toplev.c (process_options): Use %m in errors instead of strerror
14012         (errno).
14013         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
14014         (errno).
14015
14016 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
14017
14018         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
14019         (ix86_canonical_va_list_type): Make static.  Add declaration.
14020         (ix86_enum_va_list): Make static.  Reindent.
14021         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
14022         (ix86_canonical_va_list_type): Ditto.
14023         (ix86_enum_va_list): Ditto.
14024
14025 2010-05-28  Richard Guenther  <rguenther@suse.de>
14026
14027         * lto-wrapper.c (run_gcc): With -save-temps generate a
14028         user-visible ltrans filename.  Fixup ltrans unit numbering.
14029
14030 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
14031
14032         * c-common.c (c_common_nodes_and_builtins): Replace use
14033         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
14034         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
14035         to ix86_enum_va_list.
14036         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
14037         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
14038         (TARGET_ENUM_VA_LIST_P): Add hook description.
14039         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
14040         * target.h (gcc_target): Add enum_va_list hook.
14041
14042         PR bootstrap/44299
14043         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
14044         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
14045         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
14046
14047 2010-05-28  Alan Modra  <amodra@gmail.com>
14048
14049         PR target/44266
14050         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
14051         emit_library_call machinery to set up __tls_get_addr calls.
14052
14053 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14054
14055         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
14056
14057 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
14058
14059         Revert fix for PR c++/44188
14060         * c-common.c (is_typedef_decl): Revert the moving of  this
14061         definition ...
14062         * tree.c (is_typedef_decl): ... here.
14063         (typdef_variant_p): Revert the moving of this  definition
14064         here from gcc/cp/tree.c.
14065         * c-common.h (is_typedef_decl): Revert the moving of this
14066         declaration ...
14067         * tree.h (is_typedef_decl): ... here.
14068         (typedef_variant_p): Revert the moving of this  declaration here
14069         from gcc/cp/cp-tree.h
14070         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
14071         (gen_tagged_type_die): Revert the splitting out of ...
14072         (gen_type_die_with_usage): ... this function. Revert the anonymous
14073         tagged type handling.
14074         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
14075         typedefs naming anonymous tagged types.
14076
14077 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
14078
14079         * config/rs6000/rs6000-modes.def (PSImode): Delete.
14080
14081 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
14082
14083         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
14084         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
14085         throughout.
14086         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
14087         "xer" to "ca".
14088         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
14089         XER_REGS to CA_REGS throughout.
14090         * config/rs6000/rs6000.h: Same.
14091         (ADDITIONAL_REGISTER_NAMES): Add "xer".
14092         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
14093         that mode_iterator "P" is the size for arithmetic carries as well.
14094         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
14095
14096 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
14097
14098         PR bootstrap/44255
14099         * combine.c (struct rtx_subst_pair): Define unconditionally.
14100         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
14101         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
14102         Call make_compound_operation on pair->to.
14103         (propagate_for_debug): Don't call make_compound_operation here.
14104         Always use simplify_replace_fn_rtx.
14105
14106 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
14107
14108         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
14109         * config/xtensa/xtensa.c (override_options): Check
14110           TARGET_FORCE_NO_PIC and set flag_pic.
14111         * config/xtensa/xtensa.opt: Document -mforce-no-pic
14112
14113 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
14114
14115         PR bootstrap/44299
14116         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
14117         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
14118
14119 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
14120
14121         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
14122         toplev.h.
14123         * diagnostic.c: Don't include toplev.h.
14124         (progname): Define.  Moved from toplev.c.
14125         (seen_error): New function.
14126         * diagnostic.h: Include diagnostic-core.h.
14127         (diagnostic_t, emit_diagnostic): Don't declare here.
14128         * toplev.c (progname): Move to toplev.c.
14129         (emit_debug_global_declarations, compile_file, finalize,
14130         do_compile, toplev_main): Use seen_error.
14131         * toplev.h: Include diagnostic-core.h.
14132         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
14133         internal_error, warning, warning_at, error, error_n, error_at,
14134         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
14135         verbatim, fnotice, progname): Move to diagnostic-core.h.
14136         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
14137         (expand_builtin_expect): Use seen_error.
14138         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
14139         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
14140         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
14141         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
14142         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
14143         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
14144         errorcount for errors.
14145         * c-opts.c (c_common_finish): Use seen_error.
14146         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
14147         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
14148         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
14149         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
14150         (get_coverage_counts): Use seen_error.
14151         * dwarf2out.c (dwarf2out_finish): Use seen_error.
14152         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
14153         gimplify_body): Use seen_error.
14154         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
14155         * ipa-pure-const.c (gate_pure_const): Use seen_error.
14156         * ipa-reference.c (gate_reference): Use seen_error.
14157         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
14158         * lambda-code.c: Include diagnostic-core.h instead of
14159         diagnostic.h.
14160         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
14161         * lto-compress.c: Include diagnostic-core.h instead of
14162         diagnostic.h.
14163         * lto-section-in.c: Include diagnostic-core.h instead of
14164         diagnostic.h.
14165         * lto-streamer-out.c: Include diagnostic-core.h instead of
14166         diagnostic.h.
14167         * lto-streamer.c: Include diagnostic-core.h instead of
14168         diagnostic.h.
14169         (gate_lto_out): Use seen_error.
14170         * matrix-reorg.c: Include diagnostic-core.h instead of
14171         diagnostic.h.
14172         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
14173         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
14174         (gate_expand_omp, lower_omp_1): Use seen_error.
14175         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
14176         (rest_of_decl_compilation, rest_of_type_compilation,
14177         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
14178         * tree-cfg.c (label_to_block_fn): Use seen_error.
14179         * tree-inline.c (optimize_inline_calls): Use seen_error.
14180         * tree-mudflap.c (mudflap_finish_file): Use
14181         seen_error.
14182         * tree-optimize.c (gate_all_optimizations,
14183         gate_all_early_local_passes, gate_all_early_optimizations): Use
14184         seen_error.
14185         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
14186         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
14187         (varpool_remove_unreferenced_decls,
14188         varpool_assemble_pending_decls): Use seen_error.
14189         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
14190         (TOPLEV_H, DIAGNOSTIC_H): Update.
14191         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
14192         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
14193         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
14194         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
14195         coverage.o, lambda-code.o): Update dependencies.
14196
14197 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
14198
14199         PR c++/44188
14200         * c-common.c (is_typedef_decl): Move this definition ...
14201         * tree.c (is_typedef_decl): ... here.
14202         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
14203         * c-common.h (is_typedef_decl): Move this declaration ...
14204         * tree.h (is_typedef_decl): ... here.
14205         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
14206         * dwarf2out.c (is_naming_typedef_decl): New function.
14207         (gen_tagged_type_die): Split out of ...
14208         (gen_type_die_with_usage): ... this function. When an anonymous
14209         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
14210         is emitted for the typedef.
14211         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
14212         anonymous tagged types.
14213
14214 2010-05-27  Jason Merrill  <jason@redhat.com>
14215
14216         * print-tree.c (debug_vec_tree): New fn.
14217         (print_vec_tree): New fn.
14218         * tree.h: Declare them.
14219         * gdbinit.in (pvt): New command.
14220
14221         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
14222
14223         * gdbinit.in (pdd): New command.
14224
14225 2010-05-27  Jan Hubicka  <jh@suse.cz>
14226
14227         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
14228         (update_caller_keys): Return early if there are no callers;
14229         only update fibheap when decresing the key.
14230         (update_callee_keys): Avoid recursion.
14231         (decide_inlining_of_small_functions): When badness does not match;
14232         re-insert into fibheap.
14233
14234 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
14235
14236         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
14237         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
14238         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
14239         (ALL_HOST_OBJS): Now a union of the above two.
14240         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
14241         all files in ALL_HOST_FRONTEND_OBJS.
14242         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
14243
14244         * c-common.c: Pretend to be a backend file by undefining
14245         IN_GCC_FRONTEND (still need rtl.h here).
14246
14247 2010-05-27  Jan Hubicka  <jh@suse.cz>
14248
14249         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
14250         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
14251
14252 2010-05-27  Jan Hubicka  <jh@suse.cz>
14253
14254         * sched-ebb.c: Rename struct deps to struct deps_desc.
14255         * ddg.c: Likewise.
14256         * sel-sched-ir.c: Likewise.
14257         * sched-deps.c: Likewise.
14258         * sched-int.h: Likewise.
14259         * sched-rgn.c: Likewise.
14260
14261 2010-05-27  Jon Beniston  <jon@beniston.com>
14262
14263         PR 43726
14264         * config/lm32/lm32.h: Remove definition of
14265         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
14266
14267 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
14268
14269         PR lto/44230
14270         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
14271
14272 2010-05-27  Richard Guenther  <rguenther@suse.de>
14273
14274         PR tree-optimization/44284
14275         * tree-vect-stmts.c (vectorizable_assignment): Handle
14276         sign-changing conversions as simple copy.
14277
14278 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14279
14280         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
14281         Bionic C library.
14282         (__gthread_active_p): Check for pthread_create if compiling against
14283         Bionic C library.
14284
14285 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14286
14287         Support compilation for Android platform.  Reimplement -mandroid.
14288
14289         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
14290         (*android*): Set ANDROID_DEFAULT.
14291         (arm*-*-linux*): Include linux-android.h.
14292         (arm*-*-eabi*): Don't include previous -mandroid implementation.
14293         * config/arm/eabi.h: Remove, move Android-specific parts ...
14294         * config/linux-android.h: ... here.  New file.
14295         * config/arm/eabi.opt: Rename to ...
14296         * config/linux-android.opt: ... this.
14297         (mandroid): Allow -mno-android option.  Initialize based on
14298         ANDROID_DEFAULT.
14299         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
14300         Move logic to corresponding LINUX_TARGET_* macros.
14301         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
14302         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
14303         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
14304         Android definitions.
14305         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
14306         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
14307         Document.
14308
14309 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14310
14311         Add support for Bionic C library
14312
14313         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
14314         macro.
14315         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
14316         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
14317
14318         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
14319         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
14320         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
14321         to support multiple C libraries.  Handle Bionic.
14322         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
14323         (BIONIC_DYNAMIC_LINKER64): Define.
14324         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
14325         Update.
14326         (TARGET_HAS_SINCOS): Enable for Bionic.
14327
14328         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
14329         the last option specified on command line take effect.
14330         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
14331         (mbionic): New.
14332         (mglibc, muclibc): Update.
14333
14334         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
14335         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
14336         DEFAULT_LIBC.
14337
14338         * doc/invoke.texi (-mglibc, -muclibc): Update.
14339         (-mbionic): Document.
14340
14341 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14342
14343         * c-common.h (c_register_addr_space): Add prototype.
14344         (ADDR_SPACE_KEYWORD): Remove.
14345         * c-common.c (c_register_addr_space): New function.
14346         (c_addr_space_name): Reimplement.
14347         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
14348
14349         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
14350         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
14351
14352         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
14353         Remove TARGET_ADDR_SPACE_KEYWORDS.
14354
14355 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
14356
14357         * input.c: New file.
14358         * input.h (main_input_filename): Move declaration to toplev.h.
14359         * toplev.c (input_location, line_table): Move to input.c
14360         * toplev.h (main_input_filename): Move declaration from input.h.
14361         * tree.c (expand_location): Move to input.c.
14362         * Makefile.in (OBJS-common): Add input.o.
14363         (input.o): Add dependencies.
14364
14365 2010-05-27  Richard Guenther  <rguenther@suse.de>
14366
14367         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
14368         for non-existant files.
14369         (fork_execute): Mark args_name file as deleted.
14370
14371 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
14372
14373         PR bootstrp/44287
14374         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
14375         (narrow_signed_type): Likewise.
14376
14377 2010-05-26  Jan Hubicka  <jh@suse.cz>
14378
14379         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
14380         edge only when checking is enabled; check using former_clone_of;
14381         check inline clones too.
14382         (cgraph_materialize_clone): Record former_clone_of pointer.
14383         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
14384         combining redirections; dump args_to_skip bitmap
14385         (cgraph_materialize_all_clones): Do no redirection here.
14386         * ipa-inline.c (inline_transform): Do redirection here.
14387         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
14388         cheking only).
14389
14390 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
14391
14392         * config/avr/avr-c.c: Do not include regs.h.
14393         Include cpplib.h for cpp_define and tree.h for c-common.h.
14394         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
14395         * config/avr/t-avr: Fix dependencies for avr-c.o.
14396
14397 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
14398
14399         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
14400         string instead of SYMBOL_REF rtx.
14401         * rtl.h (set_stack_check_libfunc): Move prototype from here...
14402         * libfuncs.h: ...to here.  Adjust for explow.c change.
14403
14404 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
14405
14406         * pretty-print.c: Don't include ggc.h.
14407         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
14408         (identifier_to_locale): Use them for allocation.
14409         * pretty-print.h (identifier_to_locale_alloc,
14410         identifier_to_locale_free): Declare.
14411         * toplev.c (alloc_for_identifier_to_locale): New.
14412         (general_init): Set identifier_to_locale_alloc and
14413         identifier_to_locale_free.
14414         * Makefile.in (pretty-print.o): Update dependencies.
14415
14416 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
14417
14418         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
14419         pointer types if they have different alignment or mode.
14420
14421 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
14422
14423         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
14424         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14425         * config/sparc/sparc-protos.h (function_value): Remove declaration.
14426         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
14427         sparc_function_value_regno_p): New functions.
14428         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14429         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14430         (function_value): Rename to...
14431         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
14432         argument to 'outgoing'.
14433         (function_arg_record_value, function_arg_union_value,
14434         function_arg_vector_value): Update comment.
14435
14436 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
14437
14438         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
14439         (fde_needed_for_eh_p): New predicate.
14440         (output_call_frame_info): Use it throughout to decide whether FDEs
14441         are needed for EH purpose.
14442         (dwarf2out_begin_prologue): Reorder assignments.
14443
14444 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14445
14446         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
14447         special case loop->header.
14448         (is_predicated): New.
14449         (if_convertible_loop_p): Call it.
14450
14451 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14452
14453         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
14454         iterator in parameter.  Do not generate code during the analysis.
14455         (tree_if_convert_cond_stmt): Removed.
14456         (tree_if_convert_stmt): Removed.
14457         (predicate_bbs): New.
14458         (if_convertible_loop_p): Call predicate_bbs.
14459         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
14460         now contains all the analysis part.
14461
14462 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14463
14464         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
14465         statements in the analysis part.
14466         (tree_if_convert_stmt): Update comment.
14467         (remove_conditions_and_labels): New.
14468         (combine_blocks): Call remove_conditions_and_labels.
14469         (tree_if_conversion): Update comment.
14470
14471 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14472
14473         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
14474         than 2 predecessors or more than 2 successors.
14475
14476 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14477
14478         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
14479         of loops in which the data dependence analysis fails.
14480
14481 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14482
14483         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
14484         CDI_POST_DOMINATORS.
14485         (tree_if_conversion): Same.
14486
14487 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14488
14489         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
14490
14491 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
14492
14493         * tree-if-conv.c: Update copyright years.  Fix comments.
14494         Fix indentation.
14495
14496 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
14497
14498         * builtin-types.def (BT_INT128): New primitive type.
14499         (BT_UINT128): Likewise.
14500         * c-common.c (c_common_r): Add __int128 keyword.
14501         (c_common_type_for_size): Handle __int128.
14502         (c_common_type_for_mode): Likewise.
14503         (c_common_signed_or_unsigned_type): Likewise.
14504         (c_common_nodes_and_builtins): Add builtin type
14505         if target supports 128-bit integer scalar.
14506         * c-common.h (enum rid): Add RID_INT128.
14507         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
14508         if target supports 128-bit integer scalar.
14509         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
14510         (finish_declspecs): Likewise.
14511         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
14512         (c_token_starts_declspecs): Likewise.
14513         (c_parser_declspecs): Likewise.
14514         (c_parser_attributes): Likewise.
14515         (c_parser_objc_selector): Likewise.
14516         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
14517         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
14518         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
14519         * tree.c (make_or_reuse_type): Likewise.
14520         (make_unsigned_type): Likewise.
14521         (build_common_tree_nodes_2): Likewise.
14522         * tree.h (enum integer_type_kind): Add itk_int128 and
14523         itk_unsigned_int128.
14524         (int128_integer_type_node): New define.
14525         (int128_unsigned_type_node): New define.
14526         * doc/extend.texi: Add documentation about __int128 type.
14527
14528 2010-05-26  Richard Guenther  <rguenther@suse.de>
14529
14530         * tree-ssa-sccvn.c (copy_nary): Adjust.
14531         (copy_phis): Rename to ...
14532         (copy_phi): ... this.  Adjust.
14533         (copy_references): Rename to ...
14534         (copy_reference): ... this.  Adjust.
14535         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
14536         result into the valid table.
14537
14538 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
14539
14540         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
14541         insn-config.h, insn-codes.h, recog.h, and optabs.h.
14542
14543 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14544
14545         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
14546
14547 2010-05-26  Richard Guenther  <rguenther@suse.de>
14548
14549         * opts.c (common_handle_option): Handle OPT_Ofast.
14550
14551 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
14552
14553         * diagnostic.c: Don't include opts.h.
14554         (permissive_error_option): Define.
14555         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
14556         for classify_diagnostic.  Don't use memset for
14557         classify_diagnostic.  Initialize new and recently added fields.
14558         (diagnostic_classify_diagnostic): Use context->n_opts instead of
14559         N_OPTS.
14560         (diagnostic_report_diagnostic): Pass context parameter to
14561         diagnostic_report_warnings_p.  Use option_enabled and option_name
14562         hooks from context.
14563         (emit_diagnostic): Use permissive_error_option.
14564         (permerror): Likewise.
14565         * diagnostic.h: Don't include options.h.
14566         (struct diagnostic_context): Add n_opts, opt_permissive,
14567         inhibit_warnings, warn_system_headers, option_enabled and
14568         option_name fields.  Change classify_diagnostic to a pointer.
14569         * opts-diagnostic.h: New file.
14570         * opts.c: Include opts-diagnostic.h.
14571         (common_handle_option): Set global_dc fields for -Wfatal-errors,
14572         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
14573         (option_name): New function.
14574         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
14575         (c_common_handle_option): Set global_dc->permissive for
14576         -fpermissive.
14577         * c-common.c (c_cpp_error): Save and restore
14578         global_dc->warn_system_headers, not variable warn_system_headers.
14579         * toplev.c: Include opts-diagnostic.h.
14580         (general_init): Update call to diagnostic_initialize.  Set
14581         global_dc->show_column, global_dc->option_enabled and
14582         global_dc->option_name.
14583         (process_options): Don't set global_dc fields here.
14584         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
14585         (diagnostic.o, opts.o, toplev.o): Update dependencies.
14586
14587 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
14588
14589         * config/picochip/picochip.md (movsi): Split a movsi from a
14590         const after reload.
14591
14592 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14593
14594         * ggc-zone.c: Update copyright year.
14595         (poison_region): Mark memory for Valgrind as undefined before
14596         memset () call and inaccessible afterwards.
14597         (ggc_pch_total_size): Change type of i to int.
14598
14599 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14600
14601         * ggc-common.c (ggc_free_overhead): Allow empty slot.
14602
14603 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14604
14605         * ggc-common.c: Update copyright year.
14606         (ggc_rlimit_bound): Remove prototype.  Compile only if
14607         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
14608         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
14609         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
14610         (ggc_min_heapsize_heuristic): Likewise.
14611
14612 2010-05-26  Richard Guenther  <rguenther@suse.de>
14613
14614         PR rtl-optimization/44164
14615         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
14616         no-common access-path disambiguation.
14617         (indirect_ref_may_alias_decl_p): Adjust.
14618         (indirect_refs_may_alias_p): Likewise.
14619         (refs_may_alias_p_1): Likewise.
14620
14621 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
14622
14623         * c-typeck.c: Do not include expr.h.
14624
14625 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
14626
14627         * rtl.h (decl_default_tls_model): Move prototype from here...
14628         * output.h: ...to here.
14629         * c-decl.c: Do not include rtl.h.
14630         * c-pragma.c: Likewise.
14631         * c-parser.c: Likewise.
14632         * c-gimplify.c: Likewise.  And also not hard-reg-set.
14633         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
14634         FIXME note for it.  Add a FIXME note for expr.h.
14635         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
14636         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
14637         defined.
14638
14639 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
14640
14641         PR target/44199
14642         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
14643         or total_size is larger than red zone size for non-V4 ABI, emit a
14644         stack_tie resp. frame_tie insn before stack pointer restore.
14645         * config/rs6000/rs6000.md (frame_tie): New insn.
14646
14647 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
14648
14649         * function.h (struct function): Add can_throw_non_call_exceptions bit.
14650         * lto-streamer-in.c (input_function): Stream it in.
14651         * lto-streamer-out.c (output_function): Stream it out.
14652         * function.c (allocate_struct_function): Set it.
14653         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
14654         for flag_non_call_exceptions.
14655         * cfgbuild.c (control_flow_insn_p): Likewise.
14656         (make_edges): Likewise.
14657         * cfgexpand.c (expand_stack_alignment): Likewise.
14658         * combine.c (distribute_notes): Likewise.
14659         * cse.c (cse_extended_basic_block): Likewise.
14660         * except.c (insn_could_throw_p): Likewise.
14661         * gcse.c (simple_mem): Likewise.
14662         * ipa-pure-const.c (check_call): Likewise.
14663         (check_stmt ): Likewise.
14664         * lower-subreg.c (lower-subreg.c): Likewise.
14665         * optabs.c (emit_libcall_block): Likewise.
14666         (prepare_cmp_insn): Likewise.
14667         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
14668         * postreload.c (rest_of_handle_postreload): Likewise.
14669         * reload1.c (reload_as_needed): Likewise.
14670         (emit_input_reload_insns): Likewise.
14671         (emit_output_reload_insns): Likewise.
14672         (fixup_abnormal_edges): Likewise.
14673         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
14674         * store-motion.c (find_moveable_store): Likewise.
14675         * tree-eh.c (stmt_could_throw_p): Likewise.
14676         (tree_could_throw_p): Likewise.
14677         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
14678         * config/arm/arm.c (arm_expand_prologue): Likewise.
14679         (thumb1_expand_prologue): Likewise.
14680         * config/rx/rx.md (cbranchsf4): Likewise.
14681         (cmpsf): Likewise.
14682         * config/s390/s390.c (s390_emit_prologue): Likewise.
14683         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
14684         (inline_forbidden_into_p): New predicate.
14685         (expand_call_inline): Use it to forbid inlining.
14686         (tree_can_inline_p): Likewise.
14687
14688 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
14689
14690         * config/i386/i386-c.c: Do not include rtl.h.
14691         * config/i386/t-i386: Update dependencies.
14692
14693 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
14694
14695         * attribs.c: Do not include rtl.h.
14696         * Makefile.in: Update dependencies.
14697
14698 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
14699
14700         * double-int.h (double_int_and): New.
14701         * combine.c (try_combine): Clean up, use double_int_* and
14702         immed_double_int_const functions.
14703
14704 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14705
14706         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
14707         stderr to /dev/null instead of grep -q.
14708         * configure: Regenerate.
14709
14710 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
14711
14712         * Makefile.in (EXCEPT_H): Fix typo.
14713
14714 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
14715
14716         * ira-build.c (update_conflict_hard_reg_costs): New.
14717         (ira_build): Call update_conflict_hard_reg_costs.
14718
14719 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
14720
14721         PR debug/41371
14722         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
14723         ENABLE_CHECKING.
14724         (intersect_loc_chains): Walk the s2var's loc_chain together
14725         with s1node chain as long as the locations are equal, don't
14726         call find_loc_in_1pdv in that case.
14727
14728         PR debug/42801
14729         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
14730         (copy_bind_expr): ... instead of here.
14731         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
14732         if the block hasn't been remapped.
14733         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
14734         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
14735
14736 2010-05-25  Richard Guenther  <rguenther@suse.de>
14737
14738         PR middle-end/44069
14739         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
14740         out-of-bounds array accesses.
14741
14742 2010-05-25  Richard Guenther  <rguenther@suse.de>
14743
14744         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
14745         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
14746         (run_gcc): Re-organize to make cleanup easier.
14747
14748 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14749
14750         * config/s390/s390.c (optimization_options): Fix and move the
14751         flag_prefetch_loop_arrays override ...
14752         (override_options): ... here.
14753
14754 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
14755
14756         * diagnostic.c: Don't include plugin.h.
14757         (diagnostic_report_diagnostic): Don't handle plugins specially
14758         here.  Pass context to internal_error callback.
14759         * diagnostic.h (struct diagnostic_context): Add context parameter
14760         to internal_error callback.
14761         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
14762         * plugin.h (struct diagnostic_context): Declare.
14763         (warn_if_plugins, plugins_internal_error_function): Declare.
14764         * toplev.c (general_init): Set global_dc->internal_error.
14765         * Makefile.in (diagnostic.o): Update dependencies.
14766
14767 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
14768
14769         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
14770         * config/rs6000/t-darwin64: New.
14771         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
14772         build crt2.
14773
14774 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
14775
14776         PR 44203
14777         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
14778         match the original (and intended) behaviour before r159557.  This
14779         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
14780         in two ways.
14781
14782 2010-05-25  Richard Guenther  <rguenther@suse.de>
14783
14784         * doc/invoke.texi: Document -Ofast.
14785         * target.h (struct gcc_target): Add handle_ofast.
14786         * target-def.h (TARGET_HANDLE_OFAST): Add.
14787         (TARGET_INITIALIZER): Adjust.
14788         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
14789         * common.opt (Ofast): Add.
14790
14791 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
14792
14793         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
14794         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
14795
14796 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
14797
14798         PR target/43610
14799         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
14800         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
14801         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
14802         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
14803
14804 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
14805
14806         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
14807         DW_OP_minus with negated offset instead of DW_OP_plus.
14808         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
14809
14810 2010-05-25  Wei Guozhi  <carrot@google.com>
14811
14812         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
14813         tst instruction and a new alternative.
14814         * config/arm/constraints.md (Pu): New constraint.
14815
14816 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
14817
14818         * function.c (assign_stack_local_1): Initialize variable
14819         to avoid warning when bootstrapping at -O3.
14820
14821 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
14822
14823         * configure.ac (all_lang_makefiles): Remove everything related to it.
14824         * configure: Regenerate.
14825         * Makefile.in: Fix reference to ada Make-lang.in.
14826         Remove support for LANG_MAKEFILES.
14827
14828 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
14829             Sandra Loosemore  <sandra@codesourcery.com>
14830
14831         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
14832         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
14833         description.  Add arm_neon_fp16_ok.
14834         (Add Options): Add arm_neon and arm_neon_fp16.
14835
14836 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
14837
14838         * diagnostic.c: Don't include flags.h.
14839         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
14840         context parameters.  Check flags in the context passed as a parameter.
14841         (diagnostic_build_prefix): Add context parameter.  Check
14842         show_column flag in context.
14843         (diagnostic_action_after_output): Check fatal_errors flag in context.
14844         (diagnostic_report_current_module): Check show_column flag in context.
14845         (default_diagnostic_starter): Update call to
14846         diagnostic_build_prefix.
14847         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
14848         (emit_diagnostic): Pass context to permissive_error_kind.
14849         (permerror): Pass context to permissive_error_kind.
14850         * diagnostic.h (struct diagnostic_context): Add show_column,
14851         pedantic_errors, permissive and fatal_errors fields.
14852         (diagnostic_build_prefix): Update prototype.
14853         * langhooks.c
14854         * toplev.c (process_options): Set flags in global_dc from
14855         flag_show_column, flag_pedantic_errors, flag_permissive,
14856         flag_fatal_errors.
14857         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
14858         to diagnostic_build_prefix.
14859         * Makefile.in (diagnostic.o): Update dependencies.
14860
14861 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
14862
14863         * config/i386/ia32intrin.h (__crc32q): Define only if
14864         __SSE4_2__ is defined.
14865
14866 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
14867
14868         PR target/44132
14869         PR middle-end/43602
14870         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
14871         DECL_VISIBILITY_SPECIFIED.
14872         (emutls_decl): Set DECL_PRESERVE_P and copy
14873         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
14874         (emutls_finalize_control_var): New callback.
14875         (emutls_finish): Finalize emutls control variables.
14876         * toplev.c (compile_file): Move the call to emutls_finish ()
14877         before varpool_assemble_pending_decls ().
14878
14879 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
14880
14881         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
14882         added to the preprocessor condition.
14883
14884 2010-05-24  Paul Brook  <paul@codesourcery.com>
14885
14886         * gengtype-lex.l: Add HARD_REG_SET.
14887         * expr.c (expand_expr_real_1): Record writes to hard registers.
14888         * function.c (rtl_data): Add asm_clobbers.
14889         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
14890         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
14891         Use crtl->asm_clobbers.
14892
14893 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14894
14895         * doc/makefile.texi (Makefile): Mention stages 'profile'
14896         and 'feedback' for profiledbootstrap.
14897
14898 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
14899
14900         PR target/44245
14901         * config/i386/i386.c (def_builtin): Properly check
14902         OPTION_MASK_ISA_64BIT.
14903
14904 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
14905
14906         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
14907         typedefs with different but compatible types.  Allow duplicate
14908         typedefs with the same type except for pedantic non-C1X, but give
14909         warning for variably modified types.
14910         * c-typeck.c (tagged_types_tu_compatible_p,
14911         function_types_compatible_p, type_lists_compatible_p,
14912         comptypes_internal): Add parameter different_types_p; set
14913         *different_types_p for different but compatible types.  All
14914         callers changed.
14915         (comptypes_check_different_types): New.
14916         * c-tree.h (comptypes_check_different_types): Declare.
14917
14918 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
14919
14920         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
14921         * jump.c: Include basic-block.h.
14922         * profile.c: Likewise.
14923         * tree-profile.c: Likewise.
14924         * coverage.c: Likewise.
14925         * basic-block.h (optimize_function_for_size_p): Move to function.h.
14926         (optimize_function_for_speed_p): Likewise.
14927         * function.h (optimize_function_for_size_p,
14928         optimize_function_for_speed_p): Moved here from basic-block.h.
14929         * Makefile.in: Update dependencies.
14930
14931 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14932
14933         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
14934         before calling make; allow override through $MAKE.
14935         * doc/invoke.texi (Optimize Options): Document override.
14936
14937 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
14938
14939         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
14940         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14941         (rs6000_mode_dependent_address_ptr): Make static.
14942         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14943         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
14944         Remove.
14945
14946 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
14947
14948         PR target/43869
14949         * config/i386/i386.c: Make sure that the correct regparm is passed.
14950
14951 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
14952
14953         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
14954         * sbitmap.c: ...to here to internalize sbitmap element access.
14955         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
14956         Explain why basic-block.h is included.
14957         * function.h: Include tm.h for CUMULATIVE_ARGS.
14958         * Makefile.in: Update dependencies.
14959
14960 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
14961
14962         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
14963         New core types.
14964         * sbitmap.h (struct sbitmap_def): Do not typedef here.
14965         * sbitmap.c: Include sbitmap.h.
14966         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
14967         hard-reg-set.h.  Split everything related to regsets out from here...
14968         * regset.h: ...to here.  New file.
14969         * df.h: Include regset.h and sbitmap.h.
14970         * tree-flow.h: Likewise.
14971         * cfgloop.h: Likewise.
14972         * except.h: Do not include sbitmap.h.  Include hashtab.h.
14973         * cgraph.h: Include vec.h and function.h.
14974         * reload.h (struct insn_chain): Change types of live_throughout
14975         and dead_or_set from regset_head to bitmap_head.
14976         (compute_use_by_pseudos): Be defined also if regset.h is not included.
14977         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
14978         spilled_regs from regset_head to bitmap_head to avoid dependency
14979         in regset.h.
14980         * sel-sched-ir.h: Include regset.h.
14981         * reload.c: Include df.h before reload.h.
14982         * caller-save.c: Likewise.
14983         * reload1.c: Likewise.
14984         * ira.c: Likewise.
14985         (mark_elimination): Update type of r to bitmap, consistent with
14986         DF_LR_IN.
14987         * dominance.c: Include bitmap.h.
14988         * modulo-sched.c: Include df.h.
14989         * cfganal.c: Include bitmap.h and sbitmap.h.
14990         * cfgbuild.c: Include sbitmap.h.
14991         * lcm.c: Include sbitmap.h.
14992         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
14993         * domwalk.c: Include sbitmap.h, exclude ggc.h.
14994         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
14995         * cselib.c: Include bitmap.h.
14996         * tree-optimize.c: Include regset.h.
14997         * stmt.c: Include bitmap.h.
14998         * Makefile.in: Update dependencies.
14999
15000 2010-05-22  Jan Hubicka  <jh@suse.cz>
15001
15002         * cgraph.h (struct varpool_node): Add same_comdat_group.
15003         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
15004         pointer.
15005         (output_varpool): Update call of lto_output_varpool_node.
15006         (input_varpool): Read same_comdat_group pointer.
15007         (input_varpool_1): Fixup same_comdat_group pointer.
15008         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
15009         group is needed, all are.
15010         * varpool.c (varpool_remove_node): Remove node from same comdat group
15011         linklist too.
15012         (varpool_analyze_pending_decls): Walk same comdat groups.
15013
15014 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
15015
15016         * rtl.h (union rtunion_def): Remove rt_bit member.
15017         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
15018         * print-rtl (print_rtx): Do not print the member.
15019         * gengtype.c (adjust_field_rtx_def): Do not handle it.
15020         * gengenrtl.c (type_from_format): Likewise.
15021         (accessor_from_format): Likewise.
15022
15023 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
15024
15025         * dbgcnt.c: Include toplev.h instead of errors.h.
15026         * ira-emit.c: Don't include errors.h.
15027         * ira.c: Include toplev.h instead of errors.h.
15028         * lto-compress.c: Include toplev.h instead of errors.h.
15029         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
15030         ira.o, dbgcnt.o): Update dependencies.
15031
15032 2010-05-22  Richard Guenther  <rguenther@suse.de>
15033
15034         * gimple.c (gimple_types_compatible_p): Check type qualifications
15035         before merging pointer to complete and pointer to incomplete type.
15036         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
15037         we use our own resolution algorithm.  The gold linker plugin
15038         doesn't do the job we want it to do here.
15039
15040 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
15041
15042         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15043         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15044         (sparc_mode_dependent_address_p): New function.
15045
15046 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
15047
15048         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
15049
15050         * timevar.c: Do not include any core headers.
15051         (timevar_print): De-i18n-ize.
15052         (print_time): Likewise.
15053         * timevar.h (timevar_push, timevar_pop): Make inline functions.
15054
15055 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
15056
15057         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
15058         langhooks-def.h.
15059         (diagnostic_initialize): Initialize x_data not last_function.
15060         (diagnostic_report_current_function): Move to tree-diagnostic.c.
15061         (default_diagnostic_starter): Call
15062         diagnostic_report_current_module not
15063         diagnostic_report_current_function.
15064         (diagnostic_report_diagnostic): Initialize x_data not
15065         abstract_origin.
15066         (verbatim): Likewise.
15067         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
15068         x_data.
15069         (struct diagnostic_context): Change last_function to x_data.
15070         (diagnostic_auxiliary_data): Replace with
15071         diagnostic_context_auxiliary_data and
15072         diagnostic_info_auxiliary_data.
15073         (diagnostic_last_function_changed, diagnostic_set_last_function,
15074         diagnostic_report_current_function): Move to tree-diagnostic.h.
15075         (print_declaration, dump_generic_node, print_generic_stmt,
15076         print_generic_stmt_indented, print_generic_expr,
15077         print_generic_decl, debug_c_tree, dump_omp_clauses,
15078         print_call_name, debug_generic_expr, debug_generic_stmt,
15079         debug_tree_chain, default_tree_printer): Move to
15080         tree-pretty-print.h.
15081         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
15082         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
15083         gimple-pretty-print.h.
15084         * pretty-print.c: Don't include tree.h
15085         (pp_base_format): Don't handle %K here.
15086         (pp_base_tree_identifier): Move to tree-pretty-print.c.
15087         * pretty-print.h (text_info): Change abstract_origin to x_data.
15088         (pp_tree_identifier, pp_unsupported_tree,
15089         pp_base_tree_identifier): Move to tree-pretty-print.h.
15090         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
15091         tree-pretty-print.h: New files.
15092         * tree-pretty-print.c: Include tree-pretty-print.h.
15093         (percent_K_format): New.  Moved from pretty-print.c.
15094         (pp_base_tree_identifier): Move from pretty-print.c.
15095         * c-objc-common.c: Include tree-pretty-print.h.
15096         (c_tree_printer): Handle %K here.
15097         * langhooks.c: Include tree-diagnostic.h.
15098         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
15099         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
15100         (default_tree_printer): Handle %K using percent_K_format.
15101         (general_init): Use default_tree_diagnostic_starter.
15102         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
15103         (free_lang_data): Use default_tree_diagnostic_starter.
15104         * c-pretty-print.c: Include tree-pretty-print.h.
15105         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
15106         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
15107         * dwarf2out.c: Include tree-pretty-print.h.
15108         * except.c: Include tree-pretty-print.h.
15109         * gimple-pretty-print.c: Include tree-pretty-print.h and
15110         gimple-pretty-print.h.
15111         * gimplify.c: Include tree-pretty-print.h.
15112         * graphite-poly.c: Include tree-pretty-print.h and
15113         gimple-pretty-print.h.
15114         * ipa-cp.c: Include tree-pretty-print.h.
15115         * ipa-inline.c: Include gimple-pretty-print.h.
15116         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
15117         * ipa-pure-const.c: Include gimple-pretty-print.h.
15118         * ipa-struct-reorg.c: Include tree-pretty-print.h and
15119         gimple-pretty-print.h.
15120         * ipa-type-escape.c: Include tree-pretty-print.h.
15121         * print-rtl.c: Include tree-pretty-print.h.
15122         * print-tree.c: Include gimple-pretty-print.h.
15123         * sese.c: Include tree-pretty-print.h.
15124         * tree-affine.c: Include tree-pretty-print.h.
15125         * tree-browser.c: Include tree-pretty-print.h.
15126         * tree-call-cdce.c: Include gimple-pretty-print.h.
15127         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
15128         * tree-chrec.c: Include tree-pretty-print.h.
15129         * tree-data-ref.c: Include tree-pretty-print.h and
15130         gimple-pretty-print.h.
15131         * tree-dfa.c: Include tree-pretty-print.h.
15132         * tree-if-conv.c: Include tree-pretty-print.h and
15133         gimple-pretty-print.h.
15134         * tree-inline.c: Include tree-pretty-print.h.
15135         * tree-into-ssa.c: Include tree-pretty-print.h and
15136         gimple-pretty-print.h.
15137         * tree-nrv.c: Include tree-pretty-print.h.
15138         * tree-object-size.c: Include tree-pretty-print.h and
15139         gimple-pretty-print.h.
15140         * tree-outof-ssa.c: Include tree-pretty-print.h and
15141         gimple-pretty-print.h.
15142         * tree-parloops.c: Include tree-pretty-print.h and
15143         gimple-pretty-print.h.
15144         * tree-predcom.c: Include tree-pretty-print.h and
15145         gimple-pretty-print.h.
15146         * tree-scalar-evolution.c: Include tree-pretty-print.h and
15147         gimple-pretty-print.h.
15148         * tree-sra.c: Include tree-pretty-print.h.
15149         * tree-ssa-address.c: Include tree-pretty-print.h.
15150         * tree-ssa-alias.c: Include tree-pretty-print.h.
15151         * tree-ssa-ccp.c: Include tree-pretty-print.h and
15152         gimple-pretty-print.h.
15153         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
15154         * tree-ssa-copy.c: Include tree-pretty-print.h and
15155         gimple-pretty-print.h.
15156         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
15157         * tree-ssa-dce.c: Include tree-pretty-print.h and
15158         gimple-pretty-print.h.
15159         * tree-ssa-dom.c: Include tree-pretty-print.h and
15160         gimple-pretty-print.h.
15161         * tree-ssa-dse.c: Include gimple-pretty-print.h.
15162         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
15163         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
15164         * tree-ssa-live.c: Include tree-pretty-print.h and
15165         gimple-pretty-print.h.
15166         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
15167         gimple-pretty-print.h.
15168         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
15169         gimple-pretty-print.h.
15170         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
15171         gimple-pretty-print.h.
15172         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
15173         gimple-pretty-print.h.
15174         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
15175         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
15176         * tree-ssa-operands.c: Include tree-pretty-print.h and
15177         gimple-pretty-print.h.
15178         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
15179         gimple-pretty-print.h.
15180         * tree-ssa-pre.c: Include tree-pretty-print.h and
15181         gimple-pretty-print.h.
15182         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
15183         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
15184         gimple-pretty-print.h.
15185         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
15186         gimple-pretty-print.h.
15187         * tree-ssa-sink.c: Include gimple-pretty-print.h.
15188         * tree-ssa-ter.c: Include tree-pretty-print.h and
15189         gimple-pretty-print.h.
15190         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
15191         * tree-ssa.c: Include tree-pretty-print.h and
15192         gimple-pretty-print.h.
15193         * tree-stdarg.c: Include gimple-pretty-print.h.
15194         * tree-switch-conversion.c: Include gimple-pretty-print.h.
15195         * tree-tailcall.c: Include tree-pretty-print.h and
15196         gimple-pretty-print.h.
15197         * tree-vect-data-refs.c: Include tree-pretty-print.h and
15198         gimple-pretty-print.h.
15199         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
15200         gimple-pretty-print.h.
15201         * tree-vect-loop.c: Include tree-pretty-print.h and
15202         gimple-pretty-print.h.
15203         * tree-vect-patterns.c: Include gimple-pretty-print.h.
15204         * tree-vect-slp.c: Include tree-pretty-print.h and
15205         gimple-pretty-print.h.
15206         * tree-vect-stmts.c: Include tree-pretty-print.h and
15207         gimple-pretty-print.h.
15208         * tree-vectorizer.c: Include tree-pretty-print.h.
15209         * tree-vrp.c: Include tree-pretty-print.h and
15210         gimple-pretty-print.h.
15211         * value-prof.c: Include tree-pretty-print.h and
15212         gimple-pretty-print.h.
15213         * var-tracking.c: Include tree-pretty-print.h.
15214         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
15215         (tree-diagnostic.o): New dependencies.
15216         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
15217         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
15218         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
15219         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
15220         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
15221         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
15222         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
15223         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
15224         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
15225         tree-ssa-address.o, tree-ssa-loop-niter.o,
15226         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
15227         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
15228         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
15229         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
15230         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
15231         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
15232         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
15233         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
15234         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
15235         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
15236         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
15237         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
15238         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
15239         tree-switch-conversion.o, var-tracking.o, value-prof.o,
15240         cfgexpand.o, pretty-print.o): Update dependencies.
15241
15242 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
15243
15244         * tree-ssa-structalias.c: Remove tm_p.h from include.
15245
15246 2010-05-21  Jeff Law  <law@redhat.com>
15247
15248         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
15249
15250 2010-05-21  Jason Merrill  <jason@redhat.com>
15251
15252         * tree-eh.c (cleanup_is_dead_in): New.
15253         (lower_try_finally): Don't generate a dead cleanup region.
15254         (lower_cleanup): Likewise.
15255
15256 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
15257
15258         PR debug/44223
15259         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
15260         unchain each use from the cyclic next_regno_use chain first.
15261
15262 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
15263
15264         * real: Do not include gmp.h, mpfr.h, and mpc.h.
15265         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
15266         (real_value_negate, real_value_abs): New prototypes.
15267         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
15268         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
15269         new include file for interface between MPFR and REAL_VALUE_TYPE.
15270         * real.c: Include realmpfr.h.
15271         (real_arithmetic2): Remove legacy function.
15272         (real_value_negate): New.
15273         (real_value_abs): New.
15274         (mfpr_from_real, real_from_mpfr): Move from here...
15275         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
15276         * builtins.c: Include realmpfr.h.
15277         * fold-const.c: Include realmpfr.h.
15278         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
15279         (fold_negate_const): Likewise.
15280         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
15281         * toplev.c: Include realmpfr.h.
15282         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
15283         and real_value_negate.
15284         * fixed-value.c (check_real_for_fixed_mode): Likewise.
15285         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
15286         (vfp3_const_double_index): Likewise.
15287         (arm_print_operand): Likewise.
15288         * Makefile.in: Update dependencies.
15289
15290 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15291
15292         * config/s390/s390.c (override_options): Increase the default
15293         of max-completely-peel-times.
15294
15295 2010-05-21  Julian Brown  <julian@codesourcery.com>
15296             Mark Mitchell  <mark@codesourcery.com>
15297
15298         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
15299         sibling calls for Thumb-1.
15300         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
15301         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
15302         Thumb-2.
15303         (*call_insn, *call_value_insn): Don't use for Thumb-2.
15304         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
15305         for Thumb-2.
15306         (return): New expander.
15307         (*arm_return): New name for ARM return insn.
15308         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
15309
15310 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
15311
15312         * config.gcc (sparc64-*-rtems*): New target.
15313
15314 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
15315
15316         * tree.c (build_function_decl_skip_args): Fix grammar.
15317         (build_function_type_list_1): Fix typos, adjust formatting.
15318
15319 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
15320
15321         * tree.h: Include real.h and fixed-value.h as basic datatypes.
15322         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
15323         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
15324         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
15325         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
15326         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
15327         tree-pretty-print.c, tree-loop-distribution.c,
15328         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
15329         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
15330         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
15331         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
15332         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
15333         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
15334         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
15335         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
15336         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
15337         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
15338         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
15339         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
15340         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
15341         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
15342         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
15343         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
15344         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
15345         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
15346         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
15347         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
15348         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
15349         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
15350         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
15351         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
15352         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
15353         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
15354         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
15355         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
15356         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
15357         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
15358         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
15359         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
15360         config/score/score7.c, config/score/score.c, config/arm/arm.c,
15361         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
15362         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
15363         config/bfin/bfin.c: Clean up redundant includes.
15364         * Makefile.in: Update accordingly.
15365
15366 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
15367
15368         PR middle-end/44204
15369         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
15370         statement has no arguments.
15371
15372 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
15373
15374         PR/44139
15375         * varasm.c (emutls_decl): Merge attributes to new decl.
15376
15377 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
15378
15379         PR middle-end/44101
15380         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
15381         around the uniquized constructor if its type requires a conversion.
15382
15383 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
15384
15385         PR debug/44205
15386         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
15387         at -O0 goto_locus of any of the incoming edges differs from
15388         goto_locus of outgoing edge, or gimple_location of any of the
15389         labels differs.
15390
15391 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
15392
15393         * ira.c (ira_non_ordered_class_hard_regs): Define.
15394         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
15395         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
15396         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
15397         cost of unaligned hard regs when allocating multi-reg pseudos.
15398
15399 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
15400
15401         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
15402         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
15403         for TARGET_NO_FLOAT.
15404         * config/mips/mips.c (mips_file_start): Expand conditional expression
15405         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
15406         (mips_override_options): Move -mno-float override -msoft-float and
15407         -mhard-float.
15408         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
15409         Condition(TARGET_SUPPORTS_NO_FLOAT).
15410         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
15411         __mips_no_float here.
15412         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
15413         (TARGET_SUPPORTS_NO_FLOAT): Define.
15414         * config/mips/sdemtk.opt: Delete.
15415
15416 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
15417
15418         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
15419
15420 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
15421
15422         PR target/43733
15423         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
15424         * configure: Regenerate.
15425         * config.in: Regenerate.
15426         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
15427         instead of sahf only for 64bit targets.
15428
15429 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
15430
15431         PR debug/44178
15432         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
15433         setup_ref_regs for DEBUG_INSNs.
15434
15435 2010-05-20  Jan Hubicka  <jh@suse.cz>
15436
15437         PR middle-end/44197
15438         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
15439
15440 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
15441
15442         PR bootstrap/43870
15443         * df-scan.c (df_ref_compare): Stabilize sort.
15444
15445 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
15446
15447         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
15448         argument.  Don't use DW_OP_piece if offset is non-zero,
15449         put offset into second DW_OP_bit_piece argument.
15450         (dw_sra_loc_expr): Adjust callers.  For memory expressions
15451         compute offset.
15452
15453 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
15454
15455         PR target/44202
15456         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
15457         settings for 16-bit-constant "addo" alternative.
15458
15459 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
15460
15461         * config/mips/mips-dsp.md (add<DSPV:mode>3,
15462         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
15463
15464         PR target/43764
15465         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
15466         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
15467         Use it.
15468
15469 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
15470
15471         * diagnostic.c (FLOAT, FFS): Don't undefine.
15472         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
15473         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
15474         include ordering.
15475
15476 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
15477
15478         * combine.c (propagate_for_debug): Call make_compound_operation
15479         on the source value.
15480         (try_combine): When implementing a split chosen by find_split_point,
15481         either copy i2src or set it to null.  Assert that i2src is not null
15482         before substituting into CALL_INSN_FUNCTION_USAGE.
15483
15484 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
15485
15486         * double-int.h (double_int_ior): New function.
15487         * tree.h (build_int_cst_wide_type): Remove.
15488         * tree.c (build_int_cst_wide_type): Remove.
15489         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
15490         of build_int_cst_wide_type.
15491         * stor-layout.c (set_sizetype): (Ditto.).
15492         * dojump.c (do_jump): Use build_int_cstu instead of
15493         build_int_cst_wide_type.
15494
15495 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
15496
15497         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
15498         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
15499         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
15500         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
15501         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
15502         propagate the 'data' argument to copy_tree_r.
15503         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
15504         Propagate 'data' argument to walk_tree.
15505         (copy_if_shared): New function.
15506         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
15507         (unmark_visited): New function.
15508         (unshare_body): Call copy_if_shared instead of doing it manually.
15509         (unvisit_body): Call unmark_visited instead of doing it manually.
15510
15511 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
15512
15513         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
15514         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
15515         * hooks.c: Likewise.
15516         * target-def.h (TARGET_FOLD_BUILTIN): Define to
15517         hook_tree_tree_int_treep_bool_null.
15518         * target.h (struct gcc_target): Update signature of fold_builtin
15519         field.
15520         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
15521         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
15522         instead of the call expression.
15523         (fold_builtin_call_array): Pass n and argarray directly.
15524         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
15525         consing a list.
15526         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
15527         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
15528         `i' and use it in place of `arity'.
15529         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
15530         Dereference `args' directly.
15531         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
15532
15533 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15534
15535         * doc/sourcebuild.texi (Effective-Target Keywords): Document
15536         3dnow, sse3, sse2.
15537         (Directives): Document optional dg-require-effective-target
15538         selector.
15539
15540 2010-05-19  Richard Guenther  <rguenther@suse.de>
15541
15542         PR lto/44196
15543         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
15544
15545 2010-05-19  Richard Guenther  <rguenther@suse.de>
15546
15547         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
15548         * common.opt (fwhopr=): New.
15549         * opts.c (common_handle_option): Handle OPT_fwhopr.
15550         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
15551         * collect2.c (main): Match -fwhopr*.
15552         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
15553         Execute ltrans stage in parallel when jobs is bigger than 1.
15554
15555 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15556
15557         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
15558         pentiumpro on Solaris 8/x86 with Sun as.
15559         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
15560         hidden alias bug.
15561         (gcc_cv_as_ix86_quad): Check for .quad directive.
15562         * configure: Regenerate.
15563         * config.in: Regenerate.
15564         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
15565
15566 2010-05-19  Martin Jambor  <mjambor@suse.cz>
15567
15568         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
15569         also for indirect edges.  Actual printing moved...
15570         (ipa_print_node_jump_functions_for_edge): ...here.
15571         (ipa_compute_jump_functions): Renamed to
15572         ipa_compute_jump_functions_for_edge and made static.
15573         (ipa_compute_jump_functions): New function.
15574         (make_edge_direct_to_target): Check if the number of arguments on
15575         the newly direct edge is the same as the number of parametrs of
15576         the callee.
15577         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
15578         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
15579         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
15580         analysis functions unconditionally, call the new
15581         ipa_analyze_params_uses on the node instead of every edge.
15582
15583 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
15584
15585         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
15586         to tree.
15587         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
15588         also checks for a constant int vs.  non-constant but
15589         loop-invariant steps.
15590         (find_or_create_group): Change the sort algorithm to only consider
15591         steps that are constant ints.
15592         (idx_analyze_ref): Adopt code to handle a tree instead of a
15593         HOST_WIDE_INT for step.
15594         (gather_memory_references_ref): Handle tree instead of int and be
15595         prepared to see a NULL_TREE.
15596         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
15597         prefetches if the step cannot be calculated at compile time.
15598         (issue_prefetch_ref): Issue prefetches for non-constant but
15599         loop-invariant steps.
15600
15601 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
15602
15603         Revert:
15604         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
15605
15606         * tree.h (build_call_list): Remove.
15607         * tree.c (build_call_list): Remove.
15608
15609 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
15610
15611         * tree.h (build_call_list): Remove.
15612         * tree.c (build_call_list): Remove.
15613
15614 2010-05-18  Jan Hubicka  <jh@suse.cz>
15615
15616         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
15617
15618 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
15619
15620         PR rtl-optimization/43332
15621         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
15622
15623 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
15624
15625         * tree.h (build_int_cstu): Implement as static inline.
15626         * tree.c (build_int_cstu): Remove function.
15627         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
15628         sign extended.
15629
15630 2010-05-18  Richard Guenther  <rguenther@suse.de>
15631
15632         PR lto/44143
15633         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
15634         (debug): Initialize from -save-temps.
15635         (collect_execute): Print command-line when verbose.
15636         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
15637         for ltrans invocation.  Produce -dumpbase flag again.
15638         (process_args): Remove.
15639         (main): Simplify.
15640         * collect2.c (maybe_run_lto_and_relink): Only pass object
15641         files to lto-wrapper.
15642         * gcc.c (LINK_COMMAND_SPEC): Likewise.
15643
15644 2010-05-18  Jan Hubicka  <jh@suse.cz>
15645
15646         * opts.c (decode_options): Do not disable whopr at ipa_cp.
15647         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
15648
15649 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
15650
15651         PR lto/44184
15652         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
15653         in a GIMPLE_ASM.
15654         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
15655         in a GIMPLE_ASM.
15656
15657 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
15658
15659         PR debug/41371
15660         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
15661         rtx_equal_p inline.
15662
15663 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
15664
15665         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
15666         lto-macho as lto_binary_reader.
15667
15668         * darwin.c (darwin_asm_named_section): Do not add assembler comment
15669         after .section directive; just print it before the directive instead.
15670
15671 2010-05-17  Jan Hubicka  <jh@suse.cz>
15672
15673         * cgraph.c (cgraph_create_virtual_clone): Only check
15674         versionable_function_p when not in wpa and checking is enabled.
15675         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
15676         there are no more functions to materialize.
15677
15678 2010-05-17  Jan Hubicka  <jh@suse.cz>
15679
15680         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
15681         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
15682         New functions.
15683         (output_cgraph): Call output_cgraph_opt_summary.
15684         (input_cgrpah): Call input_cgraph_opt_summary.
15685         (output_cgraph_opt_summary_p, output_node_opt_summary,
15686         input_node_opt_summary, input_cgraph_opt_section): New functions.
15687         * lto-section-in.c (lto_section_name): Add cgraphopt.
15688         * tree-inline.c (tree_function_versioning): Handle parm_num.
15689         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
15690         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
15691
15692 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
15693
15694         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
15695         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
15696         the insn to prefetch ratio heuristic to loops with known trip count.
15697
15698 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
15699
15700         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
15701         (schedule_prefetches): Do not generate a prefetch if the unroll factor
15702         is far from what is required by the prefetch.
15703
15704 2010-05-17  Jan Hubicka  <jh@suse.cz>
15705
15706         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
15707         (ipcp_estimate_growth): Likewise.
15708         (ipcp_const_param_count): Likewise.
15709         (ipcp_insert_stage): Likewise.
15710         * ipa-prop.c (visit_load_for_mod_analysis): New function.
15711         (visit_store_addr_for_mod_analysis): Set used flag.
15712         (ipa_detect_param_modifications): Set used flag for SSE params;
15713         update use of walk_stmt_load_store_addr_ops.
15714         (ipa_print_node_params): Print used flag.
15715         (ipa_write_node_info): Stream used flag.
15716         (ipa_read_node_info): Likewise.
15717         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
15718         (ipa_is_param_used): New function.
15719         (lto_ipa_fixup_call_notes): Remove unused declaration.
15720
15721 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15722
15723         PR target/44074
15724         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
15725         * configure: Regenerate.
15726         * config.in: Regenerate.
15727         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
15728         !HAVE_AS_IX86_REP_LOCK_PREFIX.
15729         Don't emit whitespace.
15730         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
15731         (*rep_movsi): Likewise.
15732         (*rep_movsi_rex64): Likewise.
15733         (*rep_movqi): Likewise.
15734         (*rep_movqi_rex64): Likewise.
15735         (*rep_stosdi_rex64): Likewise.
15736         (*rep_stossi): Likewise.
15737         (*rep_stossi_rex64): Likewise.
15738         (*rep_stosqi): Likewise.
15739         (*rep_stosqi_rex64): Likewise.
15740         (*cmpstrnqi_nz_1): Use {%;} after repz.
15741         (*cmpstrnqi_nz_rex_1): Likewise.
15742         (*cmpstrnqi_1): Likewise.
15743         (*cmpstrnqi_rex_1): Likewise.
15744         (*strlenqi_1): Use {%;} after repnz.
15745         (*strlenqi_rex_1): Likewise.
15746         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
15747         (*sync_compare_and_swap<mode>): Likewise.
15748         (sync_double_compare_and_swap<mode>): Likewise.
15749         (*sync_double_compare_and_swapdi_pic): Likewise.
15750         (sync_old_add<mode>): Likewise.
15751         (sync_add<mode>): Likewise.
15752         (sync_sub<mode>): Likewise.
15753         (sync_<code><mode>): Likewise.
15754
15755 2010-05-17  Martin Jambor  <mjambor@suse.cz>
15756
15757         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
15758         otr_token and polymorphic.
15759         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
15760         (cgraph_clone_edge): Copy the above fields.
15761         * tree.c (get_binfo_at_offset): New function.
15762         * tree.h (get_binfo_at_offset): Declare.
15763         * ipa-prop.h (enum jump_func_type): Added known_type jump function
15764         type, reordered items, updated comments.
15765         (union jump_func_value): Added base_type field, reordered fields.
15766         (enum ipa_lattice_type): Moved down in the file.
15767         (struct ipa_param_descriptor): New field polymorphic.
15768         (ipa_is_param_polymorphic): New function.
15769         * ipa-prop.c: Include gimple.h and gimple-fold.h.
15770         (ipa_print_node_jump_functions): Print known type jump functions.
15771         (compute_complex_pass_through): Renamed to...
15772         (compute_complex_assign_jump_func): this.
15773         (compute_complex_ancestor_jump_func): New function.
15774         (compute_known_type_jump_func): Likewise.
15775         (compute_scalar_jump_functions): Create known type and complex ancestor
15776         jump functions.
15777         (ipa_note_param_call): New parameter polymorphic, set the corresponding
15778         flag in the call note accordingly.
15779         (ipa_analyze_call_uses): Renamed to...
15780         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
15781         variable var only in the block where it is used.
15782         (ipa_analyze_virtual_call_uses): New function.
15783         (ipa_analyze_call_uses): Likewise.
15784         (combine_known_type_and_ancestor_jfs): Likewise.
15785         (update_jump_functions_after_inlining): Implemented handling of a
15786         number of new jump function types combination.
15787         (print_edge_addition_message): Removed.
15788         (make_edge_direct_to_target): New function.
15789         (try_make_edge_direct_simple_call): Likewise.
15790         (try_make_edge_direct_virtual_call): Likewise.
15791         (update_call_notes_after_inlining): Renamed to...
15792         (update_indirect_edges_after_inlining): this.  Moved edge creation for
15793         indirect calls to try_make_edge_direct_simple_call, also calls
15794         try_make_edge_direct_virtual_call for virtual calls.
15795         (ipa_print_node_params): Changed the header message.
15796         (ipa_write_jump_function): Stream also known type jump functions.
15797         (ipa_read_jump_function): Likewise.
15798         (ipa_write_indirect_edge_info): Stream new fields in
15799         cgraph_indirect_call_info.
15800         (ipa_read_indirect_edge_info): Likewise.
15801         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
15802         GIMPLE_FOLD_H.
15803
15804 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15805
15806         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
15807
15808 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
15809
15810         * tree.h (CALL_EXPR_ARGS): Delete.
15811         (call_expr_arglist): Delete.
15812         * tree.c (call_expr_arglist): Delete.
15813         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
15814         targetm.fold_builtin.
15815         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
15816         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
15817         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
15818         arglist parameter.  Use CALL_EXPR_ARG.
15819         (picochip_expand_builtin_3op): Likewise.
15820         (picochip_expand_builtin_2opvoid): Likewise.
15821         (picochip_expand_array_get): Likewise.
15822         (picochip_expand_array_put): Likewise.
15823         (picochip_expand_array_testport): Likewise.
15824         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
15825         rather than arglist.
15826         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
15827         CALL_EXPR_ARGS.
15828         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
15829         than TREE_VALUE and TREE_CHAIN.
15830         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
15831         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
15832         the arglist.
15833
15834 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
15835
15836         PR bootstrap/42347
15837         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
15838         to have no fallthru edge.
15839
15840         PR middle-end/44102
15841         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
15842         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
15843         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
15844         add BARRIER after previous bb if needed.
15845
15846 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
15847
15848         * tree.c (build_function_type_list_1): Remove bogus assert condition.
15849
15850 2010-05-17  Alan Modra  <amodra@gmail.com>
15851
15852         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
15853         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
15854         with copy_reg rtx param.
15855         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
15856         Correct cases where code for ABI_V4 did not initialise the reg
15857         used to access frame.  Also leave frame_reg_rtx as sp for large
15858         frames that save no regs.
15859
15860 2010-05-17  Martin Jambor  <mjambor@suse.cz>
15861
15862         PR middle-end/44133
15863         * tree-sra.c (create_access_replacement): New parameter rename, mark
15864         the replaement for renaming only when it is true.
15865         (get_access_replacement): Pass true in the rename parameter of
15866         create_access_replacement.
15867         (get_unrenamed_access_replacement): New function.
15868         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
15869         replacement declaration from it.
15870
15871 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
15872
15873         * function.c (try_fit_stack_local, add_frame_space): New static
15874         functions.
15875         (assign_stack_local_1): Use them.  Look for opportunities to use
15876         space previously wasted on alignment.
15877         * function.h (struct frame_space): New.
15878         (struct rtl_data): Add FRAME_SPACE_LIST member.
15879         * reload1.c (something_was_spilled): New static variable.
15880         (alter_reg): Set it.
15881         (reload): Test it in addition to testing if the frame size changed.
15882
15883 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
15884
15885         * config/s390/s390.c: Define sane prefetch settings and activate
15886         flag_prefetch_loop_arrays on -O3.
15887         * config/s390/s390.h: Declare that read can use write prefetch.
15888
15889 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
15890
15891         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
15892         build.
15893
15894 2010-05-16  Jan Hubicka  <jh@suse.cz>
15895
15896         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
15897         function body; do not check stdarg field of struct function.
15898
15899 2010-05-16  Jan Hubicka  <jh@suse.cz>
15900
15901         * cgraph.c (dump_cgraph_node): Dump versionable flag.
15902         * cgraph.h (cgraph_local_info): Add versionable flag.
15903         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
15904         (ipcp_versionable_function_p): Use it.
15905         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
15906         versionable flag.
15907
15908 2010-05-16  Jan Hubicka  <jh@suse.cz>
15909
15910         * cgraph.c (cgraph_clone_node): Take decl argument and insert
15911         clone into hash when it is different from orig.
15912         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
15913         * cgraph.h (cgraph_clone_node): Update prototype.
15914         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
15915         (lto_cgraph_encoder_delete): Delete body map.
15916         (lto_cgraph_encoder_size): Move to header.
15917         (lto_cgraph_encoder_encode_body_p,
15918         lto_set_cgraph_encoder_encode_body): New.
15919         (lto_output_node): Do not take written_decls argument; output clone_of
15920         pointer.
15921         (add_node_to): Add include_body_argument; call
15922         lto_set_cgraph_encoder_encode_body on master of the clone.
15923         (add_references): Update use of add_node_to.
15924         (compute_ltrans_boundary): Likewise.
15925         (output_cgraph): Do not create written_decls bitmap.
15926         (input_node): Take nodes argument; stream in clone_of correctly.
15927         (input_cgraph_1): Update use of input_node.
15928         * lto-streamer-out.c (lto_output): Use encoder info to decide
15929         what bodies to output.
15930         * ipa-inline.c (cgraph_clone_inlined_nodes,
15931         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
15932         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
15933         (lto_cgraph_encoder_size): Define here.
15934         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
15935         Declare.
15936
15937 2010-05-16  Richard Guenther  <rguenther@suse.de>
15938
15939         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
15940         -fipa-type-escape.
15941         * ipa-type-escape.c (gate_type_escape_vars): Run when
15942         -fipa-struct-reorg runs.
15943         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
15944         * common.opt (fipa-type-escape): Remove.
15945
15946 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
15947
15948         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
15949         (decode_options): Likewise.
15950         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
15951
15952 2010-05-16  Jan Hubicka  <jh@suse.cz>
15953
15954         * ipa.c (function_and_variable_visibility): Also bring local all
15955         aliases.
15956
15957 2010-05-16  Richard Guenther  <rguenther@suse.de>
15958
15959         * alias.c (nonoverlapping_memrefs_p): Remove use of
15960         IPA type-escape information.
15961
15962 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
15963
15964         * c-common.c (c_common_reswords): Add _Static_assert for C.
15965         * c-parser.c (c_token_starts_declaration,
15966         c_parser_next_token_starts_declaration,
15967         c_parser_static_assert_declaration_no_semi,
15968         c_parser_static_assert_declaration): New.
15969         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
15970         Handle static assertions if static_assert_ok.
15971         (c_parser_external_declaration, c_parser_declaration_or_fndef,
15972         c_parser_compound_statement_nostart, c_parser_label,
15973         c_parser_for_statement, c_parser_objc_methodprotolist,
15974         c_parser_omp_for_loop): All callers of
15975         c_parser_declaration_or_fndef changed.
15976         (c_parser_struct_declaration): Handle static assertions.
15977         (c_parser_compound_statement_nostart): Use
15978         c_parser_next_token_starts_declaration and
15979         c_token_starts_declaration to detect start of declarations.
15980         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
15981         Likewise.
15982
15983 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
15984
15985         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
15986         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15987         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15988         TARGET_FUNCTION_VALUE_REGNO_P): Define.
15989         (mmix_function_outgoing_value): Rename to...
15990         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
15991         (mmix_function_value_regno_p): Make static.
15992         (mmix_libcall_value): New function.
15993         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
15994         mmix_function_value_regno_p): Remove declaration.
15995
15996 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
15997
15998         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
15999         BUILT_IN_ALLOCA if stack checking is enabled.
16000
16001 2010-05-16  Richard Guenther  <rguenther@suse.de>
16002
16003         * var-tracking.c (vars_copy_1): Inline ...
16004         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
16005         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
16006         (variable_merge_over_cur): Adjust.  Merge asserts.
16007         (variable_merge_over_src): Likewise.
16008         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
16009         (variable_post_merge_new_vals): Merge asserts.
16010         (variable_post_merge_perm_vals): Likewise.
16011         (find_mem_expr_in_1pdv): Likewise.
16012         (dataflow_set_different_value): Remove.
16013         (onepart_variable_different_p): Merge asserts.
16014         (variable_different_p): Likewise.
16015         (dataflow_set_different_1): Inline ...
16016         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
16017         (emit_notes_for_differences_1): Merge asserts.
16018
16019 2010-05-16  Richard Guenther  <rguenther@suse.de>
16020
16021         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
16022         * optabs.c (libfunc_decl_hash): Likewise.
16023         * varasm.c (emutls_decl): Likewise.
16024
16025 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
16026
16027         * c-decl.c: Don't include gimple.h.
16028         (merge_decls): Do not copy gimple_body.
16029
16030 2010-05-15  Jason Merrill  <jason@redhat.com>
16031
16032         * c.opt: Add -fnothrow-opt.
16033
16034 2010-05-15  Jan Hubicka  <jh@suse.cz>
16035
16036         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
16037         analyzed.
16038         * passes.c (ipa_write_summaries): Write all analyzed nodes.
16039
16040 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
16041
16042         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
16043         * Makefile.in: Add it.
16044         Fix all other Makefile dependencies for changes below.
16045         * tree.h: Include it instead of defining VEC primitives here.
16046         * gimple.h: Likewise.
16047         * rtl.h: Likewise.
16048         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
16049         * except.h: Include vecir.h, break dependence on tree.h.
16050
16051         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
16052         Move from here...
16053         * tree-iterator.c: ...to here.
16054         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
16055
16056         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
16057         tm_p.h.
16058         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
16059         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
16060         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
16061         tree-mudflap.h, and target.h.
16062         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
16063         predict.h, tree-inline.h, gimple.h, and langhooks.h.
16064         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
16065         Add FIXME for why gimple.h is still included (should be unnecessary
16066         since GCC 4.5 gimplification unit-at-a-time).
16067         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
16068         * c-pragma.c: Add FIXME for why function.h needs to be included just
16069         for cfun, at front-end level.
16070         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
16071         Do not include ggc.h, but include vecprim.h for VEC(char).
16072         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
16073         Explain why target.h is included.
16074         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
16075         Explain why gimple.h is included.
16076         * c-ppoutput.c: Do not include tm.h.
16077         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
16078         * c-parses.c: Explain why rtl.h is included, and that this (and only
16079         this) is also why tm.h must be included.
16080         Do not include except.h.
16081         * c-lang.c: Do not include ggc.h.
16082
16083 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
16084
16085         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
16086
16087 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
16088
16089         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
16090         unions by default if those structs and unions have no tags.  Do
16091         not condition anonymous struct and unions handling on flag_iso.
16092         Allow anonymous structs and unions for C1X.
16093         (finish_struct): Do not diagnose lack of named fields when
16094         anonymous structs and unions present for C1X.  Accept flexible
16095         array members in structure with anonymous structs or unions but no
16096         directly named fields.
16097         * doc/extend.texi (Unnamed Fields): Update.
16098
16099 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
16100
16101         * gimple.h (compare_field_offset): Rename into...
16102         (gimple_compare_field_offset): ...this.
16103         * gimple.c (compare_field_offset): Rename into...
16104         (gimple_compare_field_offset): ...this.  Compare the full access if
16105         the offset is self-referential.
16106         (gimple_types_compatible_p): Adjust for above renaming.
16107         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
16108         DECL_NONADDRESSABLE_P flag of fields before merging them.
16109
16110 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
16111
16112         * tree.h (ctor_to_list): Delete.
16113         * tree.c (ctor_to_list): Delete.
16114
16115 2010-05-15  Jan Hubicka  <jh@suse.cz>
16116
16117         * ipa-reference.c: Include toplev.h
16118         (is_proper_for_analysis): Only add to all_module_statics
16119         if it is allocated.
16120         (write_node_summary_p, stream_out_bitmap,
16121         ipa_reference_write_optimization_summary,
16122         ipa_reference_read_optimization_summary): New.
16123         (struct ipa_opt_pass_d pass_ipa_reference): Add
16124         optimization summary streaming.
16125         * lto-cgraph.c (referenced_from_this_partition_p,
16126         reachable_from_this_partition_p): New functions.
16127         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
16128         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
16129         * opts.c (decode_options): Enable ipa_reference.
16130         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
16131         * lto-streamer.h (referenced_from_this_partition_p,
16132         reachable_from_this_partition_p): Declare.
16133
16134 2010-05-15  Richard Guenther  <rguenther@suse.de>
16135
16136         PR tree-optimization/44038
16137         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
16138         taking the address of a V_C_E of a constant.
16139
16140 2010-05-14  Jan Hubicka  <jh@suse.cz>
16141
16142         * tree.h (memory_identifier_string): Remove.
16143         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
16144         (ipa_reference_global_vars_info_d): Remove statics_not_read and
16145         statics_not_written.
16146         (ipa_reference_optimization_summary_d): New structure.
16147         (ipa_reference_optimization_summary_t): New type and vector.
16148         (ipa_reference_vars_info_d): Embedd structures instead of using
16149         pointers.
16150         (reference_vars_to_consider): Remove out of GGC space.
16151         (module_statics_escape): Remove.
16152         (global_info_obstack): Rename to ...
16153         (optimization_summary_obstack): ... this one.
16154         (initialization_status_t): Remove.
16155         (memory_identifier_string): Remove.
16156         (get_reference_vars_info): Fix indenting.
16157         (set_reference_vars_info): Likewise.
16158         (get_reference_optimization_summary): New.
16159         (set_reference_optimization_summary): New.
16160         (get_global_reference_vars_info): Remove.
16161         (ipa_reference_get_read_global): Remove.
16162         (ipa_reference_get_written_global): Remove.
16163         (ipa_reference_get_not_read_global): Update.
16164         (ipa_reference_get_not_written_global): Update.
16165         (is_proper_for_analysis): Outlaw addressable.
16166         (propagate_bits): Update for new datastructures.
16167         (analyze_variable): Remove.
16168         (init_function_info): Update for new datastructures.
16169         (clean_function_local_data): Remove.
16170         (clean_function): Remove.
16171         (copy_global_bitmap): Use optimizations_summary_obstack.
16172         (duplicate_node_data): Duplicate optimization summary only.
16173         (remove_node_data): Remove optimization summary only.
16174         (generate_summary): Do not analyze variables; do not compute
16175         module_statics_escape; do not prune solutions by it.
16176         (read_write_all_from_decl): Fix typos in comments.
16177         (propagate): Doscover readonly and nonaddressable first;
16178         update for new datastructures; share global bitmaps.
16179         * ipa-reference.h (ipa_reference_get_read_global,
16180         ipa_reference_get_written_global): Remove.
16181         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
16182         * Makefile.in: Remove ipa-refereference from GT files.
16183
16184 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
16185
16186         PR debug/44112
16187         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
16188         for all SYMBOL_REF_DECLs.
16189
16190 2010-05-14  Jan Hubicka  <jh@suse.cz>
16191
16192         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
16193         (varpool_all_refs_explicit_p): New inline function.
16194         * ipa-reference.c: Update comment.
16195         (module_statics_written): Remove.
16196         (get_static_decl): Remove.
16197         (ipa_init): Do not initialize module_statics_written.
16198         (analyze_function): Likewise.
16199         (generate_summary): Likewise; do not compute module_statics_readonly
16200         and do not update variable flags.
16201         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
16202         * ipa.c: Inlucde flags.h
16203         (cgraph_local_node_p): New.
16204         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
16205         promote functions to local.
16206         (ipa_discover_readonly_nonaddressable_vars): New function.
16207         (function_and_variable_visibility): Use cgraph_local_node_p.
16208         * varpool.c (varpool_finalize_decl): Set force_output for
16209         DECL_PRESERVE_P vars.
16210
16211 2010-05-14  Jan Hubicka  <jh@suse.cz>
16212
16213         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
16214
16215 2010-05-14  Richard Guenther  <rguenther@suse.de>
16216
16217         PR tree-optimization/44119
16218         * tree-ssa-pre.c (eliminate): Properly mark replacement of
16219         a PHI node necessary.
16220
16221 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
16222
16223         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
16224
16225 2010-05-14  Jason Merrill  <jason@redhat.com>
16226
16227         PR c++/44127
16228         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
16229         (gimple_call_set_nothrow): New.
16230         * gimple.c (gimple_build_call_from_tree): Call it.
16231         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
16232
16233         PR c++/44127
16234         * gimplify.c (gimplify_seq_add_stmt): No longer static.
16235         * gimple.h: Declare it.
16236         * gimple.c (gimple_build_eh_filter): No ops.
16237
16238 2010-05-14  Jan Hubicka  <jh@suse.cz>
16239
16240         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
16241         nodes already in queue.
16242         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
16243         re-enqueueing node.
16244
16245 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
16246
16247         PR debug/44136
16248         * cfgexpand.c (expand_debug_expr): If non-memory op0
16249         has BLKmode, return NULL.
16250
16251 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
16252
16253         * config.gcc: Add support for --with-cpu option for bdver1.
16254         * config/i386/i386.h (TARGET_BDVER1): New macro.
16255         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
16256         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
16257         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
16258         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
16259         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
16260         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
16261         (processor_type): Add PROCESSOR_BDVER1.
16262         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
16263         processor_type in config/i386/i386.h.
16264         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
16265         movaps <reg, reg> instead of movapd <reg, reg> when replacing
16266         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
16267         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
16268         to emit packed xor instead of packed double/packed integer
16269         xor for SSE and AVX when moving a zero value.
16270         * config/i386/sse.md: Add check for
16271         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
16272         movapd/movdqa for SSE and AVX.
16273         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
16274         single logical operations i.e and, or and xor instead of packed double
16275         logical operations for SSE and AVX.
16276         * config/i386/i386-c.c (ix86_target_macros_internal):
16277         Add PROCESSOR_BDVER1.
16278         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
16279         (has_fma4, has_xop): New.
16280         * config/i386/i386.c (bdver1_cost): New variable.
16281         (m_BDVER1): New macro.
16282         (m_AMD_MULTIPLE): Add m_BDVER1.
16283         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
16284         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
16285         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
16286         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
16287         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
16288         x86_tune_sse_partial_reg_dependency,
16289         x86_tune_sse_unaligned_load_optimal,
16290         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
16291         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
16292         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
16293         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
16294         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
16295         Enable/disable for bdver1.
16296         (processor_target_table): Add bdver1_cost.
16297         (cpu_names): Add bdver1.
16298         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
16299          processor_alias_table.
16300         (ix86_expand_vector_move_misalign): Change.
16301         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
16302         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
16303         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
16304         of movupd/movdqu for SSE and AVX.
16305         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
16306         (ix86_tune_adjust_cost): Add code for bdver1.
16307         (standard_sse_constant_opcode): Add check for
16308         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
16309         of packed double xor for SSE and AVX.
16310
16311 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
16312
16313         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
16314         result to unsigned.
16315
16316 2010-05-14  Tristan Gingold  <gingold@adacore.com>
16317
16318         * toplev.c (default_debug_hooks): Remove this variable.
16319         (process_options): Remove assignments to default_debug_hooks.
16320
16321 2010-05-14  Martin Jambor  <mjambor@suse.cz>
16322
16323         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
16324         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
16325         * langhooks.h (struct lang_hooks_for_decls): Removed field
16326         fold_obj_type_ref.
16327         * tree.c (free_lang_data): Remove assignment to
16328         lang_hooks.fold_obj_type_ref.
16329         * tree.def (OBJ_TYPE_REF): Update comment.
16330
16331 2010-05-14  Richard Guenther  <rguenther@suse.de>
16332
16333         PR tree-optimization/44124
16334         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
16335
16336 2010-05-14  Alan Modra  <amodra@gmail.com>
16337
16338         PR target/44075
16339         * config/rs6000/rs6000.c (struct machine_function): Reorder
16340         fields for better packing.  Add lr_save_state.
16341         (rs6000_ra_ever_killed): Return lr_save_state if set.
16342         (rs6000_emit_eh_reg_restore): Set lr_save_state.
16343
16344 2010-05-13  Jan Hubicka  <jh@suse.cz>
16345
16346         * varpool.c (decide_is_variable_needed): Drop code checking
16347         TREE_SYMBOL_REFERENCED.
16348
16349 2010-05-13  Jan Hubicka  <jh@suse.cz>
16350
16351         * final.c (output_addr_const): Do not call mark_decl_referenced.
16352         * cgraphunit.c (process_function_and_variable_attributes): Use
16353         mark_needed_node dirrectly.
16354         (assemble_thunk): Do not call mark_decl_referenced.
16355
16356 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
16357
16358         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
16359
16360 2010-05-13  Jeff Law  <law@redhat.com>
16361
16362         * ira-conflicts.c (print_allocno_conflicts): New function broken out
16363         from...
16364         (print_conflicts): Call print_allocno_conflicts.
16365
16366 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
16367
16368         PR debug/44104
16369         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
16370         if it is NULL.
16371
16372 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
16373
16374         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
16375         t-mingw-w64 or t-mingw-w32 for multilib configuration.
16376         * config/i386/t-mingw-w32: New.
16377         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
16378
16379 2010-05-13  Martin Jambor  <mjambor@suse.cz>
16380
16381         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
16382         gimple-fold.c).
16383         * gimple-fold.c (get_base_binfo_for_type): New function.
16384         (gimple_get_relevant_ref_binfo): Likewise.
16385         (gimple_fold_obj_type_ref_known_binfo): Likewise.
16386         (gimple_fold_obj_type_ref): Likewise.
16387         (fold_gimple_call): Simplify condition for folding virtual calls
16388         and call gimple_fold_obj_type_ref.
16389         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
16390         (gimple_fold_obj_type_ref_known_binfo): Likewise.
16391
16392 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
16393
16394         * config/rs6000/rs6000-protos.h
16395         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
16396         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
16397         (rs6000_debug_mode_dependent_address)
16398         (rs6000_mode_dependent_address_ptr): Likewise.
16399
16400 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
16401
16402         PR debug/43983
16403         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
16404         by SRA.
16405         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
16406         * tree-sra.c (create_access_replacement): Call unshare_expr before
16407         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
16408         * dwarf2out.c: Include tree-flow.h.
16409         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
16410         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
16411         Handle DW_OP_bit_piece.
16412         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
16413         construct_piece_list, adjust_piece_list): New functions.
16414         (add_var_loc_to_decl): Handle SRA optimized variables.
16415         Adjust for var_loc_note to loc field renaming.
16416         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
16417         in VAR_LOCATION note.
16418         (new_loc_descr_op_bit_piece): New function.
16419         (dw_sra_loc_expr): New function.
16420         (dw_loc_list): Use it.  Don't handle the last range after the
16421         loop, handle it inside of the loop.  Adjust for var_loc_note
16422         to loc field renaming.
16423         (add_location_or_const_value_attribute): Only special case
16424         single entry loc lists if loc is NOTE_P.  Adjust for
16425         var_loc_note to loc field renaming.
16426         (dwarf2out_var_location): Don't set newloc->var_loc_note
16427         and newloc->next here.
16428
16429 2010-05-12  Jan Hubicka  <jh@suse.cz>
16430
16431         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
16432         flag.
16433         * cgraph.h (cgraph_only_called_directly_p,
16434         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
16435         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
16436         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
16437         (assemble
16438         * ipa.c (cgraph_remove_unreachable_nodes): Use
16439         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
16440         flags.
16441         * tree-inline.c (copy_bb): Check address_taken flag.
16442         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
16443         externally_visible flag.
16444
16445 2010-05-12  Jason Merrill  <jason@redhat.com>
16446
16447         PR bootstrap/44048
16448         PR target/44099
16449         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
16450         * sdbout.c (plain_type_1): Likewise.
16451         * dwarf2out.c (is_base_type): Likewise.
16452         (gen_type_die_with_usage): Likewise.  Generate
16453         DW_TAG_unspecified_type for any LANG_TYPE.
16454
16455 2010-05-12  Jan Hubicka  <jh@suse.cz>
16456
16457         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
16458         indrect edges too.
16459         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
16460         (cgraph_clone_edge): Update.
16461         (cgraph_node_remove_callees): Remove indirect calls too.
16462         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
16463         (cgraph_create_indirect_edge): Update prototype.
16464         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
16465         is_proper_for_analysis.
16466         (add_new_function, visited_nodes, function_insertion_hook_holder,
16467         get_local_reference_vars_info, mark_address_taken, mark_address,
16468         mark_load, mark_store, check_asm_memory_clobber, check_call,
16469         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
16470         (ipa_init): Do not initialize visited_nodes;
16471         function_insertion_hook_holder.
16472         (analyze_variable): Rewrite.
16473         (analyze_function): Rewrite.
16474         (copy_local_bitmap): Remove.
16475         (duplicate_node_dat): Do not duplicate local info.
16476         (generate_summary): Simplify to only walk cgraph.
16477         (write_node_summary_p, ipa_reference_write_summary,
16478         ipa_reference_read_summary): Remove.
16479         (propagate): Do not remove function insertion;
16480         generate summary.
16481         (pass_ipa_reference): NULLify summary handling fields.
16482         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
16483         (input_edge): Input ecf_flags.
16484         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
16485         (update_indirect_edges_after_inlining): Ignore edges with unknown
16486         param.
16487
16488 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
16489
16490         * implicit-zee.c: New file.
16491         * tree-pass.h (pass_implicit_zee): Declare.
16492         * passes.c (init_optimization_passes): Add zee pass.
16493         * common.opt (fzee): New flag.
16494         * timevar.def (TV_ZEE): Define.
16495         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
16496         and beyond.
16497         * Makefile.in (implicit-zee.o): Add new build file.
16498
16499 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
16500             Nathan Froyd  <froydnj@codesourcery.com>
16501
16502         * c-common.c (sync_resolve_params): Remove write-only variable.
16503
16504 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
16505
16506         * target.h (struct gcc_target): Add mode_dependent_address_p field.
16507         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
16508         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
16509         * targhooks.c (default_mode_dependent_address_p): New function.
16510         * targhooks.h (default_mode_dependent_address_p): Declare function.
16511         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
16512         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
16513         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
16514         target hook. Change return type to bool.
16515         * recog.h (mode_dependent_address_p): Change return type to bool.
16516
16517 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
16518             Nathan Froyd  <froydnj@codesourcery.com>
16519
16520         * tree-mudflap.c (build_function_type_0, build_function_type_1,
16521         build_function_type_2, build_function_type_3): Remove.
16522         (mudflap_init): Use build_function_type_list.
16523
16524 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
16525             Nathan Froyd  <froydnj@codesourcery.com>
16526
16527         * coverage.c (build_fn_info_value): Call build_constructor instead of
16528         build_constructor_from_list.
16529         (build_ctr_info_value): Likewise.
16530         (build_gcov_info): Likewise.
16531
16532 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
16533
16534         * tree.c (build_constructor): Compute TREE_CONSTANT for the
16535         resultant constructor.
16536         (build_constructor_single): Don't set TREE_CONSTANT.
16537         (build_constructor_from_list): Don't compute TREE_CONSTANT.
16538
16539 2010-05-12  Jan Hubicka  <jh@suse.cz>
16540
16541         * cgraph.h (struct varpool_node): Add aux.
16542         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
16543         * varpool.c (varpool_remove_node): Do not remove initializer.
16544         (varpool_reset_queue): Export.
16545         (varpool_finalize_decl): Volatile vars are forced to be output.
16546         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
16547         replaced decl.
16548         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
16549         process_references, varpool_can_remove_if_no_refs): New functions.
16550         (cgraph_remove_unreachable_nodes): Handle variables too.
16551
16552 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
16553
16554         PR target/44088
16555         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
16556
16557 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
16558
16559         PR middle-end/44085
16560         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
16561         change value of ORT_TASK.
16562         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
16563         (omp_notice_threadprivate_variable): New function.
16564         (omp_notice_variable): Call it for threadprivate variables.
16565         If enclosing ctx is a task, print enclosing task rather than
16566         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
16567         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
16568         if task has untied clause.
16569
16570         PR debug/42278
16571         * dwarf2out.c (base_type_die): Don't add name attribute here.
16572         (modified_type_die): Instead of sizetype use
16573         its underlying original type.  If a DW_TAG_base_type doesn't
16574         have name added, add __unknown__.
16575         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
16576         always call force_type_die instead.
16577
16578 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
16579
16580         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
16581         for __stack_chk_guard.
16582
16583 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
16584
16585         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
16586         don't call start_source_file debug hook here...
16587         (finish_options): ... but here, after outputting predefined and
16588         command line defines and undefs.
16589
16590         PR middle-end/44071
16591         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
16592         no fallthru edge.
16593         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
16594         optimizing away empty bb with no successors, move over its
16595         footer chain to fallthru predecessor.
16596         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
16597         (rtl_split_edge): For asm goto call patch_jump_insn even if
16598         splitting fallthru edge.
16599
16600         PR c++/44059
16601         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
16602         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
16603         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
16604         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
16605         on DW.ref.* decls.
16606
16607         PR c++/44062
16608         * c-parser.c (c_parser_expression): Mark LHS of a comma
16609         expression as read if it is a decl, handled component or
16610         COMPOUND_EXPR with that on the RHS.
16611         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
16612         if it is a decl or handled component.
16613
16614 2010-05-11  Jan Hubicka  <jh@suse.cz>
16615
16616         * lto-symtab.c (lto_symtab_free): New function.
16617         * lto-streamer.h (lto_symtab_free): Declare.
16618
16619 2010-05-11  Jan Hubicka  <jh@suse.cz>
16620
16621         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
16622         that if function is needed it is reachable.
16623         (lto_output_node): See if it the function is reachable or referenced.
16624         (output_cgraph): Update call of lto_output_node.
16625         * lto-streamer.h (reachable_from_other_partition_p): Declare.
16626
16627 2010-05-11  Jan Hubicka  <jh@suse.cz>
16628
16629         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
16630         Mark as used.
16631
16632 2010-05-11  Jan Hubicka  <jh@suse.cz>
16633
16634         PR tree-optimize/44063
16635         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
16636         queue.
16637         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
16638         limits.
16639         (estimate_function_body_sizes): Compute sizes even when disregarding.
16640
16641 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
16642
16643         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
16644
16645 2010-05-11  Jan Hubicka  <jh@suse.cz>
16646
16647         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
16648         into every boundary.
16649
16650 2010-05-11  Jan Hubicka  <jh@suse.cz>
16651
16652         * matrix-reorg.c (matrix_reorg): Rebuild edges.
16653
16654 2010-05-11  Jan Hubicka  <jh@suse.cz>
16655
16656         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
16657         lto_streamer_cache_delete): Put nodes into heap.
16658         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
16659         heap.
16660
16661 2010-05-11  Jan Hubicka  <jh@suse.cz>
16662
16663         * cgraphbuild.c (cgraph_rebuild_references): New.
16664         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
16665         out extern inlines.
16666         * cgraph.h (cgraph_rebuild_references): Declare.
16667         * tree-inline.c (tree_function_versioning): Use it.
16668         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
16669
16670 2010-05-11  Jan Hubicka  <jh@suse.cz>
16671
16672         * cgraph.c: Include ipa-utils.h
16673         (cgraph_create_virtual_clone): Update references.
16674         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
16675
16676 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
16677
16678         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
16679         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
16680         cache size.
16681
16682 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
16683
16684         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
16685
16686 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
16687
16688         * gcc.c (execute): For -### don't quote arguments that
16689         contain just alphanumerics and _/-. characters.
16690         * doc/invoke.texi: Document that change for -###.
16691
16692         PR debug/44023
16693         * df-problems.c (struct dead_debug): Add to_rescan field.
16694         (dead_debug_init): Clear to_rescan field.
16695         (dead_debug_finish): Rescan all debug insns in to_rescan
16696         bitmap and free the bitmap.
16697         (dead_debug_insert_before): Instead of rescanning debug insns
16698         immediately queue their rescanning until dead_debug_finish.
16699         (df_note_bb_compute): After dead_debug_add do continue instead
16700         of break.
16701
16702 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
16703
16704         PR debug/44028
16705         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
16706         clear also INSN_REG_USE_LIST.
16707
16708 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16709
16710         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
16711
16712 2010-05-10  Jan Hubicka  <jh@suse.cz>
16713
16714         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
16715         commited change.
16716
16717 2010-05-10  Jan Hubicka  <jh@suse.cz>
16718
16719         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
16720         Allocate encoders.
16721         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
16722         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
16723         (lto_streamer_cache_create): Init alloc pool.
16724         (lto_streamer_cache_delete): Free alloc pool.
16725         * lto-streamer.h: Include alloc pool.
16726         (lto_streamer_cache_d): Use alloc pool.
16727         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
16728
16729 2010-05-10  Jan Hubicka  <jh@suse.cz>
16730
16731         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
16732         * cgraphbuild.c: Include except.h
16733         (record_type_list, record_eh_tables): New function.
16734         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
16735
16736 2010-05-10  Jan Hubicka  <jh@suse.cz>
16737
16738         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
16739         __frame_dummy_init_array_entry, force_to_data): Attribute as used
16740         rather than unused.
16741
16742 2010-05-10  Michael Matz  <matz@suse.de>
16743
16744         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
16745         (can_reassociate_p): Use FLOAT_TYPE_P.
16746         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
16747         (vect_force_simple_reduction): ... this.
16748         * tree-parloops.c (gather_scalar_reductions): Use
16749         vect_force_simple_reduction.
16750         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
16751         vect_is_simple_reduction, add modify argument, if true rewrite
16752         "a-b" into "a+(-b)".
16753         (vect_is_simple_reduction, vect_force_simple_reduction): New
16754         functions.
16755         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
16756
16757 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
16758             Vladimir Makarov  <vmakarov@redhat.com>
16759
16760         PR rtl-optimization/44012
16761         * ira-build.c (remove_unnecessary_allocnos): Nullify
16762         regno_allocno_map of the removed allocno.
16763
16764 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16765
16766         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
16767         to /dev/null.
16768         * configure: Regenerate.
16769
16770 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16771
16772         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
16773         unused.
16774         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
16775         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
16776         support in Sun ld.
16777         * configure: Regenerate.
16778
16779 2010-05-10  Richard Guenther  <rguenther@suse.de>
16780
16781         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
16782         marked if the entry identifier is marked.
16783
16784 2010-05-10  Richard Guenther  <rguenther@suse.de>
16785
16786         * c-common.c (struct c_common_attributes): Add fnspec attribute.
16787         (handle_fnspec_attribute): New function.
16788         * gimple.h (gimple_call_return_flags): Declare.
16789         (gimple_call_arg_flags): Likewise.
16790         * gimple.c (gimple_call_arg_flags): New function.
16791         (gimple_call_return_flags): Likewise.
16792         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
16793         New argument flags.
16794         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
16795         return value flags.
16796         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
16797         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
16798         main work to ...
16799         (make_heapvar_for): ... this new function.
16800         (handle_rhs_call): Handle fnspec attribute argument specifiers.
16801         (handle_lhs_call): Likewise.
16802         (find_func_aliases): Adjust.
16803
16804 2010-05-10  Richard Guenther  <rguenther@suse.de>
16805
16806         PR tree-optimization/44050
16807         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
16808
16809 2010-05-10  Wei Guozhi  <carrot@google.com>
16810
16811         PR target/42879
16812         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
16813
16814 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
16815
16816         PR c/10676
16817         * c-typeck.c (lookup_field): Take a type directly.  Update
16818         recursive calls.
16819         (build_component_ref): Update call to lookup_field.
16820         (set_init_label): Use lookup_field to find initialized field.
16821         Handle returned list of fields like a sequence of designators.
16822
16823 2010-05-09  Richard Guenther  <rguenther@suse.de>
16824
16825         PR middle-end/44024
16826         * fold-const.c (tree_single_nonzero_warnv_p): Properly
16827         handle &FUNCTION_DECL.
16828
16829 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
16830
16831         PR c/4784
16832         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
16833         structures and unions recursively.
16834         (detect_field_duplicates): Move duplicate detection with a hash to
16835         detect_field_duplicates_hash.  Always use a hash if anonymous
16836         structures or unions are present.
16837         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
16838         give errors.
16839
16840 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
16841
16842         PR target/44046
16843         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
16844         detect Atom, Core 2 and Core i7.
16845
16846 2010-05-09  Richard Guenther  <rguenther@suse.de>
16847
16848         * gcc.c (store_arg): Handle temporary file deletion for
16849         joined arguments.
16850
16851 2010-05-09  Richard Guenther  <rguenther@suse.de>
16852
16853         PR middle-end/44043
16854         * ipa-inline.c (estimate_function_body_sizes): Return after
16855         disregarding inline limits.
16856
16857 2010-05-09  Richard Guenther  <rguenther@suse.de>
16858
16859         * gcc.c (store_arg): Revert last change.
16860
16861 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
16862
16863         PR middle-end/28685
16864         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
16865         (optimize_ops_list): Call it.
16866
16867 2010-05-08  Richard Guenther  <rguenther@suse.de>
16868
16869         PR tree-optimization/44030
16870         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
16871         NECESSARY flag if we propagate from a inserted expression.
16872
16873 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
16874
16875         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
16876         domain types as equal if they are both PLACEHOLDER_EXPRs.
16877
16878 2010-05-08  Richard Guenther  <rguenther@suse.de>
16879
16880         * lto-wrapper.c (run_gcc): Remove linker output from
16881         command line for LTRANS invocation.
16882
16883 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
16884
16885         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
16886         lto-macho as lto_binary_reader.
16887         * target.h (struct gcc_target): New hooks lto_start and lto_end.
16888         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
16889         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
16890         in lto_start and lto_end calls.
16891         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
16892         magic numbers.
16893         (scan_prog_file): Update is_elf_or_coff call.
16894         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
16895
16896         * collect2.c (main): Fix enum comparison.
16897
16898         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
16899         Add prototypes.
16900         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
16901         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
16902         and TARGET_ASM_LTO_END.
16903         * darwin.c: Include obstack.h and lto-streamer.h.
16904         (lto_section_names_offset, lto_section_names_obstack,
16905         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
16906         global variables.
16907         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
16908         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
16909         to a temporary file.
16910         (darwin_asm_lto_end): New function.  Restore asm_out_file.
16911         (darwin_asm_named_section): For LTO sections, replace the name with
16912         the offset of the section name in a string table, and build this
16913         table.
16914         (darwin_file_start): Initialize global vars for LTO support.
16915         (darwin_file_end): If output to asm_out_file was redirected, append it
16916         to the proper asm_out_file here.  Add the section names section.
16917
16918 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
16919
16920         * c-pragma.c (pending_weak_d, pending_weak): New.
16921         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
16922         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
16923         handle_pragma_weak): Update the uses of pending_weaks.
16924
16925 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16926
16927         PR documentation/44016
16928         * doc/standards.texi (Standards): Link to unversioned
16929         cxx0x_status.html page.
16930
16931 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
16932
16933         PR target/43708
16934         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
16935         in addition to TREE_USED, to avoid "set but unused" warnings.
16936
16937 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
16938
16939         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
16940         (is_loop_prefetching_profitable): Do not insert prefetches
16941         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
16942         times the prefetch ahead distance.
16943
16944 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
16945
16946         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
16947         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
16948         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
16949         the unroll_factor.
16950
16951 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
16952
16953         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
16954         a diagnostic info when the insn-to-mem ratio is too small.
16955
16956 2010-05-07  Richard Guenther  <rguenther@suse.de>
16957
16958         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
16959         the linker plugin.
16960         (store_arg): Queue temp_filename for deletion instead of
16961         the whole argument.
16962
16963 2010-05-07  Richard Guenther  <rguenther@suse.de>
16964
16965         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
16966         (run_gcc): Handle LTRANS phase invocation.
16967         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
16968
16969 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
16970
16971         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
16972         this is also meaningful on PARM_DECLs and RESULT_DECLs.
16973
16974 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16975
16976         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
16977
16978 2010-05-07  Richard Guenther  <rguenther@suse.de>
16979
16980         PR tree-optimization/44020
16981         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
16982         code when PRE is not yet initialized.
16983
16984 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16985
16986         * config/mips/dbxmdebug.h: Remove.
16987         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
16988
16989 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
16990
16991         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
16992         with null pointer and also warn about ordered comparison of zero with
16993         pointer if -Wextra.
16994
16995 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16996
16997         * graphite-blocking.c
16998         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
16999         * graphite-clast-to-gimple.c
17000         (clast_to_gcc_expression): Same.
17001         (precision_for_value): Same.
17002         (precision_for_interval): Same.
17003         (gcc_type_for_interval): Same.
17004         (graphite_create_new_guard): Same.
17005         (compute_bounds_for_level): Same.
17006         (graphite_create_new_loop_guard): Same.
17007         * graphite-interchange.c
17008         (build_linearized_memory_access): Same.
17009         (pdr_stride_in_loop): Same.
17010         (memory_strides_in_loop_1): Same.
17011         (memory_strides_in_loop): Same.
17012         (extend_scattering): Same.
17013         (psct_scattering_dim_for_loop_depth): Same.
17014         (pbb_number_of_iterations): Same.
17015         * graphite-poly.h
17016         (debug_iteration_domains): Same.
17017         * graphite-ppl.c
17018         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17019         (ppl_set_inhomogeneous_gmp): Same.
17020         (ppl_strip_loop): Same.
17021         (ppl_lexico_compare_linear_expressions): Same.
17022         (ppl_read_polyhedron_matrix): Same.
17023         (ppl_max_for_le_pointset): Same.
17024         * graphite-ppl.h
17025         (ppl_read_polyhedron_matrix): Same.
17026         (tree_int_to_gmp): Same.
17027         (gmp_cst_to_tree): Same.
17028         (ppl_set_inhomogeneous): Same.
17029         (ppl_set_inhomogeneous_tree): Same.
17030         (ppl_set_coef): Same.
17031         (ppl_set_coef_tree): Same.
17032         * graphite-sese-to-poly.c
17033         (build_pbb_scattering_polyhedrons): Same.
17034         (build_scop_scattering): Same.
17035         (scan_tree_for_params_right_scev): Same.
17036         (scan_tree_for_params): Same.
17037         (find_params_in_bb): Same.
17038         (find_scop_parameters): Same.
17039         (add_upper_bounds_from_estimated_nit): Same.
17040         (build_loop_iteration_domains): Same.
17041         (add_condition_to_domain): Same.
17042         (pdr_add_memory_accesses): Same.
17043
17044 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17045
17046         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
17047         CLooG's value_* macros to their respective mpz_* counterparts.
17048         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
17049         (graphite_create_new_loop_guard): Same.
17050         * graphite-interchange.c (build_linearized_memory_access): Same.
17051         (pdr_stride_in_loop): Same.
17052         (memory_strides_in_loop_1): Same.
17053         (1st_interchange_profitable_p): Same.
17054         * graphite-poly.c (extend_scattering): Same.
17055         (psct_scattering_dim_for_loop_depth): Same.
17056         (pbb_number_of_iterations): Same.
17057         (pbb_number_of_iterations_at_time): Same.
17058         * graphite-poly.h (new_1st_loop): Same.
17059         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
17060         (oppose_constraint): Same.
17061         (insert_constraint_into_matrix): Same.
17062         (ppl_set_inhomogeneous_gmp): Same.
17063         (ppl_set_coef_gmp): Same.
17064         (ppl_strip_loop): Same.
17065         (ppl_lexico_compare_linear_expressions): Same.
17066         (ppl_max_for_le_pointset): Same.
17067         (ppl_min_for_le_pointset): Same.
17068         (ppl_build_realtion): Same.
17069         * graphite-ppl.h (gmp_cst_to_tree): Same.
17070         (ppl_set_inhomogeneous): Same.
17071         (ppl_set_inhomogeneous_tree): Same.
17072         (ppl_set_coef): Same.
17073         (ppl_set_coef_tree): Same.
17074         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
17075         (build_scop_scattering): Same.
17076         (add_value_to_dim): Same.
17077         (scan_tree_for_params_right_scev): Same.
17078         (scan_tree_for_params_int): Same.
17079         (scan_tree_for_params): Same.
17080         (find_params_in_bb): Same.
17081         (find_scop_parameters): Same.
17082         (add_upper_bounds_from_estimated_nit): Same.
17083         (build_loop_iteration_domains): Same.
17084         (create_linear_expr_from_tree): Same.
17085         (add_condition_to_domain): Same.
17086         (pdr_add_memory_accesses): Same.
17087
17088 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
17089             Jason Merrill  <jason@redhat.com>
17090
17091         * c-common.c (c_common_reswords): Add nullptr.
17092         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
17093         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
17094         (gen_type_die_with_usage): Likewise.
17095         * dbxout.c (dbxout_type): Likewise.
17096         * sdbout.c (plain_type_1): Likewise.
17097
17098 2010-05-06  Jason Merrill  <jason@redhat.com>
17099
17100         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
17101         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
17102         ret appropriately.
17103         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
17104
17105         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
17106         stripping WITH_SIZE_EXPR.
17107         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
17108         change.
17109
17110 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17111
17112         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
17113         list of obsolete configurations.
17114         Disabled check for obsolete configurations.
17115         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
17116         Removed support for previous versions.
17117         * config/mips/iris.h: Removed.
17118         * config/mips/iris5.h: Removed.
17119         * config/mips/iris6.h: Merged old iris.h contents.
17120         (TARGET_IRIX): Removed.
17121         (DRIVER_SELF_SPECS): Removed mabi=32.
17122         (IDENT_ASM_OP): Removed undef.
17123         (STARTFILE_SPEC): Removed mabi=32.
17124         (ENDFILE_SPEC): Likewise.
17125         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
17126         (MACHINE_TYPE): Update for IRIX 6.5.
17127         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
17128         TARGET_IRIX by TARGET_IRIX6.
17129         (mips_file_start): Likewise.
17130         (mips_output_external): Remove IRIX 5/6 O32 support.
17131         (mips_output_function_prologue): Likewise.
17132         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
17133         TARGET_IRIX6.
17134         (TARGET_CPU_CPP_BUILTINS): Likewise.
17135         (TARGET_IRIX): Removed.
17136         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
17137         (MULTILIB_DIRNAMES): Removed 32.
17138         (MULTILIB_OSDIRNAMES): Removed ../lib.
17139         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
17140         (Specific, mips-sgi-irix5): Document removal.
17141         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
17142         Remove references to older IRIX 6 releases and the O32 ABI.
17143
17144 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
17145
17146         PR bootstrap/43994
17147         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
17148         instead of DF_REF_REAL_REG.
17149
17150 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
17151
17152         PR target/43888
17153         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
17154         handling to still return true for x64 targets.
17155
17156 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
17157
17158         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
17159
17160 2010-05-06  Jan Hubicka  <jh@suse.cz>
17161
17162         PR tree-optimization/43791
17163         * ipa-inline.c (update_caller_keys): Remove bogus
17164         disregard_inline_limits check.
17165
17166 2010-05-06  Michael Matz  <matz@suse.de>
17167
17168         PR tree-optimization/43984
17169         * tree-ssa-pre.c (inserted_phi_names): Remove.
17170         (inserted_exprs): Change to bitmap.
17171         (create_expression_by_pieces): Set bits, don't append to vector.
17172         (insert_into_preds_of_block): Don't handle inserted_phi_names.
17173         (eliminate): Don't look at inserted_phi_names, remove deleted
17174         insns from inserted_exprs.
17175         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
17176         (init_pre, fini_pre): Allocate and free bitmaps.
17177         (execute_pre): Insert insns on edges before elimination.
17178
17179 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
17180
17181         * tree.c (initializer_zerop): Handle STRING_CST.
17182
17183 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17184
17185         PR 40989
17186         * doc/invoke.texi (Wimplicit): Document as C only.
17187         * opts.c (common_handle_option): Add argument kind.
17188         (handle_option): Rename as read_cmdline_option. Factor out code to...
17189         (handle_option): ... here. New.
17190         (handle_options): Rename as read_cmdline_options.
17191         (decode_options): Update call.
17192         (set_option): Use option index instead of option pointer. Classify
17193         diagnostics correctly.
17194         (enable_warning_as_error): Call handle_option.
17195         * opts.h (set_option): Update declaration.
17196         (handle_option): Declare.
17197         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
17198         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
17199         * c-opts.c (set_Wimplicit): Delete.
17200         (c_family_lang_mask): New static constant.
17201         (c_common_handle_option): Add argument kind. Use handle_option
17202         instead of set_Wimplicit.
17203         (c_common_post_options): warn_implicit and warn_implicit_int
17204         are disabled by default.
17205         * c-common.c (warn_implicit): Do not define here.
17206         * c-common.h (warn_implicit): Do not declare here.
17207         (c_common_handle_option): Update declaration.
17208         * lto-opts.c (lto_reissue_options): Update call to set_option.
17209
17210 2010-05-06  Richard Guenther  <rguenther@suse.de>
17211
17212         PR tree-optimization/43571
17213         * domwalk.c (walk_dominator_tree): Walk the dominator
17214         sons in more optimal order.
17215
17216 2010-05-06  Richard Guenther  <rguenther@suse.de>
17217
17218         PR tree-optimization/43934
17219         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
17220         (stmt_cost): Likewise.
17221         (extract_true_false_args_from_phi): New helper.
17222         (determine_max_movement): For PHI nodes verify we can hoist them
17223         and compute their cost.
17224         (determine_invariantness_stmt): Handle PHI nodes.
17225         (move_computations_stmt): Likewise.  Hoist PHI nodes in
17226         if-converted form using COND_EXPRs.
17227         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
17228         (tree_ssa_lim): Likewise.
17229         * tree-flow.h (tree_ssa_lim): Adjust prototype.
17230         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
17231
17232 2010-05-06  Richard Guenther  <rguenther@suse.de>
17233
17234         PR tree-optimization/43987
17235         * tree-ssa-structalias.c (could_have_pointers): For possibly
17236         address-taken variables force pointers to be recorded.
17237         (create_variable_info_for_1): Likewise.
17238         (push_fields_onto_fieldstack): Pass in wheter all fields
17239         must have pointers.
17240         (find_func_aliases): Query types instead of vars whether
17241         they contain pointers where appropriate.
17242
17243 2010-05-06  Jan Hubicka  <jh@suse.cz>
17244
17245         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
17246         (record_reference, mark_address, mark_load, mark_store): Record
17247         references.
17248         (record_references_in_initializer): Update call of record_references.
17249         (rebuild_cgraph_edges): Remove all references before rebuiding.
17250         * cgraph.c (cgraph_create_node): Clear ref list.
17251         (cgraph_remove_node): Remove references.
17252         (dump_cgraph_node): Dump references.
17253         (cgraph_clone_node): Clone references.
17254         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
17255         (struct cgraph_node, varpool_node): Add ref_lst.
17256         * ipa-ref.c: New file.
17257         * ipa-ref.h: New file.
17258         * ipa-ref-inline.h: New file.
17259         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
17260         (referenced_from_other_partition_p): New function.
17261         (lto_output_varpool_node): Take set arugment; call
17262         referenced_from_other_partition.
17263         (lto_output_ref): New.
17264         (add_references): New.
17265         (output_refs): New.
17266         (output_cgraph): Compute boundary based on references; output refs.
17267         (output_varpool): Accept cgraph_node_set argument.
17268         (input_ref): New.
17269         (input_refs): New.
17270         (input_cgraph): Call input_refs.
17271         * lto-section-in.c (lto_section_name): Add refs.
17272         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
17273         (ipa-ref.o): New file.
17274         * varpool.c (varpool_node): Clear ipa ref list.
17275         (varpool_remove_node): Remove references.
17276         (dump_varpool_node): Dump references.
17277         (varpool_assemble_decl): Only compile finalized ones.
17278         (varpool_extra_name_alias): Initialize ref list.
17279         * lto-streamer.c (lto-get_section_name): Add .refs section.
17280         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
17281         (referenced_from_other_partition_p): Declared.
17282
17283 2010-05-06  Ira Rosen  <irar@il.ibm.com>
17284
17285         PR tree-optimization/43901
17286         * tree-vect-stmts.c (vectorizable_call): Assert that vector
17287         type is not NULL if it's transformation phase, and return
17288         FALSE if it's analysis.
17289         (vectorizable_conversion, vectorizable_operation,
17290         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
17291
17292 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
17293
17294         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
17295         Delete.
17296         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
17297         New define.
17298         * config/mips/mips-protos.h
17299         (mips_small_register_classes_for_mode_p): Delete prototype.
17300
17301 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
17302
17303         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
17304         * config/arm/arm.c (multiple_operation_profitable_p,
17305         compute_offset_order): New static functions.
17306         (load_multiple_sequence, store_multiple_sequence): Use them.
17307         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
17308         memory offsets, not register numbers.
17309         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
17310
17311 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
17312
17313         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
17314         (get_pending_sizes, put_pending_size, put_pending_sizes):
17315         Update the uses of pending_sizes.
17316         * c-decl.c (store_parm_decls): Likewise.
17317         * c-tree.h (struct c_arg_info): Likewise.
17318         * tree.h: Update the prototype for get_pending_sizes and
17319         put_pending_sizes.
17320
17321 2010-05-05  Jason Merrill  <jason@redhat.com>
17322
17323         PR debug/43370
17324         * c-common.c (handle_aligned_attribute): Respect
17325         ATTR_FLAG_TYPE_IN_PLACE.
17326
17327         PR testsuite/43758
17328         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
17329         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
17330         (TARGET_INITIALIZER): Use it.
17331         * c-common.c (attribute_takes_identifier_p): Call it.
17332         * c-common.h: Update prototype.
17333         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
17334         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
17335
17336 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
17337
17338         PR debug/43950
17339         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
17340         DW_ID_down_case for Fortran compilation units.
17341
17342 2010-05-05  Jan Hubicka  <jh@suse.cz>
17343
17344         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
17345         handle aliases.
17346
17347 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
17348
17349         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
17350         a variable-sized RESULT_DECL.
17351
17352 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
17353
17354         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
17355
17356 2010-05-05  Jason Merrill  <jason@redhat.com>
17357
17358         PR c++/43787
17359         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
17360         returns GS_OK.
17361         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
17362
17363 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
17364             Jakub Jelinek  <jakub@redhat.com>
17365
17366         PR debug/43478
17367         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
17368         (dead_debug_init, dead_debug_finish): New functions.
17369         (dead_debug_add, dead_debug_insert_before): Likewise.
17370         (df_note_bb_compute): Initialize a dead_debug object, add dead
17371         debug uses to it, insert debug bind insns before death insns,
17372         reset debug insns that refer to pending uses at the end.
17373         * rtl.h (make_debug_expr_from_rtl): New prototype.
17374         * varasm.c (make_debug_expr_from_rtl): New function.
17375
17376 2010-05-05  Jan Hubicka  <jh@suse.cz>
17377
17378         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
17379         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
17380         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
17381         lto_varpool_encoder_deref, lto_varpool_encoder_size,
17382         lto_varpool_encoder_encode_initializer_p,
17383         lto_set_varpool_encoder_encode_initializer): New functions.
17384         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
17385         call output_varpool.
17386         (input_varpool_node): Do not always set analyzed.
17387         (input_cgraph_1): Return vector of cgraph nodes.
17388         (input_varpool_1): Return vector of varpools.
17389         (input_cgraph): Free the vectors.
17390         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
17391         output only initializers needed.
17392         (lto_output): Only call output_cgraph.
17393         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
17394         * lto-section-out.c (lto_new_out_decl_state): Initialize
17395         state->varpool_node_encoder.
17396         * lto-streamer.h (lto_varpool_encoder_d): New.
17397         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
17398         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
17399         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
17400         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
17401         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
17402         Declare.
17403         (output_varpool, input_varpool): Remove declarations.
17404
17405 2010-05-05  Jan Hubicka  <jh@suse.cz>
17406
17407         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
17408         with body can prevail.
17409
17410 2010-05-05  Jan Hubicka  <jh@suse.cz>
17411
17412         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
17413         size.
17414
17415 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
17416
17417         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
17418
17419         * gengtype.h (erro_at_line): Constify pos argument.
17420
17421         * gengtype.c: Include hashtab.h.
17422         (enum gc_used): Document GC_MAYBE_POINTED_TO.
17423         (error_at_line): Constify pos argument.
17424         (do_typedef): Initialize p->opt field.
17425         (get_file_gtfilename): Fix comment typo.
17426         (struct walk_type_data): Constify line field.
17427         (get_output_file_for_structure): New function.
17428         (write_local_func_for_structure): Constify orig_s argument.
17429         Use get_output_file_for_structure.
17430         (write_func_for_structure): Use get_output_file_for_structure.
17431         (INDENT): New define.
17432         (dump_pair, dump_type, dump_type_list, dump_typekind)
17433         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
17434         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
17435         functions.
17436         (seen_types): New variable.
17437         (main): New variable do_dump.  Process "-d" command line option.
17438         Call dump_everything if dump requested.
17439
17440 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
17441
17442         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
17443         in a temporary instead of invoking the macro multiple times.
17444         (track_expr_p): Likewise.
17445
17446 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
17447
17448         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
17449         per new semantics.
17450         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
17451         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
17452         conditions for printing notes.
17453         * common.opt (-Wcoverage-mismatch): Allow negative, default to
17454         true, update documentation.
17455         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
17456
17457 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
17458
17459         PR c/43981
17460         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
17461         on dimen.
17462
17463 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
17464
17465         PR target/43799
17466         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
17467         (*sse_prologue_save_insn1): Likewise.
17468         (SSE prologue save splitter): Likewise.
17469
17470 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
17471
17472         * tree.c (free_lang_data_in_one_sizepos): New inline function.
17473         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
17474         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
17475         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
17476         all decls.  Call it on DECL_FIELD_OFFSET of fields.
17477         (find_decls_types_r): Follow DECL_VALUE_EXPR.
17478         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
17479
17480 2010-05-04  Martin Jambor  <mjambor@suse.cz>
17481
17482         * tree-sra.c (build_access_from_expr_1): The first parameter type
17483         changed to simple tree.
17484         (build_access_from_expr): Likewise, gsi parameter was eliminated.
17485         (scan_assign_result): Renamed to assignment_mod_result, enum elements
17486         renamed as well.
17487         (build_accesses_from_assign): Removed all parameters except for a
17488         simple gimple statement.  Now returns a simple bool.
17489         (scan_function): All non-analysis parts moved to separate functions
17490         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
17491         parameters and updated both callers.
17492         (sra_modify_expr): Removed parameter data.
17493         (sra_modify_function_body): New function.
17494         (perform_intra_sra): Call sra_modify_function_body to modify the
17495         function body.
17496         (replace_removed_params_ssa_names): Parameter data changed into
17497         adjustments vector.
17498         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
17499         changed the parameter dont_convert to convert with the opposite
17500         meaning.
17501         (sra_ipa_modify_assign): Parameter data changed into adjustments
17502         vector, return value changed to bool.
17503         (ipa_sra_modify_function_body): New function.
17504         (sra_ipa_reset_debug_stmts): Updated a comment.
17505         (modify_function): Use ipa_sra_modify_function_body to modify function
17506         body.
17507
17508 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
17509
17510         PR middle-end/43671
17511         * alias.c (true_dependence): Handle the same VALUE in x and mem.
17512         (canon_true_dependence): Likewise.
17513         (write_dependence_p): Likewise.
17514
17515 2010-05-04  Jan Hubicka  <jh@suse.cz>
17516
17517         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
17518         * cgraphbuild.c: Include ipa-utils.h
17519         (record_reference_ctx): New struct.
17520         (record_reference): Simplify to work on initializers; not statements.
17521         (mark_address, mark_load, mark_store): New.
17522         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
17523         walk PHI nodes too.
17524         (record_references_in_initializer): Update use of record_reference.
17525         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
17526         walk PHI nodes too.
17527
17528 2010-05-04  Jan Hubicka  <jh@suse.cz>
17529
17530         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
17531         node will be removed anyway.
17532         (lto_varpool_replace_node): Allow also unanalyzed nodes;
17533         relink aliases of node into prevailing node.
17534         * varpool.c (varpool_remove_node): Remove aliases properly;
17535         when removing node, remove all its aliases too; remove DECL_INITIAL
17536         of removed node; ggc_free the varpool node.
17537
17538 2010-05-04  Richard Guenther  <rguenther@suse.de>
17539
17540         PR tree-optimization/43879
17541         * tree-ssa-structalias.c (alias_get_name): Use
17542         DECL_ASSEMBLER_NAME if available.
17543         (create_function_info_for): Return the varinfo node.
17544         (ipa_pta_execute): Associate same-body aliases and extra names
17545         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
17546
17547 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
17548
17549         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
17550
17551 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
17552
17553         PR bootstrap/43964
17554         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
17555         only if HONOR_REG_ALLOC_ORDER is not defined.
17556
17557 2010-05-04  Richard Guenther  <rguenther@suse.de>
17558
17559         PR tree-optimization/43949
17560         * tree-vrp.c (extract_range_from_binary_expr): Only handle
17561         TRUNC_MOD_EXPR.
17562
17563 2010-04-26  Jason Merrill  <jason@redhat.com>
17564
17565         * c.opt (-fstrict-enums): New.
17566         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
17567
17568 2010-05-03  David Ung  <davidu@mips.com>
17569             James E. Wilson  <wilson@codesourcery.com>
17570
17571         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
17572         emit the trap instruction before the divide for TUNE_74K.
17573
17574 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
17575
17576         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
17577         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
17578         based on the above, for new target hook.
17579
17580         * hooks.c (hook_bool_mode_true): New generic hook.
17581         * hooks.h (hook_bool_mode_true): Add prototype.
17582
17583         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
17584         target hook.
17585         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
17586         target hook, set to hook_bool_mode_false.
17587         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
17588         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
17589         with targetm.small_register_classes_for_mode_p.
17590         (find_reusable_reload): Likewise.
17591         (combine_reloads): Likewise.
17592         * reload1.c (reload_as_needed): Likewise.
17593         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
17594         * ifcvt.c (noce_process_if_block, check_cond_move_block,
17595         dead_or_predicable): Likewise.
17596         * regmove.c (optimize_reg_copy_1): Likewise.
17597         * calls.c (prepare_call_address): Likewise.
17598         (precompute_register_parameters): Likewise.
17599
17600         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
17601         hook definition.
17602         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
17603         implementation of the hook that considers all register classes
17604         small except for SH64.
17605         (sh_override_options): Use the new hook.
17606         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
17607         Add prototype.
17608
17609         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
17610         hook definition.
17611         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
17612         implementation of the hook that considers all register classes
17613         small for THUMB1.
17614         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
17615         Add prototype.
17616
17617         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
17618         hook definition.
17619         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
17620         implementation of the hook that considers all register classes
17621         small for MIPS16.
17622         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
17623         Add prototype.
17624
17625         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
17626         hook definition.
17627         * config/m32c/m32c.h: Likewise.
17628         * config/pdp11/pdp11.h: Likewise.
17629         * config/avr/avr.h: Likewise.
17630         * config/xtensa/xtensa.h: Likewise.
17631         * config/m68hc11/m68hc11.h: Likewise.
17632         * config/mn10300/mn10300.h: Likewise.
17633         * config/mcore/mcore.h: Likewise.
17634         * config/h8300/h8300.h: Likewise.
17635         * config/bfin/bfin.h: Likewise.
17636
17637         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
17638         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
17639
17640 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
17641
17642         * double-int.h (tree_to_double_int): Remove macro.
17643         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
17644         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
17645         (tree_to_double_int): New function.
17646         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
17647         Move ...
17648         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
17649
17650 2010-05-03  Richard Guenther  <rguenther@suse.de>
17651
17652         PR tree-optimization/43971
17653         * tree-ssa-structalias.c (get_constraint_for_1): Fix
17654         constraints in the !flag_delete_null_pointer_checks case.
17655
17656 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
17657
17658         PR debug/43972
17659         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
17660         result mode matches original rtl mode.
17661
17662 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
17663
17664         PR target/43888
17665         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
17666
17667 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
17668
17669         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
17670         when processing flag options.
17671
17672 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
17673
17674         * gcov-iov.c (main): Change format string placeholder
17675         from %#08x to 0x%08x.
17676         * genchecksum.c (dosum): Change format string placeholder
17677         from %#02x to 0x%02x.
17678
17679 2010-05-02  Richard Guenther  <rguenther@suse.de>
17680
17681         PR tree-optimization/43879
17682         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
17683
17684 2010-05-02  Bruno Haible  <bruno@clisp.org>
17685
17686         * doc/extend.texi (Function Attributes): Fix a typo.
17687
17688 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
17689
17690         Revert:
17691         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
17692         placeholder from 0x%x to %#x.
17693         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
17694         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
17695         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
17696         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
17697         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
17698         * config/i386/i386.c (ix86_target_string): Ditto.
17699         * config/i386/i386.c (output_pic_addr_const): Ditto.
17700         (print_operand): Ditto.
17701
17702 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
17703
17704         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
17705         placeholder from 0x%x to %#x.
17706         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
17707         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
17708         (ASM_OUTPUT_DEBUG_DATA): Ditto.
17709         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
17710         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
17711         * optc-gen.awk: Ditto.
17712         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
17713         (HOST_WIDE_INT_PRINT_HEX): Ditto.
17714         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
17715         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
17716
17717 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
17718
17719         * target.h (struct calls): Add function_value_regno_p field.
17720         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
17721         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
17722         * targhooks.c (default_function_value_regno_p): New function.
17723         * targhooks.h (default_function_value_regno_p): Declare function.
17724         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
17725         * builtins.c. (apply_result_size): (Ditto.).
17726         * combine.c. (likely_spilled_retval_p): (Ditto.).
17727         * mode-switching.c. Include 'target.h'.
17728         (create_pre_exit): Use function_value_regno_p hook.
17729         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
17730         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
17731         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
17732
17733         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
17734         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
17735         (ix86_function_value_regno_p): Declare as static, change argument
17736         type to const unsigned int.
17737         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
17738
17739 2010-05-01  Richard Guenther  <rguenther@suse.de>
17740
17741         PR tree-optimization/43949
17742         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
17743         types.
17744         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
17745
17746 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
17747
17748         * rtl.h (CONST_DOUBLE_P): Define.
17749         (rtx_to_double_int): Declare.
17750         * emit-rtl.c (rtx_to_double_int): New function.
17751         * dwarf2out.c (insert_double): New function.
17752         (loc_descriptor, add_const_value_attribute): Clean up, use
17753         rtx_to_double_int and insert_double functions.
17754
17755 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
17756
17757         * doc/extend.texi (Inline): Add missing return keyword to examples.
17758         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
17759         "command-line".
17760
17761 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
17762
17763         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
17764         the variable part of the offset as well.  Use highest_pow2_factor for
17765         all alignment checks.
17766
17767 2010-04-30  Richard Guenther  <rguenther@suse.de>
17768
17769         PR tree-optimization/43879
17770         * tree-ssa-structalias.c (type_could_have_pointers): Functions
17771         can have pointers.
17772
17773 2010-04-30  Jan Hubicka  <jh@suse.cz>
17774
17775         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
17776         varpool.
17777         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
17778
17779 2010-04-30  Jan Hubicka  <jh@suse.cz>
17780
17781         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
17782         New.
17783         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
17784         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
17785         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
17786         cgraph_node_set_needs_ltrans_p): Remove.
17787
17788 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
17789
17790         * sdbout.c: Include vec.h, do not include varray.h.
17791         (deferred_global_decls, sdbout_global_decl,
17792         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
17793         * toplev.c: Do not include varray.h.
17794         (dump_memory_report): Do not dump VARRAY statistics.
17795         * gengtype.c (open_base_file): Ignore varray.h.
17796         * Makefile.in: Update for abovementioned changes.
17797         Remove all traces of varray.c and varray.h.
17798         * varray.c: Remove file.
17799         * varray.h: Remove file.
17800
17801 2010-04-30  Jan Hubicka  <jh@suse.cz>
17802
17803         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
17804         references.
17805
17806 2010-04-30  Jan Hubicka  <jh@suse.cz>
17807
17808         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
17809         needed.
17810
17811 2010-04-30  Richard Guenther  <rguenther@suse.de>
17812
17813         * tree-ssa-structalias.c (get_constraint_for_1): Generate
17814         constraints for CONSTRUCTOR.
17815
17816 2010-04-30  Richard Guenther  <rguenther@suse.de>
17817
17818         PR lto/43946
17819         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
17820         first after all lowering passes.
17821
17822 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
17823
17824         * toplev.c: Include varray.h for statistics dumping.
17825         * tree.h: Do not declare varray_head_tag.
17826         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
17827         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
17828         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
17829         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
17830         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
17831         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
17832         c-common.c, c-common.h, reg-stack.c, basic-block.h,
17833         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
17834         include varray.h.
17835         * Makefile.in: Update for abovementioned changes.
17836
17837 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
17838
17839         PR debug/43942
17840         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
17841
17842 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
17843
17844         * config/picochip/picochip.c (picochip_legitimize_address): Define.
17845         Use this function to do machine-specific conversion.
17846         (picochip_legitimize_reload_address): Likewise.
17847         (picochip_legitimate_address_p): Check valid base register only if
17848         strict.
17849         (picochip_check_conditional_copy): Check for modw only if opnd is
17850         register.
17851         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
17852         to call the function in c.
17853         * config/picochip/picochip-protos.h
17854         (picochip_legitimize_reload_address): Define.
17855         * config/picochip/picochip.md (supported_compare1): Define.
17856
17857 2010-04-30  Jan Hubicka  <jh@suse.cz>
17858
17859         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
17860         (cgraph_global_info): Remove inlined.
17861         (LTO_cgraph_tag_names): Remove.
17862         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
17863         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
17864         simplify cgraph tags and document.
17865         (lto_output_node): Use only LTO_cgraph_unavail_node and
17866         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
17867         for_functions_valid, global info, process and output flags.
17868         (input_overwrite_node): Initialize estimated stack size and
17869         estimated growth.  Do not read flags we no longer store.
17870         (input_node): Likewise do not read info no longer stored.
17871         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
17872         flag.
17873
17874 2010-04-30  Richard Guenther  <rguenther@suse.de>
17875
17876         PR tree-optimization/43879
17877         * tree-ssa-structalias.c (get_constraint_for_1): Properly
17878         handle non-zero initializers.
17879
17880 2010-04-30  Richard Guenther  <rguenther@suse.de>
17881
17882         * builtins.c (fold_builtin_1): Delete free (0).
17883
17884 2010-04-29  Jan Hubicka  <jh@suse.cz>
17885
17886         * gengtype.c (open_base_files): Add lto-streamer.h
17887         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
17888         (pass_ipa_cp): GGC collect.
17889         * toplev. (compile_file): Do not output symbols.
17890         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
17891         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
17892         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
17893         * lto-section-in.c: Include ggc.h
17894         (lto_new_in_decl_state): Alloc in GGC.
17895         (lto_delete_in_decl_state): Likewise.
17896         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
17897         Collect.
17898
17899 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
17900
17901         PR target/42895
17902         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
17903         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
17904         (HONOR_REG_ALLOC_ORDER): Describe new macro.
17905         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
17906         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
17907         account only if HONOR_REG_ALLOC_ORDER is not defined.
17908         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
17909         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
17910
17911 2010-04-29  Jon Grant  <04@jguk.org>
17912
17913         * collect2.c (vflag): Change type from int to bool.
17914         (debug): Likewise.
17915         (helpflag): New global bool.
17916         (main): Set vflag and debug with boolean, not integer truth values.
17917         Accept new "--help" option and output usage text if found.
17918         * collect2.h (vflag): Update prototype.
17919         (debug): Likewise.
17920
17921 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
17922
17923         PR bootstrap/43936
17924         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
17925
17926 2010-04-29  Richard Guenther  <rguenther@suse.de>
17927
17928         PR bootstrap/43935
17929         * plugin.h (invoke_plugin_callbacks): Annotate arguments
17930         with ATTRIBUTE_UNUSED.
17931
17932 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
17933
17934         PR target/43921
17935         * config/i386/i386.c (get_some_local_dynamic_name): Replace
17936         INSN_P with NONDEBUG_INSN_P.
17937         (distance_non_agu_define): Likewise.
17938         (distance_agu_use): Likewise.
17939
17940 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
17941
17942         From Dominique d'Humieres  <dominiq@lps.ens.fr>
17943         PR bootstrap/43858
17944         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
17945         test_set.
17946
17947 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
17948
17949         * plugin.h (invoke_plugin_callbacks): New inline function.
17950         * plugin.c (flag_plugin_added): New global flag.
17951         (add_new_plugin): Initialize above flag.
17952         (invoke_plugin_callbacks): Rename to ...
17953         (invoke_plugin_callbacks_full): ... this.
17954
17955 2010-04-28  Jan Hubicka  <jh@suse.cz>
17956
17957         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
17958         (lto_varpool_replace_node): New.
17959         (lto_symtab_resolve_symbols): Resolve varpool nodes.
17960         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
17961         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
17962         * cgraph.h (varpool_node_ptr): New type.
17963         (varpool_node_ptr): New vector.
17964         (varpool_node_set_def): New structure.
17965         (varpool_node_set): New type.
17966         (varpool_node_set): New vector.
17967         (varpool_node_set_element_def): New structure.
17968         (varpool_node_set_element, const_varpool_node_set_element): New types.
17969         (varpool_node_set_iterator): New type.
17970         (varpool_node): Add prev pointers, add used_from_other_partition,
17971         in_other_partition.
17972         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
17973         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
17974         varpool_get_node, varpool_remove_node): Declare.
17975         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
17976         varpool_node_set_size): New inlines.
17977         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
17978         * tree-pass.h (varpool_node_set_def): Forward declare.
17979         (ipa_opt_pass_d): Summary writting takes vnode sets too.
17980         (ipa_write_optimization_summaries): Update prototype.
17981         * ipa-cp.c (ipcp_write_summary): Update.
17982         * ipa-reference.c (ipa_reference_write_summary): Update.
17983         * lto-cgraph.c (lto_output_varpool_node): New static function.
17984         (output_varpool): New function.
17985         (input_varpool_node): New static function.
17986         (input_varpool_1): New function.
17987         (input_cgraph): Input varpool.
17988         * ipa-pure-const.c (pure_const_write_summary): Update.
17989         * lto-streamer-out.c (lto_output): Update, output varpool too.
17990         (write_global_stream): Kill WPA hack.
17991         (produce_asm_for_decls): Update.
17992         (output_alias_pair_p): Handle variables.
17993         (output_unreferenced_globals): Output only needed partition of varpool.
17994         * ipa-inline.c (inline_write_summary): Update.
17995         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
17996         cgraph.
17997         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
17998         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
17999         varpool_node_set_new, varpool_node_set_add,
18000         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
18001         debug_varpool_node_set): New functions.
18002         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
18003         (execute_one_pass): Process new decls too.
18004         (ipa_write_summaries_2): Pass around vsets.
18005         (ipa_write_summaries_1): Likewise.
18006         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
18007         to add.
18008         (ipa_write_optimization_summaries_1): Pass around vsets.
18009         (ipa_write_optimization_summaries): Likewise.
18010         * varpool.c (varpool_get_node): New.
18011         (varpool_node): Update doubly linked lists.
18012         (varpool_remove_node): New.
18013         (dump_varpool_node): More dumping.
18014         (varpool_enqueue_needed_node): Update doubly linked lists.
18015         (decide_is_variable_needed): Kill ltrans hack.
18016         (varpool_finalize_decl): Kill lto hack.
18017         (varpool_assemble_decl): Skip decls in other partitions.
18018         (varpool_assemble_pending_decls): Update doubly linkes lists.
18019         (varpool_empty_needed_queue): Likewise.
18020         (varpool_extra_name_alias): Likewise.
18021         * lto-streamer.c (lto_get_section_name): Add vars section.
18022         * lto-streamer.h (lto_section_type): Update.
18023         (output_varpool, input_varpool): Declare.
18024
18025 2010-04-28  Mike Stump  <mikestump@comcast.net>
18026
18027         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
18028
18029 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
18030
18031         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
18032         record or union type with RECORD_OR_UNION_TYPE_P predicate.
18033         (lto_input_ts_type_tree_pointers): Likewise.
18034         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
18035         (lto_output_ts_type_tree_pointers): Likewise.
18036
18037 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
18038
18039         Uniquization of constants at the Tree level
18040         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
18041         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
18042         bit to the end.
18043         (tree_output_constant_def): Declare.
18044         * gimplify.c (gimplify_init_constructor): When using block copy, first
18045         uniquize the constant constructor on the RHS.
18046         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
18047         DECL_IN_CONSTANT_POOL flag.
18048         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
18049         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
18050         constant pool.
18051         (assemble_variable): Deal with symbols belonging to the tree constant
18052         pool.
18053         (get_constant_section): Add ALIGN parameter and simplify.
18054         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
18055         (assemble_constant_contents): Use the expression of the VAR_DECL.
18056         (output_constant_def_contents): Use the alignment of the VAR_DECL.
18057         (tree_output_constant_def): New global function.
18058         (mark_constant): Use the expression of the VAR_DECL.
18059         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
18060         its expression.
18061         (output_object_block): Likewise and assemble the expression.
18062
18063 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
18064
18065         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
18066         hash_tree, eq_tree): New tree hash table.
18067         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
18068         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
18069         lto_orig_address_remove): Reimplement.
18070
18071 2010-04-28  Xinliang David Li  <davidxl@google.com>
18072
18073         PR c/42643
18074         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
18075         (compute_uninit_opnds_pos): New function.
18076         (is_non_loop_exit_postdominating): New function.
18077         (compute_control_dep_chain): New function.
18078         (find_pdom): New function.
18079         (convert_control_dep_chain_into_preds): New function.
18080         (find_predicates): New function.
18081         (find_control_equiv_block): New function.
18082         (collect_phi_def_edges): New function.
18083         (find_def_preds): New function.
18084         (find_dom): New function.
18085         (dump_predicates): New function.
18086         (get_cmp_code): New function.
18087         (is_value_included_in): New function.
18088         (find_matching_predicate_in_rest_chains): New function.
18089         (use_pred_not_overlap_with_undef_path_pred): New function.
18090         (is_use_properly_guarded): New function.
18091         (normalize_cond_1): New function.
18092         (is_and_or_or): New function.
18093         (normalize_cond): New function.
18094         (is_gcond_subset_of): New function.
18095         (is_subset_of_any): New function.
18096         (is_or_set_subset_of): New function.
18097         (is_and_set_subset_of): New function.
18098         (is_norm_cond_subset_of): New function.
18099         (is_pred_expr_subset_of): New function.
18100         (is_pred_chain_subset_of): New function.
18101         (is_included_in): New function.
18102         (is_superset_of): New function.
18103         (find_uninit_use): New function.
18104         (warn_uninitialized_phi): New function.
18105         (compute_possibly_undefined_names): New function.
18106         (ssa_undefined_value_p): New function.
18107         (execute_late_warn_uninitialized): New function.
18108         * tree-ssa.c (ssa_undefined_value_p): Removed.
18109         (warn_uninit): Changed to extern.
18110         (warn_uninitialized_phi): Removed.
18111         (warn_uninitialized_vars): Changed to extern.
18112         (execute_late_warn_uninitialized): Removed
18113         * tree-flow.h: Add new prototypes.
18114         * timevar.def: Add new time variable.
18115         * Makefile.in: Add new build file.
18116
18117 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
18118
18119         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
18120         type if available.
18121
18122 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18123
18124         PR target/22224
18125         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
18126
18127 2010-04-28  Martin Jambor  <mjambor@suse.cz>
18128
18129         * cgraph.h (struct cgraph_node): New field indirect_calls.
18130         (struct cgraph_indirect_call_info): New type.
18131         (struct cgraph_edge): Removed field indirect_call. New fields
18132         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
18133         (cgraph_create_indirect_edge): Declare.
18134         (cgraph_make_edge_direct): Likewise.
18135         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
18136         * ipa-prop.h (struct ipa_param_call_note): Removed.
18137         (struct ipa_node_params): Removed field param_calls.
18138         (ipa_create_all_structures_for_iinln): Declare.
18139         * cgraph.c: Described indirect edges and uids in initial comment.
18140         (cgraph_add_edge_to_call_site_hash): New function.
18141         (cgraph_edge): Search also among the indirect edges, use
18142         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
18143         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
18144         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
18145         site hash.
18146         (initialize_inline_failed): Assign a reason to indirect edges.
18147         (cgraph_create_edge_1): New function.
18148         (cgraph_create_edge): Moved some functionality to
18149         cgraph_create_edge_1.
18150         (cgraph_create_indirect_edge): New function.
18151         (cgraph_edge_remove_callee): Add an assert checking for
18152         non-indirectness.
18153         (cgraph_edge_remove_caller): Special-case indirect edges.
18154         (cgraph_remove_edge): Likewise.
18155         (cgraph_set_edge_callee): New function.
18156         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
18157         (cgraph_make_edge_direct): New function.
18158         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
18159         the declaration of the call statement matches.
18160         (cgraph_node_remove_callees): Special-case indirect edges.
18161         (cgraph_clone_edge): Likewise.
18162         (cgraph_clone_node): Clone also the indirect edges.
18163         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
18164         indirect_call, dump count of indirect_calls edges.
18165         * ipa-prop.c (iinlining_processed_edges): New variable.
18166         (ipa_note_param_call): Create indirect edges instead of
18167         creating notes.  New parameter node.
18168         (ipa_analyze_call_uses): New parameter node, pass it on to
18169         ipa_note_param_call.
18170         (ipa_analyze_stmt_uses): Likewise.
18171         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
18172         (print_edge_addition_message): Work on edges rather than on notes.
18173         (update_call_notes_after_inlining): Likewise, renamed to
18174         update_indirect_edges_after_inlining.
18175         (ipa_create_all_structures_for_iinln): New function.
18176         (ipa_free_node_params_substructures): Do not free notes.
18177         (ipa_edge_duplication_hook): Propagate bits within
18178         iinlining_processed_edges bitmap.
18179         (ipa_node_duplication_hook): Do not duplicate notes.
18180         (free_all_ipa_structures_after_ipa_cp): Renamed to
18181         ipa_free_all_structures_after_ipa_cp.
18182         (free_all_ipa_structures_after_iinln): Renamed to
18183         ipa_free_all_structures_after_iinln.
18184         (ipa_write_param_call_note): Removed.
18185         (ipa_read_param_call_note): Removed.
18186         (ipa_write_indirect_edge_info): New function.
18187         (ipa_read_indirect_edge_info): Likewise.
18188         (ipa_write_node_info): Do not stream notes, do stream information
18189         in indirect edges.
18190         (ipa_read_node_info): Likewise.
18191         (lto_ipa_fixup_call_notes): Removed.
18192         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
18193         * ipa-inline.c (pass_ipa_inline): Likewise.
18194         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
18195         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
18196         * tree-inline.c (copy_bb): Removed an unnecessary double check for
18197         is_gimple_call.
18198         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
18199         edges.
18200         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
18201         (output_cgraph): Stream also indirect edges.
18202         (lto_output_edge): Added capability to stream indirect edges.
18203         (input_edge): Likewise.
18204         (input_cgraph_1): Likewise.
18205         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
18206         of indirect edges.
18207
18208 2010-04-28  Richard Guenther  <rguenther@suse.de>
18209
18210         PR tree-optimization/43879
18211         PR tree-optimization/43909
18212         * tree-ssa-structalias.c (struct variable_info): Add
18213         only_restrict_pointers flag.
18214         (new_var_info): Initialize it.  Increment stats.total_vars here.
18215         (create_function_info_for): Do not increment stats.total_vars here.
18216         (get_function_part_constraint): Fix build with C++.
18217         (insert_into_field_list): Remove.
18218         (push_fields_onto_fieldstack): Properly merge fields.
18219         (create_variable_info_for): Split and simplify.
18220         (create_variable_info_for_1): New piece.
18221         (intra_create_variable_infos): Properly make restrict constraints
18222         from parameters.
18223
18224 2010-04-28  Richard Guenther  <rguenther@suse.de>
18225
18226         PR c++/43880
18227         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
18228
18229 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18230             Jan Hubicka  <hubicka@ucw.cz>
18231
18232         * doc/invoke.texi (-Wsuggest-attribute=const,
18233         -Wsuggest-attribute=pure): Document.
18234         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
18235         (function_always_visible_to_compiler_p,
18236         suggest_attribute, warn_function_pure, warn_function_const):
18237         New functions.
18238         (check_call): Improve debug info.
18239         (analyze_function): Do not check availability.
18240         (add_new_function): Check availability.
18241         (propagate): Output warnings.
18242         (skip_function_for_local_pure_const): New function.
18243         (local_pure_const): Use it; output warnings.
18244         * common.opt (Wsuggest-attribute=const,
18245         Wsuggest-attribute=pure): New.
18246
18247 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
18248
18249         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
18250         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
18251         or DW_CFA_def_cfa_offset{,_sf}.
18252
18253 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
18254
18255         * tree.h: Fix truncated long macros.
18256
18257 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
18258
18259         * collect2.c (TARGET_64BIT): Redefine to target's default.
18260         * tlink.c: Likewise.
18261         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
18262         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
18263         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
18264         for underscoring __USER_LABEL_PREFIX__.
18265         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
18266         (SUB_LINK_ENTRY32): New.
18267         (SUB_LINK_ENTRY64): New.
18268         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
18269         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
18270         (SUB_LINK_ENTRY64): New.
18271         (SUB_LINK_ENTRY): New.
18272         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
18273         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
18274         x64 target is choosen.
18275         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
18276         * configure: Regenerated.
18277         * configure.ac (leading-mingw64-underscores): Option added.
18278
18279 2010-04-27  Jan Hubicka  <jh@suse.cz>
18280
18281         * doc/invoke.texi (-fipa-profile): Document.
18282         * opts.c (decode_options): Enable ipa-profile at -O1.
18283         * timevar.def (TV_IPA_PROFILE): Define.
18284         * common.opt (fipa-profile): Add.
18285         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
18286         flag for clones.
18287         (cgraph_propagate_frequency): Handle only local ones.
18288         * tree-pass.h (pass_ipa_profile): Declare.
18289         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
18290         (pass_ipa_profile): Use TV_IPA_PROFILE.
18291         * ipa.c (ipa_profile): New function.
18292         (gate_ipa_profile): Likewise.
18293         (pass_ipa_profile): New global variable.
18294         * passes.c (pass_ipa_profile): New.
18295
18296 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
18297
18298         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
18299
18300 2010-04-27  Martin Jambor  <mjambor@suse.cz>
18301
18302         PR middle-end/43812
18303         * ipa.c (dissolve_same_comdat_group_list): New function.
18304         (function_and_variable_visibility): Call
18305         dissolve_same_comdat_group_list when comdat group contains external or
18306         newly local nodes.
18307         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
18308         lists are circular and that they contain only DECL_ONE_ONLY nodes.
18309
18310 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
18311
18312         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
18313         (const_hash_1) <VECTOR_CST>: New case.
18314         (compare_constant) <VECTOR_CST>: Likewise.
18315         <ADDR_EXPR>: Deal with LABEL_REFs.
18316         (copy_constant) <VECTOR_CST>: New case.
18317
18318 2010-04-27  Jan Hubicka  <jh@suse.cz>
18319
18320         * cgraph.c (cgraph_propagate_frequency): New function.
18321         * cgraph.h (cgraph_propagate_frequency): Declare.
18322         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
18323         cgraph_propagate_frequency.
18324
18325 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
18326
18327         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
18328
18329 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
18330
18331         PR target/40657
18332         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
18333         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
18334         here to determine which regs to push and how much stack to reserve.
18335
18336 2010-04-27  Jie Zhang  <jie@codesourcery.com>
18337
18338         * doc/gimple.texi (gimple_statement_with_ops): Remove
18339         addresses_taken field.
18340         (gimple_statement_with_memory_ops): Likewise.
18341
18342 2010-04-27  Jan Hubicka  <jh@suse.cz>
18343
18344         * tree-inline.c (eni_inlining_weights): Remove.
18345         (estimate_num_insns): Special case more builtins.
18346
18347 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
18348
18349         PR c/32207
18350         * c-typeck.c (build_binary_op): Move forward check for comparison
18351         pointer with null pointer constant and adjust the diagnostic message.
18352
18353 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
18354
18355         PR lto/42776
18356         * configure.ac (gcc_cv_as_section_has_align): Set if installed
18357         binutils supports extended .section directive needed by LTO, or
18358         warn if older binutils found.
18359         (LTO_BINARY_READER): New AC_SUBST'd variable.
18360         (LTO_USE_LIBELF): Likewise.
18361         * gcc/config.gcc (lto_binary_reader): New target-specific configure
18362         variable.
18363         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
18364         (LTO_USE_LIBELF): Likewise.
18365         * configure: Regenerate.
18366
18367         * collect2.c (is_elf): Rename from this ...
18368         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
18369          object files in addition to ELF-formatted ones.
18370         (scan_prog_file): Caller updated.  Also allow for LTO info marker
18371         symbol to be prefixed or not by an extra underscore.
18372
18373         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
18374         * config/i386/winnt.c: Also #include lto-streamer.h
18375         (i386_pe_asm_named_section): Specify 1-byte section alignment for
18376         LTO named sections.
18377         (i386_pe_asm_output_aligned_decl_common): Add comment.
18378         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
18379
18380 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
18381
18382         PR target/43889
18383         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
18384         Add missing earlyclobber for second alternative.
18385
18386 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
18387
18388         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
18389         bits for artificial defs at the top of the block.
18390         * fwprop.c (single_def_use_enter_block): Don't call it.
18391
18392 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
18393
18394         PR 43715
18395         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
18396         instead of "$gcc_cv_objdump -T".
18397         Use "-undefined dynamic_lookup" on darwin.
18398         * gcc/configure: Regenerate.
18399
18400 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
18401
18402         PR c/43893
18403         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
18404
18405 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
18406
18407         * c-parser.c (struct c_token): Move location field up.
18408         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
18409         (struct c_declspecs): Convert typespec_word, storage_class, and
18410         default_int_p into bitfields.
18411         (struct c_declarator): Move loc field up.
18412
18413 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
18414
18415         * cfgloop.h (struct loop): Move can_be_parallel field up.
18416         * ipa-prop.h (struct ip_node_params): Move bitfields up.
18417         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
18418         down.
18419         (struct iv_cand): Convert pos field into a bitfield.
18420         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
18421         field up.
18422         (struct _stmt_vec_info): Shuffle fields for better packing.
18423
18424 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
18425
18426         * varasm.c (IN_NAMED_SECTION): Remove guard.
18427         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
18428         (IN_NAMED_SECTION_P): ...this.
18429         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
18430         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
18431
18432 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
18433
18434         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
18435         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
18436         of shadowing it.  Fix comments.
18437
18438 2010-04-26  Jan Hubicka  <jh@suse.cz>
18439
18440         * cgraph.c (cgraph_create_node): Set node frequency to normal.
18441         (cgraph_clone_node): Copy function frequency.
18442         * cgraph.h (node_frequency): New enum
18443         (struct cgraph_node): Add.
18444         * final.c (rest_of_clean_state): Update.
18445         * lto-cgraph.c (lto_output_node): Output node frequency.
18446         (input_overwrite_node): Input node frequency.
18447         * tre-ssa-loop-ivopts (computation_cost): Update.
18448         * lto-streamer-out.c (output_function): Do not output function
18449         frequency.
18450         * predict.c (maybe_hot_frequency_p): Update and handle functions
18451         executed once.
18452         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
18453         attribute lookup.
18454         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
18455         (compute_function_frequency): Set noreturn functions to be executed
18456         once.
18457         (choose_function_section): Update.
18458         * lto-streamer-in.c (input_function): Do not input function frequency.
18459         * function.c (allocate_struct_function): Do not initialize function
18460         frequency.
18461         * function.h (function_frequency): Remove.
18462         (struct function): Remove function frequency.
18463         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
18464         (try_update): Update.
18465         * tree-inline.c (initialize_cfun): Do not update function frequency.
18466         * passes.c (pass_init_dump_file): Update.
18467         * i386.c (ix86_compute_frame_layout): Update.
18468         (ix86_pad_returns): Update.
18469
18470 2010-04-26  Jie Zhang  <jie@codesourcery.com>
18471
18472         PR tree-optimization/43833
18473         * tree-vrp.c (range_int_cst_p): New.
18474         (range_int_cst_singleton_p): New.
18475         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
18476         when both operands are constants.  Use range_int_cst_p in
18477         BIT_IOR_EXPR case.
18478
18479 2010-04-26  Jan Hubicka  <jh@suse.cz>
18480
18481         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
18482
18483 2010-04-26  Richard Guenther  <rguenther@suse.de>
18484
18485         PR lto/43080
18486         * gimple.c (gimple_decl_printable_name): Deal gracefully
18487         with a NULL DECL_NAME.
18488
18489 2010-04-26  Richard Guenther  <rguenther@suse.de>
18490
18491         PR lto/42425
18492         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
18493         if emitting debug information and it is either a function
18494         or a namespace decl.
18495
18496 2010-04-26  Ira Rosen  <irar@il.ibm.com>
18497
18498         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
18499         determine if the statement is vectorizable, and a macro to access it.
18500         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
18501         Skip statements that can't be vectorized. If the analysis fails,
18502         mark the statement as unvectorizable if vectorizing basic block.
18503         (vect_compute_data_refs_alignment): Likewise.
18504         (vect_verify_datarefs_alignment): Skip statements marked as
18505         unvectorizable. Add print.
18506         (vect_analyze_group_access): Skip statements that can't be
18507         vectorized. If the analysis fails, mark the statement as
18508         unvectorizable if vectorizing basic block.
18509         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
18510         * tree-vect-stmts.c (vectorizable_store): Fix the number of
18511         generated stmts for SLP.
18512         (new_stmt_vec_info): Initialize the new field.
18513         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
18514         statements marked as unvectorizable.
18515
18516 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
18517
18518         * c-common.c (flag_isoc1x): New.
18519         (flag_isoc99): Update comment.
18520         * c-common.h (flag_isoc1x): New.
18521         (flag_isoc99): Update comment.
18522         * c-cppbuiltin.c (builtin_define_float_constants): Also define
18523         __<type>_DECIMAL_DIG__.
18524         * c-opts.c (set_std_c1x): New.
18525         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
18526         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
18527         * c.opt (-std=c1x, -std=gnu1x): New options.
18528         * doc/cpp.texi: Mention -std=c1x.
18529         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
18530         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
18531         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
18532         * doc/standards.texi: Mention C1X.
18533         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
18534         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
18535         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
18536         Define for C1X.
18537
18538 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
18539
18540         * config/i386/gmon-sol2.c (_mcleanup): Change format string
18541         placeholder from 0x%x to %#x.
18542         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
18543         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
18544         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
18545         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
18546         * config/i386/i386.c (ix86_target_string): Ditto.
18547         (output_pic_addr_const): Ditto.
18548         (print_operand): Ditto.
18549
18550 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
18551
18552         * combine.c (find_split_point): Add third argument.  Use it
18553         to find nested multiply-accumulate instructions.  Adjust calls.
18554         (try_combine): Adjust call to find_split_point.
18555
18556 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
18557
18558         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
18559
18560 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
18561
18562         PR tree-optimization/41442
18563         * fold-const.c (merge_truthop_with_opposite_arm): New function.
18564         (fold_binary_loc): Call it.
18565
18566 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18567
18568         * toplev.c (general_init): Set default for fdiagnostics-show-option.
18569         * opts.c (common_handle_option): Allow disabling it.
18570         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
18571
18572 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
18573
18574         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
18575         between modes if both types are integral.
18576
18577 2010-04-23  Richard Guenther  <rguenther@suse.de>
18578
18579         PR tree-optimization/43572
18580         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
18581
18582 2010-04-23  Richard Guenther  <rguenther@suse.de>
18583
18584         PR lto/43455
18585         * tree-inline.c (tree_can_inline_p): Also check compatibility
18586         of return types.
18587
18588 2010-04-23  Martin Jambor  <mjambor@suse.cz>
18589
18590         PR tree-optimization/43846
18591         * tree-sra.c (struct access): New flag grp_assignment_read.
18592         (build_accesses_from_assign): Set grp_assignment_read.
18593         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
18594         (enum mark_read_status): New type.
18595         (analyze_access_subtree): Propagate grp_assignment_read, create
18596         accesses also if both direct_read and root->grp_assignment_read.
18597
18598 2010-04-23  Martin Jambor  <mjambor@suse.cz>
18599
18600         PR middle-end/43835
18601         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
18602         function does not have type attributes.
18603
18604 2010-04-23  Richard Guenther  <rguenther@suse.de>
18605
18606         PR lto/42653
18607         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
18608         of FUNCTION_DECLs.
18609
18610 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18611
18612         * sese.h (create_if_region_on_edge): Remove.
18613
18614         * sese.c (create_if_region_on_edge): Make static.
18615
18616         * tree-inline.c: Do not include ggc.h.
18617
18618         * expr.c: Do not include ggc.h.
18619
18620         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
18621         dependencies.
18622
18623 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
18624
18625         PR target/43744
18626         * config/sh/sh.c (find_barrier): Don't emit a constant pool
18627         in the middle of insns for casesi_worker_2.
18628
18629 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
18630
18631         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
18632
18633 2010-04-22  Ira Rosen  <irar@il.ibm.com>
18634
18635         PR tree-optimization/43842
18636         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
18637         loop unrolling in update of exit phis. Fix comment.
18638         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
18639         least two reduction statements in the loop before starting SLP
18640         analysis.
18641
18642 2010-04-22  Nick Clifton  <nickc@redhat.com>
18643
18644         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
18645
18646 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
18647
18648         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
18649         to simplify a + ~a.
18650
18651 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18652
18653         * tree-parloops.c (loop_parallel_p): New argument
18654         parloop_obstack.  Pass it down.
18655         (parallelize_loops): New variable parloop_obstack.  Initialize it,
18656         pass it down, free it.
18657
18658         * tree-loop-linear.c (linear_transform_loops): Pass down
18659         lambda_obstack.
18660
18661         * tree-data-ref.h (lambda_compute_access_matrices): New argument
18662         of type struct obstack *.
18663
18664         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
18665         scratch_obstack.  Initialize it, pass down, free it.
18666
18667         * lambda.h (lambda_loop_new): Remove.
18668         (lambda_matrix_new, lambda_matrix_inverse)
18669         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
18670         argument of type struct obstack *.
18671
18672         * lambda-trans.c (lambda_trans_matrix_new): New argument
18673         lambda_obstack.  Pass it down, use obstack allocation for ret.
18674         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
18675         it down.
18676
18677         * lambda-mat.c (lambda_matrix_get_column)
18678         (lambda_matrix_project_to_null): Remove.
18679         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
18680         allocation for mat.
18681         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
18682         lambda_obstack.
18683
18684         * lambda-code.c (lambda_loop_new): New function.
18685         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
18686         (lambda_compute_auxillary_space, lambda_compute_target_space)
18687         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
18688         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
18689         (build_access_matrix): New argument lambda_obstack.  Use obstack
18690         allocation for am.
18691         (lambda_compute_step_signs, lambda_compute_access_matrices): New
18692         argument lambda_obstack.  Pass it down.
18693
18694 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
18695
18696         * optabs.h (expand_widening_mult): Declare.
18697
18698 2010-04-22  Richard Guenther  <rguenther@suse.de>
18699
18700         PR tree-optimization/43845
18701         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
18702         lookup the CALL_EXPR function and arguments.
18703
18704 2010-04-22  Nick Clifton  <nickc@redhat.com>
18705
18706         * config/stormy16/stormy16.c
18707         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
18708         * config/stormy16/stormy16.h: Tidy up formatting.
18709         (DONT_USE_BUILTIN_SETJMP): Remove definition.
18710         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
18711         (ineqbranchsi): Delete pattern.
18712         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
18713         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
18714         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
18715         stormy16-lib2-ucmpsi2.c.
18716
18717 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
18718
18719         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
18720         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
18721         extra set merge_set_noclobber, and use it to relax the final test
18722         slightly.
18723         * df.h (df_simulate_find_noclobber_defs): Declare.
18724         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
18725         conditional defs.
18726         (df_simulate_find_noclobber_defs): New function.
18727
18728 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
18729
18730         * config/i386/i386.md: Use {} around multi-line preparation statements.
18731
18732 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18733
18734         * c-tree.h (push_init_level, pop_init_level, set_init_index)
18735         (process_init_element): New argument of type struct obstack *.
18736
18737         * c-typeck.c (push_init_level, pop_init_level, set_designator)
18738         (set_init_index, set_init_label, set_nonincremental_init)
18739         (set_nonincremental_init_from_string, find_init_member)
18740         (output_init_element, output_pending_init_elements)
18741         (process_init_element): New argument braced_init_obstack.  Pass it
18742         down.
18743         (push_range_stack, add_pending_init): New argument
18744         braced_init_obstack.  Use obstack allocation.
18745
18746         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
18747         braced_init_obstack.  Pass it down.
18748         (c_parser_braced_init): New variables ret, braced_init_obstack.
18749         Initialize obstack, pass it down and finally free it.
18750
18751 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
18752
18753         PR middle-end/29274
18754         * tree-pass.h (pass_optimize_widening_mul): Declare.
18755         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
18756         gate_optimize_widening_mul): New static functions.
18757         (pass_optimize_widening_mul): New.
18758         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
18759         <case MULT_EXPR>: Remove support for widening multiplies.
18760         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
18761         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
18762         simplify_gen_unary rather than directly building extensions.
18763         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
18764         WIDEN_MULT_EXPR.
18765         * expmed.c (expand_widening_mult): New function.
18766         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
18767
18768 2010-04-21  Jan Hubicka  <jh@suse.cz>
18769
18770         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
18771         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
18772         * lto-wpa-fixup.c: Remove.
18773         * Makefile.in (lto-wpa-fixup.o): Remove.
18774         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
18775         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
18776         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
18777
18778 2010-04-21  Jan Hubicka  <jh@suse.cz>
18779
18780         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
18781         add write_optimization_summary, read_optimization_summary.
18782         (ipa_write_summaries_of_cgraph_node_set): Remove.
18783         (ipa_write_optimization_summaries): Declare.
18784         (ipa_read_optimization_summaries): Declare.
18785         * ipa-cp.c (pass_ipa_cp): Update.
18786         * ipa-reference.c (pass_ipa_reference): Update.
18787         * ipa-pure-const.c (pass_ipa_pure_const): Update.
18788         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
18789         Update.
18790         * ipa-inline.c (pass_ipa_inline): Update.
18791         * ipa.c (pass_ipa_whole_program): Update.
18792         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
18793         * passes.c (ipa_write_summaries_1): Do not test wpa.
18794         (ipa_write_optimization_summaries_1): New.
18795         (ipa_write_optimization_summaries): New.
18796         (ipa_read_summaries): Do not test ltrans.
18797         (ipa_read_optimization_summaries_1): New.
18798         (ipa_read_optimization_summaries): New.
18799
18800 2010-04-21  Jan Hubicka  <jh@suse.cz>
18801
18802         * lto-cgraph.c (lto_output_node): Do not output comdat groups
18803         for boundary nodes.
18804         (output_cgraph): Do not arrange comdat groups for boundary nodes.
18805
18806 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
18807
18808         PR debug/40040
18809         * dwarf2out.c (add_name_and_src_coords_attributes): Add
18810         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
18811
18812 2010-04-21  Jan Hubicka  <jh@suse.cz>
18813
18814         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
18815
18816 2010-04-21  Jan Hubicka  <jh@suse.cz>
18817
18818         * varpool.c (decide_is_variable_needed): Variable is always needed
18819         during ltrans.
18820
18821 2010-04-21  Jan Hubicka  <jh@suse.cz>
18822
18823         * opts.c (decode_options): Enable pure-const pass for whopr.
18824
18825 2010-04-21  Jan Hubicka  <jh@suse.cz>
18826
18827         * cgraph.c (dump_cgraph_node): Dump also assembler name.
18828         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
18829         at WPA dumping.
18830         (cgraph_decide_inlining): Do not expect callee to be removed in all
18831         cases.
18832
18833 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
18834
18835         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
18836
18837 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
18838
18839         * config/i386/i386.md (x86_shrd): Add athlon_decode and
18840         amdfam10_decode attributes.
18841
18842 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
18843
18844         PR middle-end/43570
18845         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
18846         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
18847         (lower_copyprivate_clauses): Use private var in outer
18848         context instead of original var.  Make sure the types
18849         are correct for VLAs.
18850
18851 2010-04-21  Richard Guenther  <rguenther@suse.de>
18852
18853         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
18854         to non-pointer objects.
18855
18856 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
18857
18858         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
18859         last chain entry if it starts with the still current label.
18860         (add_location_or_const_value_attribute): Check that
18861         loc_list->first->next is NULL instead of comparing ->first with ->last.
18862         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
18863         to add_var_loc_to_decl.
18864
18865         * dwarf2out.c (output_call_frame_info): For dw_cie_version
18866         >= 4 add also address size and segment size fields into CIE header.
18867
18868         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
18869         long as address size is the same as sizeof (void *) and
18870         segment size is 0.
18871         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
18872         address size or segment size is unexpected, return DW_EH_PE_omit.
18873         (classify_object_over_fdes): If get_cie_encoding returned
18874         DW_EH_PE_omit, return -1.
18875         (init_object): If classify_object_over_fdes returned -1,
18876         pretend there were no FDEs at all.
18877
18878 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
18879
18880         * config/i386/i386.md (bswap<mode>2): Macroize expander from
18881         bswap{si,di}2 using SWI48 mode iterator.
18882         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
18883         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
18884         set modrm attribute of bswap insn to 0 and remove length attribute.
18885         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
18886         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
18887         set mode attribute to <MODE> and remove length attribute.
18888
18889 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
18890
18891         PR rtl-optimization/43520
18892         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
18893         zero available registers.
18894
18895 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18896
18897         * builtins.c (fold_builtin_cproj): Fold more cases.
18898
18899 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18900
18901         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
18902         (fold_builtin_1): Fold builtin cproj.
18903         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
18904         Use ATTR_CONST_NOTHROW_LIST.
18905
18906 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
18907
18908         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
18909         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
18910         ffsi2_no_cmove for !TARGET_CMOVE.
18911         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
18912         (ffssi2): Remove expander.
18913         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
18914         mode iterator.
18915         (ctz<mode>2): Ditto from ctz{si,di}2.
18916         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
18917         mode iterator.
18918         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
18919         mode iterator.
18920
18921 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
18922
18923         * dwarf2out.c (AT_linkage_name): Define.
18924         (clone_as_declaration): Handle DW_AT_linkage_name.
18925         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
18926         of DW_AT_MIPS_linkage_name.
18927         (move_linkage_attr): Likewise.
18928         (dwarf2out_finish): Likewise.
18929
18930 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
18931
18932         PR middle-end/41952
18933         * fold-const.c (fold_comparison): New folding rule.
18934
18935 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
18936
18937         * double-int.h (double_int_setbit): Declare.
18938         * double-int.c (double_int_setbit): New function.
18939         * rtl.h (immed_double_int_const): Declare.
18940         * emit-rtl.c (immed_double_int_const): New function.
18941         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
18942         and immed_double_int_const functions.
18943         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
18944         expand_copysign_bit): (Ditto.).
18945         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
18946         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
18947         * dojump.c (prefer_and_bit_test): (Ditto.).
18948         * expr.c (convert_modes, reduce_to_bit_field_precision,
18949         const_vector_from_tree): (Ditto.).
18950         * expmed.c (mask_rtx, lshift_value): (Ditto.).
18951
18952 2010-04-20  Jan Hubicka  <jh@suse.cz>
18953
18954         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
18955         (dump_cgraph_node): Dump new flags.
18956         * cgraph.h (struct cgraph_node): Add flags
18957         reachable_from_other_partition and in_other_partition.
18958         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
18959         other partition can not be removed.
18960         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
18961         the other partition must be output; silence sanity checking on
18962         leaking functions bodies from other paritition.
18963         * lto-cgraph.c (reachable_from_other_partition_p): New function.
18964         (lto_output_node): Output new flags; do not sanity check that inline
18965         clones are output; drop lto_forced_extern_inline_p code; do not mock
18966         visibility flags at partition boundaries.
18967         (add_node_to): New function.
18968         (output_cgraph): Use it to sort functions so masters appear before
18969         clones.
18970         (input_overwrite_node): Input new flags.
18971         * passes.c (ipa_write_summaries): Do not call
18972         lto_new_extern_inline_states.
18973         * lto-section-out.c (forced_extern_inline,
18974         lto_new_extern_inline_states lto_delete_extern_inline_states,
18975         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
18976         * lto-streamer.h (lto_new_extern_inline_states,
18977         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
18978         lto_forced_extern_inline_p): Kill.
18979
18980 2010-04-20  Richard Guenther  <rguenther@suse.de>
18981
18982         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
18983         from vars that can have pointers.
18984         (process_constraint): Dump useless constraints.
18985
18986 2010-04-20  Richard Guenther  <rguenther@suse.de>
18987
18988         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
18989         (dump_sa_points_to_info): Remove asserts.
18990         (init_base_vars): nothing_id isn't an escape point nor does it
18991         have pointers.
18992
18993 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
18994
18995         * tree.h (TYPE_REF_IS_RVALUE): Define.
18996         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
18997         should_move_die_to_comdat, prune_unused_types_walk): Handle
18998         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
18999         (modified_type_die, gen_reference_type_die): Emit
19000         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
19001         if TYPE_REF_IS_RVALUE and -gdwarf-4.
19002
19003 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19004
19005         PR target/43635
19006         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
19007         calls for -fpic -m31 if they have been sibcall optimized.
19008
19009 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
19010
19011         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
19012         ar.lc fixed and call-used.
19013
19014         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
19015
19016 2010-04-19  Jan Hubicka  <jh@suse.cz>
19017
19018         * opts.c (decode_options): Disable whpr incompatible passes.
19019         * lto/lto.c (lto_1_to_1_map): Skip clones.
19020         (read_cgraph_and_symbols): Do not mark everything as needed.
19021         (do_whole_program_analysis): Do map only after optimizing;
19022         set proper cgraph_state; use passmanager.
19023
19024 2010-04-19  DJ Delorie  <dj@redhat.com>
19025
19026         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
19027         POINTER_PLUS_EXPR and fix them.
19028
19029 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
19030
19031         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
19032         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
19033         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
19034         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
19035         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
19036         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
19037         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
19038         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
19039         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
19040         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
19041         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
19042
19043 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
19044
19045         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
19046         (check_cond_move_block): Likewise.
19047         (cond_move_process_if_block): Likewise.
19048         (noce_find_if_block): Improve formatting.
19049         (find_if_header): Pass 0 to memset and tweak conditions.
19050         (cond_exec_find_if_block): Fix long lines and tweak conditions.
19051
19052 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
19053
19054         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
19055         for -gdwarf-4.
19056
19057         PR middle-end/43337
19058         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
19059         with non-local decl doesn't need chain.
19060
19061 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
19062
19063         * ira-color.c (allocno_reload_assign): Avoid accumulating
19064         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
19065
19066 2010-04-19  Martin Jambor  <mjambor@suse.cz>
19067
19068         * gimple.h (create_tmp_reg): Declare.
19069         * gimplify.c (create_tmp_reg): New function.
19070         (gimplify_return_expr): Use create_tmp_reg.
19071         (gimplify_omp_atomic): Likewise.
19072         (gimple_regimplify_operands): Likewise.
19073         * tree-dfa.c (make_rename_temp): Likewise.
19074         * tree-predcom.c (predcom_tmp_var): Likewise.
19075         (reassociate_to_the_same_stmt): Likewise.
19076         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
19077         (get_replaced_param_substitute): Likewise.
19078         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
19079         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
19080         * tree-ssa-pre.c (get_representative_for): Likewise.
19081         (create_expression_by_pieces): Likewise.
19082         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
19083         (create_tailcall_accumulator): Likewise.
19084
19085 2010-04-19  Martin Jambor  <mjambor@suse.cz>
19086
19087         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
19088         new_stmt.
19089         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
19090
19091 2010-04-19  Richard Guenther  <rguenther@suse.de>
19092
19093         PR tree-optimization/43796
19094         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
19095         from SCEV in the lattice.
19096         (vrp_visit_phi_node): Dump change.
19097
19098 2010-04-19  Richard Guenther  <rguenther@suse.de>
19099
19100         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
19101         * configure: Re-generated.
19102
19103 2010-04-19  Richard Guenther  <rguenther@suse.de>
19104
19105         PR tree-optimization/43783
19106         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
19107         constant ARRAY_REF operands two and three if possible.
19108
19109 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
19110
19111         PR target/43766
19112         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
19113
19114 2010-04-19  Jie Zhang  <jie@codesourcery.com>
19115
19116         PR target/43662
19117         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
19118
19119 2010-04-19  Ira Rosen  <irar@il.ibm.com>
19120
19121         PR tree-optimization/37027
19122         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
19123         and macro to access it.
19124         (vectorizable_reduction): Add argument.
19125         (vect_get_slp_defs): Likewise.
19126         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
19127         statements for possible use in SLP.
19128         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
19129         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
19130         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
19131         add new argument.
19132         (vectorizable_reduction): Likewise.
19133         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
19134         vect_get_slp_defs.
19135         (vectorizable_type_demotion, vectorizable_type_promotion,
19136         vectorizable_store): Likewise.
19137         (vect_analyze_stmt): Update call to vectorizable_reduction.
19138         (vect_transform_stmt): Likewise.
19139         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
19140         (vect_build_slp_tree): Fix indentation. Check that there are no loads
19141         from different interleaving chains in same node.
19142         (vect_slp_rearrange_stmts): New function.
19143         (vect_supported_load_permutation_p): Allow load permutations for
19144         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
19145         inside SLP nodes if necessary.
19146         (vect_analyze_slp_instance): Handle reductions.
19147         (vect_analyze_slp): Try to build SLP instances originating from groups
19148         of reductions.
19149         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
19150         (vect_get_constant_vectors): Create initial vectors for reductions
19151         according to reduction code. Add new argument.
19152         (vect_get_slp_defs): Add new argument, pass it to
19153         vect_get_constant_vectors.
19154         (vect_schedule_slp_instance): Remove SLP tree root statements.
19155
19156 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
19157
19158         * tree.h (ENUM_IS_SCOPED): Define.
19159         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
19160         for ENUM_IS_SCOPED enums.
19161
19162 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
19163
19164         * fold-const.c (fold_comparison): Use ssizetype.
19165         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
19166         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
19167         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
19168         * tree-object-size.c (compute_object_sizes): Use size_type_node.
19169
19170         * tree.h (initialize_sizetypes): Remove parameter.
19171         (build_common_tree_nodes): Remove second parameter.
19172         * stor-layout.c (initialize_sizetypes): Remove parameter.
19173         Always create an unsigned type.
19174         (set_sizetype): Assert that the passed type is unsigned and simplify.
19175         * tree.c (build_common_tree_nodes): Remove second parameter.
19176         Adjust call to initialize_sizetypes.
19177         * c-decl.c (c_init_decl_processing): Remove second argument in call to
19178         build_common_tree_nodes.
19179
19180 2010-04-18  Matthias Klose  <doko@ubuntu.com>
19181
19182         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
19183
19184 2010-04-18  Ira Rosen  <irar@il.ibm.com>
19185
19186         PR tree-optimization/43771
19187         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
19188         load permutation doesn't have gaps.
19189
19190 2010-04-18  Jan Hubicka  <jh@suse.cz>
19191
19192         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
19193         (sse_prologue_save_insn expander): Use new pattern.
19194         (sse_prologue_save_insn1): New pattern and splitter.
19195         (sse_prologue_save_insn): Update to deal also with 64bit aligned
19196         blocks.
19197         * i386.c (setup_incoming_varargs_64): Do not compute jump
19198         destination here.
19199         (ix86_gimplify_va_arg): Update alignment needed.
19200         (ix86_local_alignment): Do not align all local arrays to 128bit.
19201
19202 2010-04-17  Jan Hubicka  <jh@suse.cz>
19203
19204         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
19205
19206 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
19207
19208         * arm.md (negdi2): Remove redundant code to force values into a
19209         register.
19210
19211 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
19212
19213         * arm/bpabi.S: Add EABI alignment attributes to objects.
19214         * arm/bpabi-v6m.S: Likewise.
19215         * arm/crti.asm: Likewise.
19216         * arm/crtn.asm: Likewise.
19217         * arm/lib1funcs.asm: Likewise.
19218         * arm/libunwind.S: Likewise.
19219
19220 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
19221
19222         * arm-protos.h (tune_params): New structure.
19223         * arm.c (current_tune): New variable.
19224         (arm_constant_limit): Delete.
19225         (struct processors): Add pointer to the tune parameters.
19226         (arm_slowmul_tune): New tuning option.
19227         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
19228         (all_cores): Adjust to pick up the tuning model.
19229         (arm_constant_limit): New function.
19230         (arm_override_options): Select the appropriate tuning model.  Delete
19231         initialization of arm_const_limit.
19232         (arm_split_constant): Use the new constant-limit model.
19233         (arm_rtx_costs): Pick up the current tuning model.
19234         * arm.md (is_strongarm, is_xscale): Delete.
19235         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
19236         for Xscale variant architectures.
19237         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
19238
19239 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19240
19241         * config/arm/arm.c (arm_gen_constant): Remove unused variable
19242         can_shift.
19243         (arm_rtx_costs_1): Remove unused variable extra_cost.
19244         (arm_unwind_emit_set): Use variable offset.
19245         (thumb1_output_casesi): Remove unused variable flags.
19246
19247 2010-04-16  Jeff Law  <law@redhat.com>
19248
19249         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
19250         needing assignment rather than doing a two-phase assignment.  Remove
19251         unused variable 'm'.
19252
19253 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
19254
19255         PR bootstrap/43767
19256         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
19257
19258 2010-04-16  Doug Kwan  <dougkwan@google.com>
19259
19260         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
19261         (next_operand_entry_id): New static variable.
19262         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
19263         (add_to_ops_vec): Assigned unique ID to operand entry.
19264         (struct oecount_s): New field ID.
19265         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
19266         (undistribute_ops_list): Assign unique IDs to oecounts.
19267         (init_reassoc): reset next_operand_entry_id.
19268
19269 2010-04-16  Doug Kwan  <dougkwan@google.com>
19270
19271         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
19272         missing left parenthesis.
19273
19274 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
19275
19276         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
19277         *btdi_rex64 using SWI48 mode iterator.
19278         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
19279         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
19280         *jcc_btdi_mask_rex64.
19281
19282 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
19283
19284         * double-int.h (tree_to_double_int): Convert to macro.
19285         * double-int.c (tree_to_double_int): Remove.
19286
19287 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
19288
19289         PR debug/43762
19290         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
19291         with want_address 2 and in case a single element list might be
19292         possible, call it again with want_address 0.
19293
19294 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
19295
19296         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
19297         case 'W' print operands for HI mode.
19298         * config/h8300/h8300.h (Y0, Y2) : New constraints.
19299         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
19300         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
19301         * config/h8300/predicate.md (bit_register_indirect_operand): New.
19302
19303         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
19304
19305         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
19306         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
19307         #xx:3 and #xx:4 mode.
19308
19309         * config/h8300/h8300.md (inverted load with HImode dest): Add
19310         support for H8300SX.
19311
19312         * config/h8300/predicate.md (bit_operand): Allow immediate values that
19313         satisfy 'U' constraint.
19314
19315 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19316
19317         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
19318         * configure: Regenerate.
19319         * config.in: Regenerate.
19320         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
19321         works.
19322
19323 2010-04-16  Richard Guenther  <rguenther@suse.de>
19324
19325         * tree.h (struct tree_decl_minimal): Move pt_uid ...
19326         (struct tree_decl_common): ... here.
19327         (DECL_PT_UID): Adjust.
19328         (SET_DECL_PT_UID): Likewise.
19329         (DECL_PT_UID_SET_P): Likewise.
19330
19331 2010-04-16  Richard Guenther  <rguenther@suse.de>
19332
19333         PR tree-optimization/43572
19334         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
19335         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
19336         * tree-flow.h (is_call_clobbered): Remove.
19337         * tree-flow-inline.h (is_call_clobbered): Likewise.
19338         * tree-dfa.c (dump_variable): Do not dump call clobber state.
19339         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
19340         (execute_return_slot_opt): Adjust.
19341         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
19342         check for call clobbered vars here.
19343         (find_tail_calls): Move tailcall verification to the
19344         proper place.
19345
19346 2010-04-16  Diego Novillo  <dnovillo@google.com>
19347
19348         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
19349
19350 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
19351
19352         PR target/40603
19353         * config/arm/arm.md (cbranchqi4): New pattern.
19354         * config/arm/predicates.md (const0_operand,
19355         cbranchqi4_comparison_operator): New predicates.
19356
19357 2010-04-16  Richard Guenther  <rguenther@suse.de>
19358
19359         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
19360         (dump_gimple_stmt): Likewise.
19361
19362 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
19363
19364         * recog.h (struct recog_data): New field is_operator.
19365         (struct insn_operand_data): New field is_operator.
19366         * recog.c (extract_insn): Set recog_data.is_operator.
19367         * genoutput.c (output_operand_data): Emit code to set the
19368         is_operator field.
19369         * reload.c (find_reloads): Use it rather than testing for an
19370         empty constraint string.
19371
19372         PR target/41514
19373         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
19374         If the previous insn is a cbranchsi4_insn with the same arguments,
19375         omit the compare instruction.
19376
19377         * config/arm/arm.md (addsi3_cbranch): If destination is a high
19378         register, inputs must be low registers and we need a low register
19379         scratch.  Handle alternative 2 like alternative 3.
19380
19381 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
19382
19383         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
19384         don't call get_addr on both.  If one expression is a VALUE and
19385         the other a REG, check VALUE's locs if the REG isn't among them.
19386
19387 2010-04-16  Christian Bruel  <christian.bruel@st.com>
19388
19389         * config/sh/sh.h (sh_frame_pointer_required): New function.
19390         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
19391         (flag_omit_frame_pointer) Set.
19392         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
19393         (rounded_frame_size): Adjust size with outgoing_args_size.
19394         (sh_set_return_address): Must return from stack pointer.
19395         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
19396         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
19397         (ACCUMULATE_OUTGOING_ARGS): Define.
19398         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
19399         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
19400
19401 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
19402
19403         PR target/43471
19404         * config/sh/sh.c (sh_legitimize_reload_address): Use
19405         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
19406         Remove a unneeded check for offset_base.
19407
19408 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
19409
19410         * configure: Regenerated.
19411
19412 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19413
19414         * config/s390/s390.c (s390_call_save_register_used): Switch back
19415         to HARD_REGNO_NREGS.
19416
19417 2010-04-15  Richard Guenther  <rguenther@suse.de>
19418
19419         * alias.c (alias_set_subset_of): Handle alias-set zero
19420         child properly.
19421
19422 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
19423             Julian Brown  <julian@codesourcery.com>
19424
19425         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
19426         alternatives according to use of high and low regs.
19427         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
19428         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
19429         optimizing for size on Thumb-2.
19430
19431 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
19432
19433         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
19434
19435 2010-04-15  Richard Guenther  <rguenther@suse.de>
19436
19437         * tree-ssa-structalias.c (struct variable_info): Add
19438         is_fn_info flag.
19439         (new_var_info): Initialize it.
19440         (dump_constraints): Support printing last added constraints.
19441         (debug_constraints): Adjust.
19442         (dump_constraint_graph): Likewise.
19443         (make_heapvar_for): Check for NULL cfun.
19444         (get_function_part_constraint): New function.
19445         (get_fi_for_callee): Likewise.
19446         (find_func_aliases): Properly implement IPA PTA constraints.
19447         (process_ipa_clobber): New function.
19448         (find_func_clobbers): Likewise.
19449         (insert_into_field_list_sorted): Remove.
19450         (create_function_info_for): Properly allocate vars for IPA mode.
19451         Do not use insert_into_field_list_sorted.
19452         (create_variable_info_for): Properly generate constraints for
19453         global vars in IPA mode.
19454         (dump_solution_for_var): Always dump the solution.
19455         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
19456         (find_what_var_points_to): Adjust.
19457         (pt_solution_set): Change.
19458         (pt_solution_ior_into): New function.
19459         (pt_solution_empty_p): Export.
19460         (pt_solution_includes_global): Adjust.
19461         (pt_solution_includes_1): Likewise.
19462         (pt_solutions_intersect_1): Likewise.
19463         (dump_sa_points_to_info): Check some invariants.
19464         (solve_constraints): Move constraint dumping ...
19465         (compute_points_to_sets): ... here.
19466         (ipa_pta_execute): ... and here.
19467         (compute_may_aliases): Do not re-compute points-to info
19468         locally if IPA info is available.
19469         (ipa_escaped_pt): New global var.
19470         (ipa_pta_execute): Properly implement IPA PTA.
19471         * tree-into-ssa.c (dump_decl_set): Support dumping
19472         decls not in referenced-vars.
19473         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
19474         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
19475         (dump_points_to_solution): Likewise.
19476         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
19477         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
19478         (remap_gimple_stmt): Reset call clobber/use information if necessary.
19479         (copy_decl_to_var): Copy DECL_PT_UID.
19480         (copy_result_decl_to_var): Likewise.
19481         * tree.c (make_node_stat): Initialize DECL_PT_UID.
19482         (copy_node_stat): Copy it.
19483         * tree.h (DECL_PT_UID): New macro.
19484         (SET_DECL_PT_UID): Likewise.
19485         (DECL_PT_UID_SET_P): Likewise.
19486         (struct tree_decl_minimal): Add pt_uid member.
19487         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
19488         (pt_solution_empty_p): Declare.
19489         (pt_solution_set): Adjust.
19490         (ipa_escaped_pt): Declare.
19491         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
19492         * gimple-pretty-print.c (pp_points_to_solution): New function.
19493         (dump_gimple_call): Dump call clobber/use information.
19494         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
19495         * tree-pass.h (TDF_ALIAS): New dump option.
19496         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
19497         * doc/invoke.texi (-fipa-pta): Update documentation.
19498
19499 2010-04-15  Richard Guenther  <rguenther@suse.de>
19500
19501         * Makefile.in (OBJS-common): Add gimple-fold.o.
19502         (gimple-fold.o): New rule.
19503         * tree.h (maybe_fold_offset_to_reference,
19504         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
19505         prototypes ...
19506         * gimple.h: ... here.
19507         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
19508         may_propagate_address_into_dereference): Move prototypes ...
19509         * gimple.h: ... here.
19510         * tree-ssa-ccp.c (get_symbol_constant_value,
19511         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
19512         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
19513         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
19514         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
19515         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
19516         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
19517         gimplify_and_update_call_from_tree): Move ...
19518         * gimple-fold.c: ... here.  New file.
19519         (ccp_fold_builtin): Rename to ...
19520         (gimple_fold_builtin): ... this.
19521         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
19522
19523 2010-04-15  Richard Guenther  <rguenther@suse.de>
19524
19525         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
19526         fit_double_type, force_fit_type_double, add_double_with_sign,
19527         neg_double, mul_double_with_sign, lshift_double, rshift_double,
19528         lrotate_double, rrotate_double, div_and_round_double): Move ...
19529         * double-int.c: ... here.
19530         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
19531         add_double, neg_double, mul_double_with_sign, mul_double,
19532         lshift_double, rshift_double, lrotate_double, rrotate_double,
19533         div_and_round_double): Move prototypes ...
19534         * double-int.h: ... here.
19535
19536 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
19537
19538         PR target/43742
19539         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
19540         matching constraints to ensure inputs match the output.
19541
19542 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
19543
19544         PR target/43742
19545         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
19546         in an input-only operand.
19547
19548 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
19549
19550         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
19551         (double_int_not, double_int_lshift, double_int_rshift): Declare.
19552         (double_int_negative_p): Convert to static inline function.
19553         * double-int.c (double_int_lshift, double_int_lshift): New functions.
19554         (double_int_negative_p): Remove.
19555         * tree.h (lshift_double, rshift_double):
19556         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
19557         * fold-const.c (fold_convert_const_int_from_real,
19558         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
19559         (lshift_double): Change type of arith argument to bool.
19560         (rshift_double): Change type of arith argument to bool. Correct
19561         comment.
19562         * expmed.c (mask_rtx, lshift_value): (Ditto.).
19563
19564 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
19565
19566         PR target/21803
19567         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
19568         at the start and end of the then/else blocks, and omit them from the
19569         conversion.
19570         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
19571         argument; all callers changed.  Pass zero to old_insns_match_p instead.
19572         (flow_find_head_matching_sequence): New function.
19573         (old_insns_match_p): Check REG_EH_REGION notes for calls.
19574         * basic-block.h (flow_find_cross_jump,
19575         flow_find_head_matching_sequence): Declare functions.
19576
19577 2010-04-14  Jason Merrill  <jason@redhat.com>
19578
19579         PR c++/36625
19580         * c-common.c (attribute_takes_identifier_p): New fn.
19581         * c-common.h: Declare it.
19582
19583 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
19584
19585         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
19586         splitter condition.
19587         (*udivmod<mode>4): Ditto.
19588
19589 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
19590
19591         * config/i386/i386.md (maxmin_int): Rename code attribute from
19592         maxminiprefix and update all users.
19593         (maxmin_float): Ditto from maxminfprefix.
19594         (logic): Ditto from logicprefix.
19595         (absneg_mnemonic): Ditto from absnegprefix.
19596         * config/i386/mmx.md: Update all users of maxminiprefix,
19597         maxminfprefix and logicprefix for rename.
19598         * config/i386/sse.md: Ditto.
19599         * config/i386/sync.md (sync_<code><mode>): Update for
19600         logicprefix rename.
19601
19602 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19603
19604         PR 42966
19605         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
19606         warnings converted to errors.
19607
19608 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
19609
19610         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
19611         used insn_type variable.
19612         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
19613         to avoid set-but-not-used warning.
19614
19615 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
19616
19617         * df-core.c (df_ref_debug): Change format string placeholder
19618         from 0x%x to %#x.
19619         * dwarf2asm.c (dw2_asm_output_data_raw,
19620         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
19621         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
19622         * dwarf2out.c (output_cfi, output_cfi_directive,
19623         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
19624         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
19625         Ditto.
19626         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
19627         * print-rtl.c (print_rtx): Ditto.
19628
19629 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
19630
19631         PR middle-end/42694
19632         * builtins.c (expand_builtin_pow_root): New function to expand pow
19633         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
19634         series of sqrt and cbrt calls under -ffast-math.
19635         (expand_builtin_pow): Call it.
19636
19637 2010-04-14  Michael Matz  <matz@suse.de>
19638
19639         PR tree-optimization/42963
19640         * tree-cfg.c (touched_switch_bbs): New static variable.
19641         (group_case_labels_stmt): New function broken out from ...
19642         (group_case_labels): ... here, use the above.
19643         (start_recording_case_labels): Allocate touched_switch_bbs.
19644         (end_recording_case_labels): Deallocate it, call
19645         group_case_labels_stmt.
19646         (gimple_redirect_edge_and_branch): Remember index of affected BB.
19647
19648 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
19649
19650         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
19651         from insn template.
19652
19653 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
19654
19655         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
19656
19657 2010-04-13  Jan Hubicka  <jh@suse.cz>
19658
19659         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
19660         of optimized out static functions.
19661         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
19662         cost computation.  Also sanity check for overflows.
19663         (update_caller_keys): Update cgraph_edge_badness call; properly
19664         update fibheap and sanity check that it is up to date.
19665         (add_new_edges_to_heap): Update cgraph_edge_badness.
19666         (cgraph_decide_inlining_of_small_function): Likewise;
19667         add sanity checking that badness in heap is up to date;
19668         improve dumping of reason; Update badness of calls to the
19669         offline copy of function currently inlined; dump badness
19670         of functions not inlined because of unit growth limits.
19671
19672 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
19673
19674         PR middle-end/32628
19675         * c-common.c (pointer_int_sum): Disregard overflow that occured only
19676         because of sign-extension change when converting to sizetype here...
19677         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
19678
19679         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
19680         the folding to constants.  Remove redundant final conversion.
19681         (fold_binary) <associate>: Do not associate if the re-association of
19682         constants alone overflows.
19683         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
19684         to the end of the list.
19685         (multiple_of_p) <COND_EXPR>: New case.
19686
19687 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19688
19689         * opt-functions.awk (opt_sanitized_name): New.
19690         (opt_enum): New.
19691         * optc-gen.awk: Use it
19692         * opth-gen.awk: Use it.
19693
19694 2010-04-13  Martin Jambor  <mjambor@suse.cz>
19695
19696         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
19697         (sra_modify_assign): Delete stmts loading dead data even if racc has no
19698         children.  Call replace_uses_with_default_def_ssa_name to handle
19699         SSA_NAES on lhs.
19700
19701 2010-04-13  Michael Matz  <matz@suse.de>
19702
19703         PR middle-end/43730
19704         * builtins.c (expand_builtin_interclass_mathfn): Also create
19705         a register if the predicate doesn't match.
19706
19707 2010-04-13  Diego Novillo  <dnovillo@google.com>
19708
19709         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
19710         * c-pch.c: Include timevar.h.
19711         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
19712         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
19713         * ggc-common.c: Include timevar.h.
19714         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
19715         * timevar.def (TV_PCH_SAVE): Define.
19716         (TV_PCH_CPP_SAVE): Define.
19717         (TV_PCH_PTR_REALLOC): Define.
19718         (TV_PCH_PTR_SORT): Define.
19719         (TV_PCH_RESTORE): Define.
19720         (TV_PCH_CPP_RESTORE): Define.
19721
19722 2010-04-13  Michael Matz  <matz@suse.de>
19723
19724         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
19725         into MINUS_EXPRs.
19726         (can_reassociate_p): New function.
19727         (break_up_subtract_bb, reassociate_bb): Use it.
19728
19729 2010-04-13  Richard Guenther  <rguenther@suse.de>
19730
19731         PR bootstrap/43737
19732         * builtins.c (c_readstr): Fix assert.
19733
19734 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
19735
19736         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
19737         when generating cltd insn.
19738
19739         (*ashl<mode>3_1): Remove special handling for register operand 2.
19740         (*ashlsi3_1_zext): Ditto.
19741         (*ashlhi3_1): Ditto.
19742         (*ashlhi3_1_lea): Ditto.
19743         (*ashlqi3_1): Ditto.
19744         (*ashlqi3_1_lea): Ditto.
19745         (*<shiftrt_insn><mode>3_1): Ditto.
19746         (*<shiftrt_insn>si3_1_zext): Ditto.
19747         (*<shiftrt_insn>qi3_1_slp): Ditto.
19748         (*<rotate_insn><mode>3_1): Ditto.
19749         (*<rotate_insn>si3_1_zext): Ditto.
19750         (*<rotate_insn>qi3_1_slp): Ditto.
19751
19752 2010-04-13  Richard Guenther  <rguenther@suse.de>
19753
19754         * tree-ssa-structalias.c (callused_id): Remove.
19755         (call_stmt_vars): New.
19756         (get_call_vi): Likewise.
19757         (lookup_call_use_vi): Likewise.
19758         (lookup_call_clobber_vi): Likewise.
19759         (get_call_use_vi): Likewise.
19760         (get_call_clobber_vi): Likewise.
19761         (make_transitive_closure_constraints): Likewise.
19762         (handle_const_call): Adjust to do per-call call-used handling.
19763         (handle_pure_call): Likewise.
19764         (find_what_var_points_to): Remove general callused handling.
19765         (init_base_vars): Likewise.
19766         (init_alias_vars): Initialize call_stmt_vars.
19767         (compute_points_to_sets): Process call-used and call-clobbered
19768         vars for call statements.
19769         (delete_points_to_sets): Free call_stmt_vars.
19770
19771 2010-04-13  Richard Guenther  <rguenther@suse.de>
19772
19773         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
19774         Only add RW dependence for dependence distance zero.
19775         Adjust maximal vectorization factor according to dependences.
19776         Move alignment handling ...
19777         (vect_find_same_alignment_drs): ... here.  New function.
19778         (vect_analyze_data_ref_dependences): Adjust.
19779         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
19780         (vect_analyze_data_refs): Adjust minimal vectorization factor
19781         according to data references.
19782         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
19783         dependences before determining the vectorization factor.
19784         Analyze alignment after determining the vectorization factor.
19785         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
19786         dependences before alignment.
19787         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
19788         Adjust prototype.
19789         (vect_analyze_data_refs): Likewise.
19790         (MAX_VECTORIZATION_FACTOR): New define.
19791
19792 2010-04-13  Duncan Sands  <baldrick@free.fr>
19793
19794         * except.h (lang_eh_type_covers): Remove.
19795         * except.c (lang_eh_type_covers): Likewise.
19796
19797 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19798             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19799
19800         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
19801         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
19802         UNITS_PER_LONG where it is ABI relevant.
19803         (s390_return_addr_rtx): Likewise.
19804         (s390_back_chain_rtx): Likewise.
19805         (s390_frame_area): Likewise.
19806         (s390_frame_info): Likewise.
19807         (s390_initial_elimination_offset): Likewise.
19808         (save_gprs): Likewise.
19809         (s390_emit_prologue): Likewise.
19810         (s390_emit_epilogue): Likewise.
19811         (s390_function_arg_advance): Likewise.
19812         (s390_function_arg): Likewise.
19813         (s390_va_start): Likewise.
19814         (s390_gimplify_va_arg): Likewise.
19815         (s390_function_profiler): Likewise.
19816         (s390_optimize_prologue): Likewise.
19817         (s390_rtx_costs): Likewise.
19818         (s390_secondary_reload): Likewise.
19819         (s390_promote_function_mode): Likewise.
19820         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
19821         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
19822         registers available.
19823         (s390_unwind_word_mode): New function.
19824         (s390_function_value): Split 64 bit values into register pair if
19825         used as return value.
19826         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
19827         function call parameters.  Handle parallels.
19828         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
19829         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
19830         (DWARF_CIE_DATA_ALIGNMENT): New macro.
19831         (s390_expand_setmem): Remove unused variable src_addr.
19832         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
19833         deal with 64 bit registers.
19834         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
19835         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
19836         (UNITS_PER_LONG): New macro.
19837         * libjava/include/s390-signal.h: Define extended ucontext
19838         structure containing the upper halfs of the 64 bit registers.
19839
19840 2010-04-13  Simon Baldwin  <simonb@google.com>
19841
19842         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
19843
19844 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
19845
19846         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
19847         rvalue on the RHS if the LHS is of a non-renamable type.
19848         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
19849
19850 2010-04-13  Matthias Klose  <doko@ubuntu.com>
19851
19852         * gcc.c (cc1_options): Handle -iplugindir before processing
19853         the cc1 spec. Only add -iplugindir once.
19854         (cpp_unique_options): Add -iplugindir option if -fplugin* options
19855         found.
19856         * common.opt (iplugindir): Remove `Separate' property, initialize.
19857         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
19858         option.
19859         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
19860         (distclean): Remove plugin dir.
19861         * doc/invoke.texi: Document -iplugindir.
19862
19863 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
19864
19865         * doc/plugins.texi (Loading Plugins): Document short
19866         -fplugin=foo option.
19867         (Plugin API): Mention default_plugin_dir_name function.
19868
19869         * gcc.c (find_file_spec_function): Add new declaration.
19870         (static_spec_func): Use it for "find-file".
19871         (find_file_spec_function): Add new function.
19872         (cc1_options): Add -iplugindir option if -fplugin* options found.
19873
19874         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
19875
19876         * plugin.c (add_new_plugin): Updated comment, and handle short
19877         plugin name.
19878         (default_plugin_dir_name): Added new function.
19879
19880         * common.opt (iplugindir): New option to set the plugin directory.
19881
19882 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
19883
19884         * config/i386/i386.md (any_rotate): New code iterator.
19885         (rotate_insn): New code attribute.
19886         (rotate): Ditto.
19887         (SWIM124): New mode iterator.
19888         (<rotate_insn>ti3): New expander.
19889         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
19890         any_rotate code iterator.
19891         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
19892         using any_rotate code iterator and SWIM124 mode iterator.
19893         (ix86_rotlti3): New insn_and_split pattern.
19894         (ix86_rotrti3): Ditto.
19895         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
19896         ix86_rotl{di,ti}3 patterns.
19897         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
19898         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
19899         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
19900         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
19901         code iterator and SWI mode iterator.
19902         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
19903         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
19904         code iterator.
19905         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
19906         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
19907         (bswap rotatert splitter): Add splitter.
19908         (bswap splitter): Macroize splitter using any_rotate code iterator.
19909         Add insn predicate to split only for TARGET_USE_XCHGB or when
19910         optimizing function for size.
19911
19912 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
19913
19914         * config/pa/pa.c (emit_move_sequence): Remove use of
19915         deleted variable flag_argument_noalias.
19916
19917 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19918
19919         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
19920         configurations.
19921         Add to unsupported targets list.
19922         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
19923         sparc*-sun-solaris2.[567]* from target lists.
19924         * configure: Regenerate.
19925         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
19926         removal.
19927         Remove Solaris 7 patch references.
19928         (Specific, sparc-sun-solaris2.7): Removed.
19929         (sparc-sun-solaris2*): Update Solaris 7 example.
19930         (sparc64-*-solaris2*): Likewise.
19931
19932 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19933
19934         * config.build (alpha*-dec-osf4*): Remove.
19935         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
19936         of obsolete configurations.
19937         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
19938         support.
19939         * config/alpha/t-osf4: Renamed to ...
19940         * config/alpha/t-osf5: ... this.
19941         * config/alpha/osf.h: Renamed to ...
19942         * config/alpha/osf5.h: ... this.
19943         Merged old osf5.h contents.
19944         Update comments.
19945         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
19946         (EXTRA_SPECS): Removed.
19947         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
19948         reflect removal of Tru64 UNIX V4.0/V5.0 support.
19949         Document that.
19950
19951 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19952
19953         * doc/contrib.texi (Contributors, Rainer Orth): Update.
19954
19955 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
19956
19957         PR/43702
19958         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
19959         __thiscall convention.
19960
19961 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
19962
19963         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
19964         orig_base.
19965         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
19966
19967 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
19968
19969         * function.c (assign_parms_initialize_all): Add unused attribute
19970         to fntype.
19971
19972 2010-04-12  Richard Guenther  <rguenther@suse.de>
19973
19974         * gsstruct.def (GSS_CALL): New.
19975         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
19976         * gimple.h: Include tree-ssa-alias.h.
19977         (struct gimple_statement_call): New.
19978         (union gimple_statement_struct_d): Add gimple_call member.
19979         (gimple_call_reset_alias_info): Declare.
19980         (gimple_call_use_set): New function.
19981         (gimple_call_clobber_set): Likewise.
19982         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
19983         * gimple.c (gimple_call_reset_alias_info): New function.
19984         (gimple_build_call_1): Call it.
19985         * lto-streamer-in.c (input_gimple_stmt): Likewise.
19986         * tree-inline.c (remap_gimple_stmt): Likewise.
19987         (expand_call_inline): Remove callused handling.
19988         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
19989         * tree-dfa.c (dump_variable): Likewise.
19990         * tree-parloops.c (parallelize_loops): Likewise.
19991         * tree-ssa.c (init_tree_ssa): Likewise.
19992         (delete_tree_ssa): Likewise.
19993         * tree-flow-inline.h (is_call_used): Remove.
19994         * tree-flow.h (struct gimple_df): Remove callused member.
19995         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
19996         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
19997         (ref_maybe_used_by_call_p_1): Simplify.
19998         (call_may_clobber_ref_p_1): Likewise.
19999         * tree-ssa-structalias.c (compute_points_to_sets): Set
20000         the call stmt used and clobbered sets.
20001         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
20002         (find_tail_calls): Verify the tail call.
20003
20004 2010-04-12  Richard Guenther  <rguenther@suse.de>
20005
20006         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
20007         single-iteration always-inline inlining.
20008         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
20009         (cgraph_decide_inlining): Do not handle always-inline specially.
20010         (try_inline): Remove always-inline cycle detection special case.
20011         Do not recurse on always-inlines.
20012         (cgraph_early_inlining): Do not iterate if not optimizing.
20013         (cgraph_gate_early_inlining): remove.
20014         (pass_early_inline): Run unconditionally.
20015         (gate_cgraph_decide_inlining): New function.
20016         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
20017         not inlining or optimizing.
20018         (cgraph_decide_inlining_of_small_functions): Also consider
20019         always-inline functions.
20020         (cgraph_default_inline_p): Return true for nodes which should
20021         disregard inline limits.
20022         (estimate_function_body_sizes): Assume zero size and time for
20023         nodes which are marked as disregarding inline limits.
20024         (cgraph_decide_recursive_inlining): Do not perform recursive
20025         inlining on always-inline nodes.
20026
20027 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
20028
20029         PR bootstrap/43699
20030         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
20031         for exprs satisfying handled_component_p.
20032
20033 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
20034
20035         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
20036         non-constant aggregate elements.
20037
20038         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
20039         is a real initialization.
20040
20041 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
20042
20043         PR c/36774
20044         * c-decl.c (start_function): Move forward check for nested function.
20045
20046 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
20047
20048         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
20049         * config/sh/sh.c: Include reload.h.
20050         (sh_legitimize_reload_address): New.
20051         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
20052         sh_legitimize_reload_address.
20053
20054 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
20055
20056         * config/sh/sh.md (*movqi_pop): New insn pattern.
20057         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
20058
20059 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
20060
20061         * config/i386/i386.md (any_shiftrt): New code iterator.
20062         (shiftrt_insn): New code attribute.
20063         (shiftrt): Ditto.
20064         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
20065         using any_shiftrt code iterator.
20066         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
20067         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
20068         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
20069         pattern from corresponding peephole2 patterns.
20070         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
20071         using any_shiftrt code iterator.
20072         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
20073         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
20074         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
20075         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
20076         *{ashr,lshr}<mode>3_cmp_zext.
20077         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
20078
20079 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
20080
20081         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
20082         scratch register.
20083         (*lshr<mode>3_cconly): Ditto.
20084
20085 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
20086
20087         * config/i386/i386.md (lshr<mode>3): Macroize expander from
20088         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
20089         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
20090         pattern from *lshr{di,ti}3_1 and corresponding splitters using
20091         DWI mode iterator.
20092         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
20093         from corresponding peephole2 patterns.
20094         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
20095         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
20096         and *lshrdi3_1_rex64 using SWI mode iterator.
20097         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
20098         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
20099         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
20100         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
20101         and *lshrdi3_cmp_rex64 using SWI mode iterator.
20102         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
20103         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
20104         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
20105         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
20106         SWI mode iterator.
20107
20108 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
20109
20110         * config/i386/i386.md (ashr<mode>3): Macroize expander from
20111         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
20112         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
20113         pattern from *ashr{di,ti}3_1 and corresponding splitters using
20114         DWI mode iterator.
20115         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
20116         from corresponding peephole2 patterns.
20117         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
20118         (ashrsi3_cvt): Rename from ashrsi3_31.
20119         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
20120         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
20121         and x86_64_shift_adj_3 using SWI48 mode iterator.
20122         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
20123         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
20124         and *ashrdi3_1_rex64 using SWI mode iterator.
20125         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
20126         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
20127         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
20128         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
20129         and *ashrdi3_cmp_rex64 using SWI mode iterator.
20130         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
20131         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
20132         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
20133         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
20134         SWI mode iterator.
20135         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
20136         * config/i386/i386.c (ix86_split_ashr): Update for renamed
20137         x86_shift<mode>_adj_3 expanders.
20138
20139 2010-04-10  Wei Guozhi  <carrot@google.com>
20140
20141         PR target/42601
20142         * config/arm/arm.c (arm_pic_static_addr): New function.
20143         (legitimize_pic_address): Call arm_pic_static_addr when it detects
20144         a static symbol.
20145         (arm_output_addr_const_extra): Output expression for new pattern.
20146         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
20147
20148 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
20149
20150         * ira-costs.c (record_reg_classes): Ignore alternatives that are
20151         not enabled.
20152
20153         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
20154         * web.c: Include "insn-config.h" and "recog.h".
20155         (union_match_dups): New function.
20156         (web_main): Call it.
20157         (union_defs): Don't try to recognize match_dups.
20158
20159         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
20160         if doing so would replace the entire pattern.
20161
20162 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
20163
20164         PR target/43707
20165         PR target/43709
20166         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
20167         and splitter pattern.  Change splitter operand 1 predicate to
20168         nonmemory_operand.
20169
20170 2010-04-09  Martin Jambor  <mjambor@suse.cz>
20171
20172         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
20173         lattices are addresses of CONST_DECLs with the same initial value.
20174         (ipcp_print_all_lattices): Print values of CONST_DECLs.
20175         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
20176
20177 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
20178             Bernd Schmidt  <bernds@codesourcery.com>
20179
20180         * loop-invariant.c (replace_uses): New static function.
20181         (move_invariant_reg): Use it to ensure we can replace the uses.
20182
20183 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
20184
20185         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
20186         function template.
20187         (picochip_override_options): Enable section anchors only above -O1.
20188         (picochip_reorg): Fixed a couple of build warnings.
20189
20190 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20191
20192         * configure.ac (plugin -rdynamic test): Log result.
20193         * configure: Regenerate.
20194         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
20195         (RDYNAMIC_SPEC): Define.
20196         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
20197
20198 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20199
20200         * configure.ac: Determine Sun ld version numbers.
20201         (comdat_group): Restrict GNU ld version checks to gld.
20202         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
20203         (enable_comdat): Support --enable-comdat.
20204         * configure: Regenerate.
20205         * doc/install.texi (Configuration): Document --enable-comdat.
20206
20207 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20208
20209         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
20210         * config/sol2-gld.h: ... here.
20211         * config.gcc (sparc*-*-solaris2*): Reflect this.
20212         (i[34567]86-*-solaris2*): Use it.
20213
20214 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
20215
20216         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
20217         setup_clocks_p.
20218         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
20219
20220 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20221
20222         PR 42965
20223         * diagnostic.c (diagnostic_initialize): Initialize
20224         some_warnings_are_errors.
20225         (diagnostic_finish): New.
20226         (diagnostic_action_after_output): Call it before exiting.
20227         (diagnostic_report_diagnostic): Do not print message here. Set
20228         some_warnings_are_errors.
20229         * diagnostic.h (diagnostic_context): Delete
20230         issue_warnings_are_errors_message. Add some_warnings_are_errors.
20231         (diagnostic_finish): Declare.
20232         * toplev.c (toplev_main): Call it before exit.
20233
20234 2010-04-09  Jason Merrill  <jason@redhat.com>
20235
20236         PR c++/42623
20237         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
20238         for incomplete type.
20239
20240         PR c++/41788
20241         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
20242         based on a warning flag.
20243
20244 2010-04-09  Richard Guenther  <rguenther@suse.de>
20245
20246         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
20247
20248 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
20249
20250         PR bootstrap/43684
20251         * varasm.c (default_assemble_visibility): Wrap vars that are
20252         set, but unused, by targets without GAS.
20253         * config/rs6000/rs6000.c (paired_emit_vector_compare):
20254         Remove set, but unused, vars.
20255         (rs6000_legitimize_tls_address): Likewise.
20256         (altivec_expand_dst_builtin): Likewise.
20257         * config/darwin.c (machopic_classify_symbol): Likewise.
20258         (machopic_indirection_name): Likewise.
20259
20260 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
20261
20262         * config/i386/i386.md (DWI): New mode iterator.
20263         (S): New mode attribute.
20264         (shift_operand): Ditto.
20265         (shift_immediate_operand): Ditto.
20266         (ashl_input_operand): Ditto.
20267         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
20268         using SDWIM mode iterator.
20269         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
20270         pattern from *ashl{di,ti}3_1 and corresponding splitters using
20271         DWI mode iterator.
20272         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
20273         from corresponding peephole2 patterns.
20274         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
20275         and x86_64_shift_adj_1 using SWI48 mode iterator.
20276         (x86_shift<mode>_adj_2): Ditto.
20277         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
20278         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
20279         using SWI48 mode iterator.
20280         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
20281         *ashldi3_cmp_rex64 using SWI mode iterator.
20282         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
20283         *ashldi3_cconly_rex64 using SWI mode iterator.
20284         * config/i386/i386.c (ix86_split_ashl): Update for renamed
20285         x86_shift<mode>_adj_{1,2}.
20286         (ix86_split_ashr): Ditto.
20287         (ix86_split_lshr): Ditto.
20288
20289 2010-04-09  Richard Guenther  <rguenther@suse.de>
20290
20291         * target.h (builtin_conversion): Pass in input and output types.
20292         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
20293         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
20294         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
20295         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
20296
20297         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
20298         Handle AVX modes.
20299         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
20300
20301 2010-04-09  Richard Guenther  <rguenther@suse.de>
20302
20303         PR target/43152
20304         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
20305
20306 2010-04-09  Richard Guenther  <rguenther@suse.de>
20307
20308         * tree-vectorizer.h (struct _stmt_vec_info): Document
20309         that vectype is the type of the LHS.
20310         (supportable_widening_operation, supportable_narrowing_operation):
20311         Get both input and output vector types as arguments.
20312         (vect_is_simple_use_1): Declare.
20313         (get_same_sized_vectype): Likewise.
20314         * tree-vect-loop.c (vect_determine_vectorization_factor):
20315         Set STMT_VINFO_VECTYPE to the vector type of the def.
20316         (vectorizable_reduction): Adjust.
20317         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
20318         Adjust.  Specify the output vector type.
20319         (vect_pattern_recog_1): Adjust.
20320         * tree-vect-stmts.c (get_same_sized_vectype): New function.
20321         (vectorizable_call): Adjust.
20322         (vectorizable_conversion): Likewise.
20323         (vectorizable_operation): Likewise.
20324         (vectorizable_type_demotion): Likewise.
20325         (vectorizable_type_promotion): Likewise.
20326         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
20327         the def.
20328         (vect_is_simple_use_1): New function.
20329         (supportable_widening_operation): Get both input and output
20330         vector types.
20331         (supportable_narrowing_operation): Likewise.
20332         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
20333
20334 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
20335
20336         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
20337         __thiscall and _thiscall as predefined macros.
20338         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
20339         thiscall attribute handling.
20340         (ix86_comp_type_attributes): Likewise.
20341         (ix86_function_regparm): Likewise.
20342         (ix86_return_pops_args): Likewise.
20343         (init_cumulative_args): Likewise.
20344         (find_drap_reg): Likewise.
20345         (ix86_static_chain): Likewise.
20346         (x86_this_parameter): Likewise.
20347         (x86_output_mi_thunk): Likewise.
20348         (ix86_attribute_table): Add description for thiscall attribute.
20349         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
20350         * doc/extend.texi: Add documentation for thiscall.
20351
20352 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20353
20354         PR c++/28584
20355         * c.opt (Wint-to-pointer-cast): Available in C++.
20356         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
20357
20358 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
20359
20360         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
20361         * calls.c (expand_call): Pass the function type to aggregate_value_p.
20362         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
20363         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
20364         function type instead.  Reorder and simplify checks.
20365
20366         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
20367
20368 2010-04-08  Jing Yu  <jingyu@google.com>
20369             Zdenek Dvorak  <ook@ucw.cz>
20370
20371         PR tree-optimization/42720
20372         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
20373         loop unswitch conditions here from ...
20374         (tree_unswitch_single_loop): ... here.
20375
20376 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
20377
20378         * tree-if-conv.c: Fix comments and simplify logic.
20379
20380 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
20381
20382         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
20383         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
20384         (main_tree_if_conversion): Update call to tree_if_conversion.
20385
20386 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20387
20388         PR 42485
20389         * doc/invoke.texi (-b,-V): Delete.
20390         * doc/tm.texi: Do not mention -b.
20391         * gcc.c (display_help): Delete -b and -V.
20392         (process_command): Delete -b and -V.
20393         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
20394
20395 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
20396             Wolfgang Gellerich  <gellerich@de.ibm.com>
20397
20398         Implement target hook for loop unrolling
20399         * target.h (loop_unroll_adjust): Add a new target hook function.
20400         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
20401         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
20402         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
20403         (s390_loop_unroll_adjust): Implement the new target hook for s390.
20404         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
20405         target hook.
20406         (decide_unroll_stupid): Likewise.
20407
20408 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20409
20410         PR target/43643
20411         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
20412
20413 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20414
20415         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
20416         (Specific, *-*-solaris2*): Likewise.
20417         Don't prefer Sun as over GNU as.
20418
20419 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
20420
20421         * config/s390/s390.c (override_options): Adjust the z10 defaults
20422         for max-unroll-times, max-completely-peeled-insns
20423         and max-completely-peel-times.
20424
20425 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20426
20427         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
20428         instructions for z10.
20429         (s390_expand_setmem): Likewise.
20430         (s390_expand_cmpmem): Likewise.
20431
20432 2010-04-08  Richard Guenther  <rguenther@suse.de>
20433
20434         PR tree-optimization/43679
20435         * tree-ssa-pre.c (eliminate): Only propagate copies.
20436
20437 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
20438
20439         PR bootstrap/43681
20440         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
20441         set but not used variable warning.
20442
20443 2010-04-08  Wei Guozhi  <carrot@google.com>
20444
20445         PR target/41653
20446         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
20447         (arm_size_rtx_costs): Call the new function when optimized for size.
20448
20449 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
20450
20451         PR debug/43670
20452         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
20453         op0 is not a MEM, just return NULL instead of assertion
20454         failure.
20455         (discover_nonconstant_array_refs): Don't walk debug stmts.
20456
20457 2010-04-08  Doug Kwan  <dougkwan@google.com>
20458
20459         * configure.ac: Recognize gold and do not use its version number
20460         to test ld features.
20461         * configure: Regenerate.
20462
20463 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
20464
20465         PR middle-end/40815
20466         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
20467         (negate_value): Move code to push elements to broken_up_substracts ...
20468         (eliminate_plus_minus_pair): ... here.  Push operands that have no
20469         negative pair to plus_negates.
20470         (repropagate_negates, init_reassoc, fini_reassoc): Update.
20471
20472 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20473
20474         * doc/install.texi (Configuration): Move description of
20475         --enable-lto, --with-libelf*, --enable-gold from Java section to
20476         general section.
20477
20478         * doc/generic.texi (Working with declarations)
20479         (Function Properties, C and C++ Trees): Fix typos.
20480         * doc/sourcebuild.texi (Top Level): Likewise.
20481
20482 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
20483
20484         PR c/18624
20485         * tree.h (DECL_READ_P): Define.
20486         (struct tree_decl_common): Add decl_read_flag.
20487         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
20488         a set but not used warning.
20489         (merge_decls): Merge DECL_READ_P flag.
20490         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
20491         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
20492         * c-common.c (handle_used_attribute, handle_unused_attribute):
20493         Likewise.
20494         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
20495         New prototypes.
20496         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
20497         New functions.
20498         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
20499         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
20500         c_parser_binary_expression, c_parser_cast_expression,
20501         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
20502         Call default_function_array_read_conversion instead of
20503         default_function_array_conversion where needed.
20504         (c_parser_unary_expression, c_parser_conditional_expression,
20505         c_parser_postfix_expression_after_primary, c_parser_initelt):
20506         Likewise.  Call mark_exp_read where needed.
20507         (c_parser_statement_after_labels, c_parser_asm_operands,
20508         c_parser_typeof_specifier, c_parser_sizeof_expression,
20509         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
20510         where needed.
20511         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
20512         New.
20513         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
20514         (warn_unused_but_set_parameter): Default to warn_unused
20515         && extra_warnings.
20516         * doc/invoke.texi: Document -Wunused-but-set-variable and
20517         -Wunused-but-set-parameter.
20518
20519         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
20520         used count variable.
20521         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
20522         when operandN variables aren't used in the body of the expander
20523         or splitter.
20524         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
20525         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
20526         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
20527         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
20528         FOR_EACH_IMM_USE_ON_STMT): Likewise.
20529         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
20530         * tree.c (PROCESS_ARG): Likewise.
20531
20532 2010-04-07  Simon Baldwin  <simonb@google.com>
20533
20534         * diagnostic.h (diagnostic_override_option_index): New macro to
20535         set a diagnostic's option_index.
20536         * c-tree.h (c_cpp_error): Add warning reason argument.
20537         * opts.c (_warning_as_error_callback): New.
20538         (register_warning_as_error_callback): Store callback for
20539         warnings enabled via enable_warning_as_error.
20540         (enable_warning_as_error): Call callback, minor code tidy.
20541         * opts.h (register_warning_as_error_callback): Declare.
20542         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
20543         response to -Werror=.
20544         (c_common_init_options): Register warning_as_error_callback in opts.c.
20545         * common.opt: Add -Wno-cpp option.
20546         * c-common.c (struct reason_option_codes_t): Map cpp warning
20547         reason codes to gcc option indexes.
20548         * (c_option_controlling_cpp_error): New function, lookup the gcc
20549         option index for a cpp warning reason code.
20550         * (c_cpp_error): Add warning reason argument, call
20551         c_option_controlling_cpp_error for diagnostic_override_option_index.
20552         * doc/invoke.texi: Document -Wno-cpp.
20553
20554 2010-04-07  Richard Guenther  <rguenther@suse.de>
20555
20556         * ipa-reference.c (mark_load): Use get_base_address.
20557         (mark_store): Likewise.
20558
20559         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
20560         inserting GIMPLE_NOPs into the IL.
20561         * tree-ssa-structalias.c (get_constraint_for_component_ref):
20562         Explicitly strip handled components and indirect references.
20563
20564         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
20565         folding address expressions.
20566         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
20567         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
20568         operand_equal_p to compare decls.
20569         (ptr_deref_may_alias_decl_p): Likewise.
20570         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
20571         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
20572         Handle reversed comparison ops.
20573         * tree-sra.c (asm_visit_addr): Use get_base_address.
20574         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
20575         * ipa-reference.c (mark_address): Use get_base_address.
20576
20577 2010-04-07  Richard Guenther  <rguenther@suse.de>
20578
20579         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
20580         Propagate constants everywhere.
20581
20582 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
20583
20584         PR debug/43516
20585         * tree.c (MAX_INT_CACHED_PREC): Define.
20586         (nonstandard_integer_type_cache): New array.
20587         (build_nonstandard_integer_type): Cache results for precision
20588         <= MAX_INT_CACHED_PREC.
20589
20590 2010-04-07  Richard Guenther  <rguenther@suse.de>
20591
20592         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
20593         -fargument-noalias-global, -fargument-noalias-anything): Remove.
20594         * common.opt: Likewise.
20595         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
20596         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
20597         (nonoverlapping_memrefs_p): Likewise.
20598         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20599         * opts.c (common_handle_option): Handle OPT_fargument_alias,
20600         OPT_fargument_noalias, OPT_fargument_noalias_anything and
20601         OPT_fargument_noalias_global for backward compatibility.
20602
20603 2010-04-07  Richard Guenther  <rguenther@suse.de>
20604
20605         PR tree-optimization/43270
20606         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
20607         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
20608         * tree-ssa-pre.c (phi_translate_1): Adjust.
20609         (fully_constant_expression): Split out vn_reference handling to ...
20610         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
20611         Fold reads from constant strings.
20612         (vn_reference_lookup): Handle fully constant references.
20613         (vn_reference_lookup_pieces): Likewise.
20614         * Makefile.in (expmed.o-warn): Add -Wno-error.
20615
20616 2010-04-07  Martin Jambor  <mjambor@suse.cz>
20617
20618         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
20619
20620 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
20621
20622         PR driver/41594
20623         * gcc.c: Add -static-libstdc++ to list of recognized options.
20624
20625 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20626
20627         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
20628
20629 2010-04-07  Richard Guenther  <rguenther@suse.de>
20630
20631         PR middle-end/42617
20632         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
20633         bases build simple mem attributes to retain points-to information.
20634
20635 2010-04-07  Richard Guenther  <rguenther@suse.de>
20636
20637         PR middle-end/42617
20638         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
20639         preserve points-to related information.
20640
20641 2010-04-07  Richard Guenther  <rguenther@suse.de>
20642
20643         PR middle-end/42617
20644         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
20645         discard plain indirect references.
20646         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
20647         * tree.c (tree_nop_conversion): Likewise.
20648
20649 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
20650
20651         PR debug/43628
20652         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
20653
20654 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
20655
20656         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
20657         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
20658
20659 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
20660
20661         * tree-if-conv.c: Fix indentation and comments.
20662
20663 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
20664
20665         * tree-if-conv.c: Sort static functions in topological order.
20666
20667 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
20668
20669         * tree-if-conv.c: Fix indentation and comments.
20670
20671 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
20672
20673         PR middle-end/43519
20674         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
20675         lang_hooks.types.type_for_size instead of
20676         build_nonstandard_integer_type.
20677         When converting an unsigned type to signed, double its precision.
20678         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
20679         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
20680         (graphite_create_new_loop_guard): When ub + 1 wraps around,
20681         use lb <= ub.
20682
20683 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
20684
20685         PR middle-end/43519
20686         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
20687         POINTER_PLUS_EXPR for pointer types.
20688
20689 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
20690
20691         PR middle-end/43519
20692         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
20693         * graphite-clast-to-gimple.c: Include langhooks.h.
20694         (max_signed_precision_type): New.
20695         (max_precision_type): Takes two types as arguments.
20696         (precision_for_value): New.
20697         (precision_for_interval): New.
20698         (gcc_type_for_interval): New.
20699         (gcc_type_for_value): New.
20700         (gcc_type_for_clast_term): New.
20701         (gcc_type_for_clast_red): New.
20702         (gcc_type_for_clast_bin): New.
20703         (gcc_type_for_clast_expr): Split up into several functions.
20704         (gcc_type_for_clast_eq): Rewritten.
20705         (compute_bounds_for_level): New.
20706         (compute_type_for_level_1): New.
20707         (compute_type_for_level): New.
20708         (gcc_type_for_cloog_iv): Removed.
20709         (gcc_type_for_iv_of_clast_loop): Rewritten.
20710         (graphite_create_new_loop): Compute the lower and upper bound types
20711         with gcc_type_for_clast_expr.
20712         (graphite_create_new_loop_guard): Same.
20713         (find_cloog_iv_in_expr): Removed.
20714         (compute_cloog_iv_types_1): Removed.
20715         (compute_cloog_iv_types): Removed.
20716         (gloog): Do not call compute_cloog_iv_types.
20717         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
20718         GBB_CLOOG_IV_TYPES.
20719         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
20720         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
20721         (GBB_CLOOG_IV_TYPES): Removed.
20722
20723 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
20724
20725         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
20726         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
20727         (detect_commutative_reduction): Same.
20728
20729 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
20730
20731         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
20732         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
20733         argument.
20734         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
20735         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
20736         (rewrite_commutative_reductions_out_of_ssa): Same.
20737         * passes.c (execute_function_todo): Call verify_ssa for every pass
20738         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
20739         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
20740         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
20741         with an extra argument.
20742         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
20743         verify_ssa only when the extra argument is true.
20744         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
20745         with an extra argument.
20746         (tree_transform_and_unroll_loop): Same.
20747
20748 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
20749
20750         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
20751         for all the passes of the LNO having LOOP_CLOSED_SSA.
20752         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
20753         * tree-loop-distribution.c (pass_loop_distribution): Same.
20754         * tree-pass.h (TODO_verify_loops): Removed.
20755         * tree-ssa-loop.c (pass_tree_loop_init): Same.
20756         (pass_lim): Same.
20757         (pass_tree_unswitch): Same.
20758         (pass_predcom): Same.
20759         (pass_vectorize): Same.
20760         (pass_linear_transform): Same.
20761         (pass_graphite_transforms): Same.
20762         (pass_iv_canon): Same.
20763         (pass_complete_unroll): Same.
20764         (pass_complete_unrolli): Same.
20765         (pass_parallelize_loops): Same.
20766         (pass_loop_prefetch): Same.
20767         (pass_iv_optimize): Same.
20768
20769 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
20770
20771         PR middle-end/32824
20772         * passes.c (init_optimization_passes): Move pass_lim before
20773         pass_copy_prop and pass_dce_loop.
20774
20775 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
20776
20777         PR target/43667
20778         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
20779         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
20780         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
20781         MULTI_* defines for 4 argument vpermil2p* builtins.
20782
20783 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
20784
20785         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
20786         * config/i386/i386.c (x86_maybe_negate_const_int): New.
20787         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
20788         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
20789         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
20790         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
20791         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
20792         Use x86_maybe_negate_const_int to output insn mnemonic.
20793         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
20794         check from instruction predicate.  Update comments.
20795         * config/i386/sync.md (sync_add<mode>): Use
20796         x86_maybe_negate_const_int to output insn mnemonic.
20797
20798 2010-04-06  Jan Hubicka  <jh@suse.cz>
20799
20800         PR tree-optimization/42906
20801         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
20802         IGNORE_SELF argument.  Set visited_control_parents for fully
20803         processed BBs.
20804         (find_obviously_necessary_stmts): Update call of
20805         mark_control_dependent_edges_necessary.
20806         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
20807
20808 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
20809
20810         * config/i386/i386.md: Remove comment about 'e' and 'E'
20811         operand modifier.
20812
20813 2010-04-06  Richard Guenther  <rguenther@suse.de>
20814
20815         PR tree-optimization/43627
20816         * tree-vrp.c (extract_range_from_unary_expr): Widenings
20817         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
20818         not varying.
20819
20820 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
20821
20822         * BASE-VER: Change to 4.6.0.
20823
20824         PR target/43638
20825         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
20826         handling.
20827
20828 2010-04-06  Richard Guenther  <rguenther@suse.de>
20829
20830         PR middle-end/43661
20831         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
20832
20833 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20834
20835         * doc/invoke.texi (Optimize Options): Document that LTO
20836         won't remove object access purely due to incompatible
20837         declarations.
20838
20839 2010-04-04  Matthias Klose  <doko@ubuntu.com>
20840
20841         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
20842         Initialize variable.
20843
20844 2010-04-03  Richard Guenther  <rguenther@suse.de>
20845
20846         PR middle-end/42509
20847         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
20848         require a non-NULL MEM_OFFSET.
20849
20850 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
20851
20852         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
20853         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
20854         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
20855         config/alpha/predicates.md, config/arm/arm.md,
20856         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
20857         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
20858         config/darwin9.h, config/darwin.c, config/darwin.h,
20859         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
20860         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
20861         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
20862         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
20863         config/mips/mips.md, config/mn10300/mn10300.c,
20864         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
20865         config/rs6000/aix.h, config/rs6000/dfp.md,
20866         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
20867         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
20868         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
20869         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
20870         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
20871         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
20872         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
20873         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
20874         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
20875         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
20876         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
20877         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
20878         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
20879         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
20880         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
20881         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
20882         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
20883         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
20884         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
20885         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
20886         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
20887         opt-functions.awk, opth-gen.awk, params.def, passes.c,
20888         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
20889         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
20890         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
20891         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
20892         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
20893         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
20894         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
20895         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
20896         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
20897         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
20898         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
20899         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
20900         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
20901         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
20902
20903 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20904
20905         PR other/43620
20906         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
20907         * aclocal.m4: Regenerate.
20908
20909 2010-04-02  Richard Guenther  <rguenther@suse.de>
20910
20911         PR tree-optimization/43629
20912         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
20913         if we have seen a constant value.
20914
20915 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
20916
20917         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
20918
20919 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
20920
20921         PR target/43469
20922         * arm.c (legitimize_tls_address): Adjust call to
20923         gen_tls_load_dot_plus_four.
20924         (arm_note_pic_base): New function.
20925         (arm_cannot_copy_insn_p): Use it.
20926         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
20927         constraint.
20928
20929 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20930
20931         PR bootstrap/43531
20932
20933         Revert:
20934         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20935
20936         * Makefile.in ($(out_object_file)): Depend on
20937         gt-$(basename $(notdir $(out_file))).h.
20938
20939 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
20940
20941         * config.gcc (lm32-*-rtems*): Add t-lm32.
20942
20943 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
20944
20945         * config.gcc: Add lm32-*-rtems*.
20946         * config/lm32/rtems.h: New file.
20947
20948 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
20949
20950         PR target/42609
20951         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
20952
20953 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
20954
20955         * dwarf2out.c (output_compilation_unit_header): For
20956         -gdwarf-4 use version 4 instead of version 3.
20957         (output_line_info): For version 4 and above emit additional
20958         maximum ops per insn header field.
20959         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
20960
20961         * dwarf2out.c (is_c_family, is_java): Remove.
20962         (lower_bound_default): New function.
20963         (add_bound_info, gen_descr_array_type_die): Use it.
20964
20965 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
20966
20967         PR debug/43325
20968         * dwarf2out.c (gen_variable_die): Allow debug info for variable
20969         re-declaration when it happens in a function.
20970
20971 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
20972
20973         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
20974         (cgraph_remove_function_insertion_hook): Same.
20975         (cgraph_call_function_insertion_hooks): Same.
20976
20977 2010-04-01  Richard Guenther  <rguenther@suse.de>
20978
20979         PR middle-end/43614
20980         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
20981         and TREE_THIS_VOLATILE.
20982         (copy_ref_info): Likewise.
20983         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
20984         * tree.c (build6_stat): Ignore side-effects of all but arg5
20985         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
20986         TARGET_MEM_REF.
20987
20988 2010-04-01  Richard Guenther  <rguenther@suse.de>
20989
20990         PR tree-optimization/43607
20991         * ipa-type-escape.c (check_call): Do not access non-existing
20992         arguments.
20993
20994 2010-04-01  Richard Guenther  <rguenther@suse.de>
20995
20996         PR middle-end/43602
20997         Revert
20998         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
20999                     Jack Howarth  <howarth@bromo.med.uc.edu>
21000
21001         * tree-profile.c (tree_init_ic_make_global_vars): Make static
21002         variables TLS.
21003
21004 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21005
21006         * doc/install.texi (Prerequisites): Document libelf usability on
21007         IRIX 5/6 and Solaris 2.
21008         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
21009         Update GNU as, GNU ld requirements.
21010         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
21011         Document Sun Studio compiler download.
21012         Update and simplify as, ld recommendations.
21013         (Specific, *-*-solaris2.7): Note obsoletion, removal.
21014
21015 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21016
21017         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
21018         with_tune_32 to pentium4.
21019
21020 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
21021
21022         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
21023
21024 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21025
21026         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
21027         obsoletion, removal.
21028         Update IDO URL.
21029         Document GNU as requirement.
21030         Update configure requirements.
21031         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
21032         Recomment IRIX 6.5.18+.
21033         Document IDF/IDL requirement.
21034         Document GNU as requirement.
21035         Document GNU ld bootstrap failure.
21036         Remove freeware.sgi.com reference.
21037
21038 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21039
21040         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
21041         UNIX V4.0, V5.0 obsoletion, removal.
21042         Remove --with-gc=simple reference.
21043         Update VM requirements during bootstrap.
21044         Remove -oldas bootstrap description.
21045         Update binutils reference.
21046         Remove comparison failure note.
21047
21048 2010-03-31  Richard Guenther  <rguenther@suse.de>
21049             Zdenek Dvorak  <ook@ucw.cz>
21050             Sebastian Pop  <sebastian.pop@amd.com>
21051
21052         PR middle-end/43464
21053         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
21054         with multiple arguments.
21055         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
21056
21057 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
21058
21059         * graphite-dependences.c (print_pddr): Call print_pdr with an
21060         extra argument.
21061         * graphite-poly.c (debug_pdr): Add an extra argument for the
21062         verbosity level.
21063         (print_pdr): Same.
21064         (print_pbb_domain): Same.
21065         (print_pbb): Same.
21066         (print_scop_context): Same.
21067         (print_scop): Same.
21068         (print_cloog): Same.
21069         (debug_pbb_domain): Same.
21070         (debug_pbb): Same.
21071         (print_pdrs): Same.
21072         (debug_pdrs): Same.
21073         (debug_scop_context): Same.
21074         (debug_scop): Same.
21075         (debug_cloog): Same.
21076         (print_scop_params): Same.
21077         (debug_scop_params): Same.
21078         (print_iteration_domain): Same.
21079         (print_iteration_domains): Same.
21080         (debug_iteration_domain): Same.
21081         (debug_iteration_domains): Same.
21082         (print_scattering_function): Same.
21083         (print_scattering_functions): Same.
21084         (debug_scattering_function): Same.
21085         (debug_scattering_functions): Same.
21086         * graphite-poly.h (debug_pdr): Update declaration.
21087         (print_pdr): Same.
21088         (print_pbb_domain): Same.
21089         (print_pbb): Same.
21090         (print_scop_context): Same.
21091         (print_scop): Same.
21092         (print_cloog): Same.
21093         (debug_pbb_domain): Same.
21094         (debug_pbb): Same.
21095         (print_pdrs): Same.
21096         (debug_pdrs): Same.
21097         (debug_scop_context): Same.
21098         (debug_scop): Same.
21099         (debug_cloog): Same.
21100         (print_scop_params): Same.
21101         (debug_scop_params): Same.
21102         (print_iteration_domain): Same.
21103         (print_iteration_domains): Same.
21104         (debug_iteration_domain): Same.
21105         (debug_iteration_domains): Same.
21106         (print_scattering_function): Same.
21107         (print_scattering_functions): Same.
21108         (debug_scattering_function): Same.
21109         (debug_scattering_functions): Same.
21110
21111 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
21112
21113         * graphite-poly.c (print_scattering_function_1): New.
21114         (print_scattering_function): Call it.
21115         (print_scop_params): Remove spaces at the end of lines.
21116         (print_cloog): New.
21117         (debug_cloog): New.
21118         * graphite-poly.h (print_cloog): Declared.
21119         (debug_cloog): Declared.
21120
21121 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
21122
21123         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
21124         in loop->header.
21125         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
21126         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
21127         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
21128         to switch between adding the IV bump in loop->latch or in loop->header.
21129
21130 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
21131
21132         * graphite-poly.c (print_scattering_function): Pretty print following
21133         the scoplib format.
21134         (print_pdr): Same.
21135         (print_pbb_domain): Same.
21136         (dump_gbb_cases): Same.
21137         (dump_gbb_conditions): Same.
21138         (print_pdrs): Same.
21139         (print_pbb): Same.
21140         (print_scop_params): Same.
21141         (print_scop_context): Same.
21142         (print_scop): Same.
21143         (print_pbb_body): New.
21144         (lst_indent_to): New.
21145         (print_lst): Start new lines with a #.
21146         * graphite-poly.h (pbb_bb): New.
21147         (pbb_index): Use pbb_bb.
21148         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
21149         disjuncts.
21150         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
21151
21152 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
21153
21154         * dwarf2out.c (size_of_die): For -gdwarf-4 use
21155         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
21156         and 0 instead of 1 for dw_val_class_flag.
21157         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
21158         dw_val_class_range_list, dw_val_class_loc_list,
21159         dw_val_class_lineptr and dw_val_class_macptr, use
21160         DW_FORM_flag_present for dw_val_class_flag and
21161         DW_FORM_exprloc for dw_val_class_loc.
21162         (output_die): For -gdwarf-4 print dw_val_class_loc
21163         size as uleb128 instead of 1 or 2 bytes and don't print
21164         anything for dw_val_class_flag.
21165
21166         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
21167         instead of cselib_lookup following by tweaking locs->setting_insn.
21168
21169         PR bootstrap/43596
21170         * cselib.c (cselib_process_insn): Clear cselib_current_insn
21171         even before returning from label, setjmp call or volatile asm
21172         handling.
21173
21174 2010-03-31  Richard Guenther  <rguenther@suse.de>
21175
21176         PR middle-end/43600
21177         * cgraphunit.c (cgraph_output_in_order): Do not allocate
21178         temporary data on stack.
21179
21180 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21181
21182         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
21183         (PUSHSECTION_ASM_OP): Remove.
21184         (POPSECTION_ASM_OP): Remove.
21185         (PUSHSECTION_FORMAT): Remove.
21186         * config/sol2.h (PUSHSECTION_FORMAT): Define.
21187         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
21188         * config/sol2.c (solaris_output_init_fini): Use it.
21189
21190 2010-03-31  Jie Zhang  <jie@codesourcery.com>
21191
21192         PR 43574
21193         * opt-functions.awk (var_type_struct): Use signed char type
21194         for simple variables.
21195
21196 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21197
21198         * config/sol2.c: Include output.h.
21199         (solaris_assemble_visibility): New function.
21200         * config/t-sol2 (sol2.o): Add output.h dependency.
21201         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
21202         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
21203         Redefine.
21204
21205 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
21206
21207         PR target/43580
21208         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
21209         V2SImode or XFmode on PRE_DEC.
21210
21211         PR debug/43557
21212         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
21213         BLKmode.
21214
21215 2010-03-31  Jie Zhang  <jie@codesourcery.com>
21216
21217         PR 43562
21218         * reload.h (caller_save_initialized_p): Declare.
21219         * toplev.c (backend_init_target): Don't call
21220         init_caller_save but set caller_save_initialized_p to false.
21221         * caller-save.c (caller_save_initialized_p): Define.
21222         (init_caller_save): Check caller_save_initialized_p.
21223         * ira.c (ira): Call init_caller_save if flag_caller_saves.
21224
21225 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21226
21227         PR target/39048
21228         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
21229         and soft-fp/t-softfp to tmake_file.
21230         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
21231         (LIBGCC2_TF_CEXT): Define.
21232         (TF_SIZE): Define.
21233
21234 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
21235
21236         PR debug/42977
21237         * cselib.c (n_useless_values): Document handling of debug locs.
21238         (n_useless_debug_values, n_debug_values): New variables.
21239         (new_elt_loc_list): Don't add to debug values, keep count.
21240         (promote_debug_loc): New.
21241         (cselib_reset_table): Zero new variables.
21242         (entry_and_rtx_equal_p): Promote debug locs.
21243         (discard_useless_locs): Increment n_useless_debug_values for
21244         debug values.
21245         (remove_useless_values): Adjust n_useless_values and n_debug_values
21246         with n_useless_debug_values.
21247         (add_mem_for_addr): Promote debug locs.
21248         (cselib_lookup_mem): Likewise.
21249         (cselib_lookup_addr): Renamed to...
21250         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
21251         (cselib_log_lookup): ... this.  Turn into...
21252         (cselib_lookup_addr): ... new wrapper.
21253         (cselib_lookup_from_insn): New.
21254         (cselib_invalidate_regno): Increment n_useless_debug_values for
21255         debug values.
21256         (cselib_invalidate_mem): Likewise.
21257         (cselib_process_insn): Take n_deleted and n_debug_values into
21258         account to guard remove_useless_value call.
21259         (cselib_finish): Zero n_useless_debug_values.
21260         * cselib.h (cselib_lookup_from_insn): Declare.
21261         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
21262         (sched_analyze_2): Likewise.
21263
21264 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
21265
21266         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
21267         functions.
21268         (adjust_mems): Replace narrowing SUBREG of expression containing
21269         just PLUS, MINUS, MULT and ASHIFT of registers and constants
21270         with operations in the narrower mode.
21271
21272         PR debug/43593
21273         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
21274         regs_invalidated_by_call instead all call_used_reg_set registers.
21275
21276 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
21277
21278         PR middle-end/43430
21279         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
21280         pointer comparisons with types_compatible_p.
21281         * tree-vect-stmts.c (vectorizable_call): Same.
21282         (vectorizable_condition): Same.
21283
21284 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21285
21286         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
21287         stack check if the mask would be zero.
21288
21289 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
21290             Jack Howarth  <howarth@bromo.med.uc.edu>
21291
21292         * tree-profile.c (tree_init_ic_make_global_vars): Make static
21293         variables TLS.
21294
21295 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
21296
21297         PR other/25232
21298         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
21299         and __unordtf2.
21300         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
21301         Include ___unordxf2 and ___unordtf2.
21302         * config/i386/libgcc-glibc.ver: Do not define inheritance from
21303         GCC_4.4.0 here.
21304
21305 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
21306
21307         * config/lm32/t-lm32: New file.
21308         * config.gcc: Use the above file when targetting lm32.
21309
21310 2010-03-28  Duncan Sands  <baldrick@free.fr>
21311
21312         * Makefile.in (PLUGIN_HEADERS): Add except.h.
21313
21314 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
21315
21316         PR middle-end/43431
21317         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
21318         Improve vectorization cost model diagnostic.
21319
21320 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
21321
21322         PR middle-end/43436
21323         * tree-vect-data-refs.c (vect_analyze_data_refs): When
21324         compute_data_dependences_for_loop returns false, early exit
21325         and output an extra diagnostic for the failed data reference
21326         analysis.
21327
21328 2010-03-29  Richard Guenther  <rguenther@suse.de>
21329
21330         PR tree-optimization/43560
21331         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
21332         (can_sm_ref_p): Treat stores to readonly locations as trapping.
21333
21334 2010-03-29  Jie Zhang  <jie@codesourcery.com>
21335
21336         PR 43564
21337         * toplev.c (process_options): Set optimization_default_node
21338         and optimization_current_node.
21339         * opts.c (decode_options): Don't set optimization_default_node
21340         and optimization_current_node.
21341
21342 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
21343
21344         * config/rtems.h: Abandon -qrtems_debug.
21345
21346 2010-03-28  Jan Hubicka  <jh@suse.cz>
21347
21348         PR tree-optimization/43505
21349         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
21350         map should not be copied.
21351
21352 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21353
21354         PR middle-end/41674
21355         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
21356         cdtors, set DECL_PRESERVE_P.
21357         * ipa.c (cgraph_externally_visible_p): Return true if declaration
21358         should be preseved.
21359
21360 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
21361
21362         PR tree-optimization/43528
21363         * stor-layout.c (place_field): Check that constant fits into
21364         unsigned HWI when skipping calculation of MS bitfield layout.
21365
21366 2010-03-27  Jan Hubicka  <jh@suse.cz>
21367
21368         PR middle-end/43391
21369         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
21370         notice_global_symbol work.
21371
21372 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
21373
21374         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
21375         instead of dwarf2out_decl.
21376         (struct var_loc_node): Remove section_label field.
21377         (dwarf2out_function_decl): New function.
21378         (dwarf2out_var_location): Don't set section_label field.
21379         (dwarf2out_begin_function): Don't empty decl_loc_table here.
21380
21381 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
21382
21383         PR tree-optimization/43544
21384         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
21385         First argument for builtin vectorized function hook is now a
21386         tree to be able to distinguish between machine specific and
21387         standard builtins.
21388         * targhooks.c (default_builtin_vectorized_function): Ditto.
21389         * targhooks.h (default_builtin_vectorized_function): Ditto.
21390         * target.h (struct gcc_target): Ditto.
21391         * tree-vect-stmts.c (vectorizable_function): Ditto.
21392         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
21393         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
21394         Ditto.
21395
21396 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
21397
21398         PR c/43381
21399         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
21400         nested binding iff it is a FUNCTION_DECL.
21401         (store_parm_decls_newstyle): Pass nested=true to bind for
21402         FUNCTION_DECLs amongst parameters.
21403
21404 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
21405
21406         * var-tracking.c (vt_expand_loc_callback): Don't run
21407         cselib_expand_value_rtx_cb in dummy mode if
21408         cselib_dummy_expand_value_rtx_cb returned false.
21409
21410         * var-tracking.c (emit_note_insn_var_location): For one part
21411         notes with offset 0, don't add EXPR_LIST around the location.
21412         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
21413         add_location_or_const_value_attribute): Adjust for that change.
21414
21415         PR debug/43540
21416         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
21417         into first operand and location into second.
21418         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
21419         dw_cfi_oprnd_loc for DW_CFA_expression.
21420         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
21421         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
21422         assume first argument is regnum and second argument is location.
21423
21424 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
21425
21426         PR target/42113
21427         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
21428         of scratch register to DImode.  Split to DImode comparison operator.
21429         Use SImode subreg of scratch register in the multiplication.
21430         (*cmp_sadd_sidi): Ditto.
21431         (*cmp_ssub_si): Ditto.
21432         (*cmp_ssub_sidi): Ditto.
21433
21434 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
21435
21436         PR target/43524
21437         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
21438         Remove invalid assert and wrong comment.
21439
21440 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
21441
21442         PR debug/43516
21443         * flags.h (final_insns_dump_p): New extern.
21444         * final.c (final_insns_dump_p): New variable.
21445         (rest_of_clean_state): Set it before -fdump-final-insns=
21446         dumping, clear afterwards.
21447         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
21448         MEM_ALIAS_SET on MEMs.
21449
21450 2010-03-26  David S. Miller  <davem@davemloft.net>
21451
21452         * configure.ac: Fix sparc GOTDATA_OP bug check.
21453         * configure: Rebuild.
21454
21455 2010-03-26  Alan Modra  <amodra@gmail.com>
21456
21457         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
21458
21459 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21460
21461         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
21462         TLS_SECTION_ASM_FLAG.
21463
21464 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
21465
21466         PR bootstrap/43511
21467         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
21468         Clear first_function_block_is_cold.
21469
21470         PR c/43385
21471         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
21472         argument if the argument is truth_value_p.
21473
21474 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
21475
21476         * config/rs6000/constraints.md: Update copyright year for my changes.
21477
21478         PR target/43484
21479         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
21480         used in reg+reg addressing, swap registers.
21481
21482 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
21483
21484         PR debug/43293
21485         * target.h (struct gcc_target): Add code_end hook.
21486         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
21487         if not yet defined.
21488         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
21489         * toplev.c (compile_file): Call targetm.asm_out.code_end
21490         hook before unwind info/debug info output.
21491         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
21492         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
21493         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
21494         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
21495         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
21496         * config/i386/i386.c (ix86_file_end): Renamed to...
21497         (ix86_code_end): ... this.  Make static.  Don't call
21498         file_end_indicate_exec_stack.  Emit unwind info using
21499         final_start_function/final_end_function.
21500         (darwin_x86_file_end): Remove.
21501         (TARGET_ASM_CODE_END): Define.
21502         * config/i386/i386.h (TARGET_ASM_FILE_END,
21503         NEED_INDICATE_EXEC_STACK): Don't define.
21504         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
21505         (TARGET_ASM_FILE_END): Define to darwin_file_end.
21506         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
21507         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
21508
21509         PR target/43498
21510         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
21511         at the beginning and final_end_function at the end.
21512         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
21513
21514 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21515
21516         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
21517         and Sun as TLS syntax.
21518         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
21519         * configure: Regenerate.
21520         * config.in: Regenerate.
21521         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
21522         (default_elf_asm_named_section): Use it.
21523         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
21524         (i386_output_dwarf_dtprel): Likewise.
21525         (output_addr_const_extra): Likewise.
21526         (output_pic_addr_const): Lowercase @GOTTPOFF.
21527         (output_addr_const_extra): Likewise.
21528         (output_pic_addr_const): Lowercase @GOTNTPOFF.
21529         (output_addr_const_extra): Likewise.
21530         (output_pic_addr_const): Lowercase @INDNTPOFF.
21531         (output_addr_const_extra): Likewise.
21532         (output_pic_addr_const): Lowercase @NTPOFF.
21533         (output_addr_const_extra): Likewise.
21534         (output_pic_addr_const): Lowercase @TPOFF.
21535         (output_addr_const_extra): Likewise.
21536         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
21537         (*tls_global_dynamic_64): Likewise.
21538         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
21539         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
21540
21541         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
21542         (ASM_OUTPUT_TLS_COMMON): Use it.
21543         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
21544
21545         PR target/38118
21546         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
21547         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
21548         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
21549         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
21550         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
21551         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
21552
21553 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21554
21555         * config/i386/i386.c (override_options): Don't accept
21556         -mtls-dialect=sun any longer.
21557         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
21558         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
21559         (*tls_local_dynamic_base_32_sun): Likewise.
21560         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
21561
21562 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
21563
21564         PR debug/43508
21565         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
21566         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
21567
21568         PR debug/43479
21569         * ira.c (adjust_cleared_regs): New function.
21570         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
21571
21572         PR debug/19192
21573         PR debug/43479
21574         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
21575         from gimple_block.
21576         * expr.c (expand_expr_real): Restore previous
21577         curr_insn_source_location and curr_insn_block after
21578         expand_expr_real_1 call.
21579         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
21580         instead of expand_expr_real_1.
21581
21582 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
21583
21584         PR rtl-optimization/43413
21585         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
21586         hard regs too.
21587
21588 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
21589
21590         PR target/43348
21591         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
21592         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
21593
21594 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
21595
21596         * config/i386/i386.c (ix86_target_string): Add -mfma.
21597         Fix a typo in comment.
21598
21599 2010-03-22  Mike Stump  <mikestump@comcast.net>
21600
21601         PR target/23071
21602         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
21603         Don't overly align based upon packed packed fields.
21604
21605 2010-03-22  Jason Merrill  <jason@redhat.com>
21606
21607         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
21608         Use () rather than [], and move before the element type.
21609
21610 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21611
21612         * doc/configfiles.texi (Configuration Files): Removed
21613         fixinc/Makefile*, intl/Makefile.*.
21614         * doc/makefile.texi: Fixed markup. Abstract from version
21615         control system used.
21616         (Makefile): Removed obsolete gcc/java/parse.y example.
21617         * doc/sourcebuild.texi: Likewise.
21618         (Top Level): Added config, gnattools, libdecnumber, libgcc,
21619         libgomp, libssp.  Removed fastjar.
21620         (Miscellaneous Docs): Clarify location.
21621         Added COPYING3, COPYING3.LIB.
21622         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
21623
21624 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21625
21626         PR target/38085
21627         * config/i386/i386.c (x86_function_profiler)
21628         [!NO_PROFILE_COUNTERS]: Fix typo.
21629         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
21630         instead of callq.
21631
21632 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
21633             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21634
21635         * doc/sourcebuild.texi (Test Directives): Split into six
21636         subsections, with most of the current text in new subsections
21637         Directives, Selectors, and Final Actions.
21638         (Directives): Split list of test directives into multiple
21639         subsubsections.
21640         (Selectors): Describe use and syntax of selectors.
21641         (Effective-Target Keywords): Describe all existing keywords.
21642         (Add Options): Describe features for dg-add-options.
21643         (Require Support): Describe variants of dg-require-support.
21644         (Final Actions): Describe commands to use in dg-final.
21645
21646 2010-03-22  Michael Matz  <matz@suse.de>
21647
21648         PR middle-end/43475
21649         * recog.c (validate_replace_rtx_group): Replace also in
21650         REG_EQUAL and REG_EQUIV notes.
21651
21652 2010-03-22  Richard Guenther  <rguenther@suse.de>
21653
21654         PR tree-optimization/43390
21655         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
21656         sure vector extracts are type correct.
21657
21658 2010-03-22  Richard Guenther  <rguenther@suse.de>
21659
21660         PR middle-end/40106
21661         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
21662         x * sqrt (x) even when optimizing for size if the target
21663         has native support for sqrt.
21664
21665 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
21666
21667         * varasm.c (make_decl_rtl_for_debug): Also clear
21668         flag_mudflap for the duration of make_decl_rtl call.
21669
21670         PR debug/43443
21671         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
21672         locs from preserved VALUEs.
21673
21674 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21675
21676         PR middle-end/42718
21677         * pa.md (movmemsi): Set align to one if zero.
21678         (movmemdi): Likewise.
21679
21680 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
21681
21682         PR target/42321
21683         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
21684         with their corresponding prologue pushes.
21685
21686 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
21687
21688         PR target/43156
21689         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
21690         at the begining or end.
21691         (spu_expand_epilogue): Likewise.
21692
21693 2010-03-20  Richard Guenther  <rguenther@suse.de>
21694
21695         PR rtl-optimization/43438
21696         * combine.c (make_extraction): Properly zero-/sign-extend an
21697         extraction of the low part of a CONST_INT.  Also handle
21698         CONST_DOUBLE.
21699
21700 2010-03-19  Mike Stump  <mikestump@comcast.net>
21701
21702         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
21703         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
21704         (override_options): Use SUBTARGET32_DEFAULT_CPU.
21705
21706 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
21707
21708         PR c/43211
21709         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
21710         an error.
21711
21712 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
21713
21714         PR rtl-optimization/42258
21715         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
21716         use that may match DEF.
21717
21718         PR target/40697
21719         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
21720         the cost of loading the constant rather than assuming
21721         COSTS_N_INSNS (1).
21722         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
21723         outer code is AND, do the same tests as the andsi3 expander and
21724         return COSTS_N_INSNS (1) if and is cheap.
21725
21726         * optabs.c (avoid_expensive_constant): Fix formatting.
21727
21728 2010-03-19  Michael Matz  <matz@suse.de>
21729
21730         PR c++/43116
21731         * attribs.c (decl_attributes): When rebuilding a function pointer
21732         type use the same qualifiers as the original pointer type.
21733
21734 2010-03-19  Martin Jambor  <mjambor@suse.cz>
21735
21736         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
21737         and is_gimple_ip_invariant_address.
21738
21739 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21740
21741         Revert
21742         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21743
21744         * config/arm/arm.c (arm_override_options): Turn off
21745         flag_dwarf2_cfi_asm for AAPCS variants.
21746
21747 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21748
21749         PR target/43399
21750         * config/arm/arm.c (emit_multi_reg_push): Update comments.
21751         Use PRE_MODIFY instead of PRE_DEC.
21752         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
21753         (vfp_emit_fstmd): Likewise.
21754
21755 2010-03-19  Michael Matz  <matz@suse.de>
21756
21757         PR target/43305
21758         * builtins.c (expand_builtin_interclass_mathfn,
21759         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
21760         if that fails.
21761
21762 2010-03-19  Richard Guenther  <rguenther@suse.de>
21763
21764         PR tree-optimization/43415
21765         * tree-ssa-pre.c (phi_translate): Split out worker to ...
21766         (phi_translate_1): ... this.
21767         (phi_translate): Move all caching here.  Cache all NARY
21768         and REFERENCE translations.
21769
21770 2010-03-19  David S. Miller  <davem@davemloft.net>
21771
21772         With help from Eric Botcazou.
21773         * config/sparc/sparc.c: Include dwarf2out.h.
21774         (emit_pic_helper): Delete.
21775         (pic_helper_symbol_name): Delete.
21776         (pic_helper_emitted_p): Delete.
21777         (pic_helper_needed): New.
21778         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
21779         (get_pc_thunk_name): New.
21780         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
21781         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
21782         Set pic_helper_needed to true.  Don't call emit_pic_helper.
21783         (sparc_expand_prologue): Update load_pic_register call.
21784         (sparc_output_mi_thunk): Likewise.
21785         (sparc_file_end): Emit a hidden comdat symbol for the PIC
21786         thunk if possible.  Output CFI information as needed.
21787
21788 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
21789             Jack Howarth  <howarth@bromo.med.uc.edu>
21790
21791         PR target/36399
21792         * config/i386/i386.h: Fix ABI on darwin x86-32.
21793
21794 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
21795
21796         * tree.h: Declare make_decl_rtl_for_debug.
21797         * varasm.c (make_decl_rtl_for_debug): New.
21798         * dwarf2out.c (rtl_for_decl_location): Call it.
21799         * cfgexpand.c (expand_debug_expr): Call it.
21800
21801 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
21802
21803         PR bootstrap/43399
21804         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
21805         mem_mode.
21806
21807         PR bootstrap/43403
21808         * var-tracking.c (vt_init_cfa_base): Do nothing if
21809         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
21810
21811 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
21812
21813         PR debug/42873
21814         * var-tracking.c (canonicalize_vars_star): New.
21815         (dataflow_post_merge_adjust): Use it.
21816
21817 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
21818
21819         PR debug/43058
21820         * var-tracking.c (non_suitable_const): New function.
21821         (add_uses): For DEBUG_INSNs with constants, don't record any
21822         value, instead just the constant value itself.
21823         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
21824         is not VAR_LOC_UNKNOWN_P, set var to the constant.
21825         (emit_notes_in_bb): Likewise.
21826         (emit_note_insn_var_location): For onepart variables if
21827         cur_loc is a VOIDmode constant, use DECL_MODE.
21828
21829 2010-03-18  Martin Jambor  <mjambor@suse.cz>
21830
21831         PR middle-end/42450
21832         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
21833         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
21834         all non-clones.  Moved call redirection...
21835         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
21836         (cgraph_materialize_all_clones): Dispose of all
21837         combined_args_to_skip bitmaps.
21838         (verify_cgraph_node): Do not check for edges pointing to wrong
21839         nodes in inline clones.
21840         * tree-inline.c (copy_bb): Call
21841         cgraph_redirect_edge_call_stmt_to_callee.
21842         * ipa.c (cgraph_remove_unreachable_nodes): Call
21843         cgraph_node_remove_callees even when there are used clones.
21844
21845 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
21846
21847         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
21848
21849 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
21850
21851         PR target/43383
21852         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
21853         for 32bit.
21854
21855 2010-03-18  Michael Matz  <matz@suse.de>
21856
21857         PR middle-end/43419
21858         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
21859         into sqrt(x) if we need to preserve signed zeros.
21860
21861 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
21862             Eric Botcazou  <ebotcazou@adacore.com>
21863
21864         PR rtl-optimization/43360
21865         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
21866         note if we don't know its invariant status.
21867
21868 2010-03-18  Michael Matz  <matz@suse.de>
21869
21870         PR tree-optimization/43402
21871         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
21872         PHI chains of ssa names registered for update.
21873
21874 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
21875
21876         PR target/42427
21877         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
21878         non-offsettable and pre_modify update addressing.
21879         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
21880         and "2" alternatives "#".
21881         (*movdd_softfloat32): Make all alternatives "#";
21882         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
21883         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
21884         (*movdf_softfloat32): Make all alternatives "#";
21885         (movdi): Use the new DIFD mode iterator to create a common splitter
21886         for movdi, movdf and movdd patterns.
21887
21888 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
21889
21890         * common.opt (dumpdir): Remove redundant tab.
21891
21892 2010-03-17  Martin Jambor  <mjambor@suse.cz>
21893
21894         PR tree-optimization/43347
21895         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
21896         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
21897
21898 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
21899
21900         PR rtl-optimization/42216
21901         * regrename.c (create_new_chain): New function, broken out from...
21902         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
21903         appending a use to an empty chain.
21904         (build_def_use): Remove previous changes that convert OP_INOUT to
21905         OP_OUT operands; instead detect the case where an OP_INOUT operand
21906         uses a previously untracked register and create an empty chain for it.
21907
21908 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21909
21910         * doc/extend.texi (Function Attributes): Rewrite unfinished
21911         sentence in ms_abi documentation.
21912
21913 2010-03-17  Alan Modra  <amodra@gmail.com>
21914
21915         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
21916         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
21917         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
21918         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
21919
21920 2010-03-16  Richard Henderson  <rth@redhat.com>
21921
21922         PR middle-end/43365
21923         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
21924         (lower_try_finally): Save and restore eh_seq around the expansion
21925         of the try-finally.
21926
21927 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
21928
21929         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
21930         statements before splitting block.
21931
21932 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21933
21934         * doc/sourcebuild.texi (Testsuites): Fix markup.
21935         Use pathnames relative to gcc/testsuite.
21936         (Test Directives): Move description of how timeout is determined.
21937         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
21938         (C Tests): Correct gcc.misc-tests directory.
21939         Framework tests now live in gcc.test-framework.
21940
21941 2010-03-16  Richard Guenther  <rguenther@suse.de>
21942
21943         PR middle-end/43379
21944         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
21945         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
21946
21947 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
21948             Alexandre Oliva  <aoliva@redhat.com>
21949
21950         PR tree-optimization/42917
21951         * lambda-code.c (remove_iv): Skip debug statements.
21952         (lambda_loopnest_to_gcc_loopnest): Likewise.
21953         (not_interesting_stmt): Debug statements are not interesting.
21954
21955 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
21956
21957         PR debug/43051
21958         PR debug/43092
21959         * cselib.c (cselib_preserve_constants,
21960         cfa_base_preserved_val): New static variables.
21961         (preserve_only_constants): New function.
21962         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
21963         clear its REG_VALUES.  If cselib_preserve_constants, don't
21964         empty the whole hash table, but preserve there VALUEs with constants,
21965         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
21966         (cselib_preserve_cfa_base_value): New function.
21967         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
21968         (cselib_init): Change argument to int bitfield.  Set
21969         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
21970         is in it.
21971         (cselib_finish): Clear cselib_preserve_constants and
21972         cfa_base_preserved_val.
21973         * cselib.h (enum cselib_record_what): New enum.
21974         (cselib_init): Change argument to int.
21975         (cselib_preserve_cfa_base_value): New prototype.
21976         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
21977         * dse.c (dse_step1): Likewise.
21978         * cfgcleanup.c (thread_jump): Likewise.
21979         * sched-deps.c (sched_analyze): Likewise.
21980         * gcse.c (local_cprop_pass): Likewise.
21981         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
21982         If FN is non-NULL, call the callback always and whenever it returns
21983         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
21984         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
21985         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
21986         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
21987         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
21988         * var-tracking.c: Include recog.h.
21989         (bb_stack_adjust_offset): Remove.
21990         (vt_stack_adjustments): Don't call it, instead just gather the
21991         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
21992         (adjust_stack_reference): Remove.
21993         (compute_cfa_pointer): New function.
21994         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
21995         (struct adjust_mem_data): New type.
21996         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
21997         functions.
21998         (get_address_mode): New function.
21999         (replace_expr_with_values): Use it.
22000         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
22001         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
22002         (adjust_sets): Remove.
22003         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
22004         Use get_address_mode.
22005         (get_adjusted_src): Remove.
22006         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
22007         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
22008         (add_with_sets): Don't call adjust_sets.
22009         (fp_setter, vt_init_cfa_base): New functions.
22010         (vt_initialize): Change return type to bool.  Move most of pool etc.
22011         initialization to the beginning of the function from end.  Pass
22012         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
22013         If !frame_pointer_needed, call vt_stack_adjustment before mos
22014         vector is filled, call vt_init_cfa_base if argp/framep has been
22015         eliminated to sp.  If frame_pointer_needed and argp/framep has
22016         been eliminated to hard frame pointer, set
22017         hard_frame_pointer_adjustment and call vt_init_cfa_base after
22018         encountering fp setter in the prologue.  For MO_ADJUST, call
22019         log_op_type before pusing the op into mos vector, not afterwards.
22020         Call adjust_insn before cselib_process_insn/add_with_sets,
22021         call cancel_changes (0) afterwards.
22022         (variable_tracking_main_1): Adjust for vt_initialize calling
22023         vt_stack_adjustments and returning whether it succeeded or not.
22024
22025 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
22026
22027         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
22028         debug statements.
22029
22030 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
22031
22032         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
22033         has been set.
22034         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
22035         drap_reg has not been set.
22036
22037 2010-03-15  Michael Matz  <matz@suse.de>
22038
22039         PR middle-end/43300
22040         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
22041         use it to expand block copies.
22042         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
22043         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
22044         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
22045
22046 2010-03-15  Richard Guenther  <rguenther@suse.de>
22047
22048         PR tree-optimization/43367
22049         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
22050         elimination check.
22051
22052 2010-03-15  Richard Guenther  <rguenther@suse.de>
22053
22054         PR tree-optimization/43317
22055         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
22056
22057 2010-03-15  Martin Jambor  <mjambor@suse.cz>
22058
22059         PR tree-optimization/43141
22060         * tree-sra.c (create_abstract_origin): New function.
22061         (modify_function): Call create_abstract_origin.
22062
22063 2010-03-15  Chris Demetriou  <cgd@google.com>
22064
22065         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
22066         wasn't copied.
22067
22068 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22069
22070         PR middle-end/43354
22071         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
22072         call insert_out_of_ssa_copy for default definitions.
22073
22074 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22075
22076         * graphite-clast-to-gimple.c (my_long_long): Defined.
22077         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
22078         * graphite-sese-to-poly.c (my_long_long): Defined.
22079         (scop_ivs_can_be_represented): Use it.
22080
22081 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22082
22083         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
22084         graphite-max-bbs-per-function, and loop-block-tile-size.
22085         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
22086         with "maximum".
22087         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
22088
22089 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22090
22091         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
22092         forward declaration.
22093         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
22094         (add_upper_bounds_from_estimated_nit): New.
22095         (build_loop_iteration_domains): Use it.
22096
22097 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22098
22099         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
22100
22101 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22102
22103         PR middle-end/43306
22104         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
22105         should be an INTEGER_CST.  Also handle CASE_CONVERT.
22106
22107 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22108
22109         * graphite.c (graphite_initialize): To bound the number of bbs per
22110         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
22111         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
22112         * doc/invoke.texi: Document it.
22113
22114 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22115
22116         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
22117         * graphite-sese-to-poly.h (build_poly_scop): Same.
22118
22119 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
22120
22121         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
22122         the number of parameters in the scop.  Use as an upper bound
22123         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
22124         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
22125         * doc/invoke.texi: Document it.
22126
22127 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
22128
22129         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
22130         * doc/c-tree.texi: Remove.
22131         * doc/generic.texi: Merge c-tree.texi here.
22132         * doc/gccint.texi (Trees): Remove menu entry.
22133         (c-tree.texi): Remove @include.
22134         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
22135         * doc/languages.texi (Reading RTL): Ditto.
22136
22137 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
22138
22139         PR target/42869
22140         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
22141
22142 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
22143
22144         PR middle-end/42431
22145         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
22146         code added to work around reload clobbering CONST insns.
22147
22148 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
22149
22150         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
22151         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
22152         (cselib_preserve_only_values): Remove retain argument, don't
22153         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
22154         * cselib.h (cselib_preserve_only_values): Remove retain argument.
22155         * var-tracking.c (micro_operation): Move insn field before union.
22156         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
22157         (struct variable_tracking_info_def): Remove n_mos field, change
22158         mos into a vector of micro_operations.
22159         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
22160         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
22161         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
22162         changing into a vector.
22163         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
22164         come before all other uops generated by add_stores.
22165         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
22166         argument removal.
22167         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
22168         a vector.  Run just one pass over the bbs instead of separate counting
22169         and computation phase.
22170         (vt_finalize): Free VTI (bb)->mos vector instead of array.
22171
22172         PR debug/43329
22173         * tree-inline.c (remap_decls): Put old_var rather than origin_var
22174         into *nonlocalized_list vector.
22175         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
22176         even if origin is non-NULL.
22177         (gen_variable_die): Likewise.
22178         (process_scope_var): Don't change origin.
22179         (gen_decl_die): Likewise.
22180         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
22181         before adding new edges instead of after it, fix moving over
22182         debug stmts.
22183
22184 2010-03-11  David S. Miller  <davem@davemloft.net>
22185
22186         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
22187         of four.
22188         * configure: Rebuild.
22189
22190 2010-03-11  Martin Jambor  <mjambor@suse.cz>
22191
22192         PR tree-optimization/43257
22193         * tree.c (assign_assembler_name_if_neeeded): New function.
22194         (free_lang_data_in_cgraph): Assembler name assignment moved to the
22195         above new function.
22196         * tree.h (assign_assembler_name_if_neeeded): Declare.
22197         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
22198         the function if needed.
22199
22200 2010-03-11  Chris Demetriou  <cgd@google.com>
22201
22202         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
22203         include/stdint-gcc.h, and include/stdint.h world-readable.
22204
22205 2010-03-11  Richard Guenther  <rguenther@suse.de>
22206
22207         PR tree-optimization/43255
22208         * tree-vrp.c (process_assert_insertions_for): Do not insert
22209         asserts for trivial conditions.
22210
22211 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22212
22213         PR tree-optimization/43280
22214         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
22215         generation.  Move calculation of size out of the if branch.
22216         (find_bswap): Modify compare number generation.
22217
22218 2010-03-11  Richard Guenther  <rguenther@suse.de>
22219
22220         PR lto/43200
22221         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
22222         (input_gimple_stmt): Fixup handled component types during
22223         operand read.  Also fix up decls in ADDR_EXPRs.
22224
22225 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
22226
22227         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
22228         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
22229
22230 2010-03-10  Jan Hubicka  <jh@suse.cz>
22231
22232         PR c/43288
22233         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
22234         * varasm.c (get_variable_section): Don't do that here...
22235         (make_decl_rtl): ... and here.
22236         (do_assemble_alias): Produce decl RTL.
22237         (assemble_alias): Likewise.
22238
22239 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
22240
22241         PR debug/43290
22242         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
22243         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
22244         of fde->vdrap_reg.
22245         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
22246         (based_loc_descr): Only express drap or vdrap regno based expressions
22247         using DW_OP_fbreg when not optimizing.
22248         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
22249         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
22250         REG_CFA_SET_VDRAP note.
22251
22252 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
22253
22254         PR tree-optimization/43236
22255         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
22256         error in calculation of base address in reverse iteration case.
22257         (generate_builtin): Take number of latch executions if the statement
22258         is in the latch.
22259
22260 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
22261
22262         PR middle-end/42859
22263         * tree-eh.c: Include pointer-set.h.
22264         (lower_eh_dispatch): Filter out duplicate case labels and
22265         remove the unneeded edge when the label is unused.  Return
22266         true when some edges are removed.
22267         (execute_lower_eh_dispatch): When any lowering resulted in
22268         removing an edge, also delete unreachable blocks.
22269
22270 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
22271
22272         PR bootstrap/43287
22273         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
22274         UNSPEC_MACHOPIC_OFFSET.
22275
22276 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
22277
22278         PR target/43294
22279         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
22280         (m68k_delegitimize_address): New function.
22281
22282 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
22283
22284         PR debug/43299
22285         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
22286
22287         PR debug/43299
22288         * var-tracking.c (adjust_sets): New function.
22289         (count_with_sets, add_with_sets): Use it.
22290         (get_adjusted_src): New inline function.
22291         (add_stores): Use it.
22292
22293         PR debug/43304
22294         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
22295         call cselib_dummy_expand_value_rtx_cb instead of
22296         cselib_expand_value_rtx_cb.
22297
22298         PR debug/43293
22299         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
22300         * config/i386/i386.c: Include debug.h and dwarf2out.h.
22301         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
22302         and .cfi_endproc around the pic thunks.
22303         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
22304         all queued unwind info register saves are saved before the call.
22305         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
22306         considered as sp-=4 for unwind info and the pop as sp+=4 which
22307         also clobbers dest, but doesn't actually restore it.
22308
22309         PR debug/43290
22310         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
22311         RTX_FRAME_RELATED_P.
22312
22313 2010-03-09  Jie Zhang  <jie@codesourcery.com>
22314
22315         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
22316         whitespaces in output template.
22317
22318 2010-03-09  Jie Zhang  <jie@codesourcery.com>
22319
22320         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
22321         out array boundary.
22322
22323 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
22324
22325         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
22326         builtins.exp in a separate job.
22327
22328 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22329
22330         * graphite-sese-to-poly.c (add_param_constraints): Use
22331         lower_bound_in_type and upper_bound_in_type.
22332
22333 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22334
22335         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
22336         instead of unsigned_type_node.
22337
22338 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22339             Reza Yazdani  <reza.yazdani@amd.com>
22340
22341         PR middle-end/43065
22342         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
22343         on pointer type parameters.
22344
22345 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
22346
22347         PR middle-end/42644
22348         PR middle-end/42130
22349         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
22350         handle conversions from pointer to integers.
22351         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
22352         induction variable, to be able to work with code generated by CLooG.
22353         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
22354         (build_poly_scop): Bail out if we cannot codegen a loop.
22355
22356 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
22357
22358         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
22359         code generation with gloog_error.
22360
22361 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22362
22363         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
22364         Call fold_convert on all the returned values.
22365         (expand_scalar_variables_expr): Pass to
22366         expand_scalar_variables_ssa_name the type of the resulting expression.
22367
22368 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22369
22370         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
22371         ppl_min_for_le_pointset.
22372         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
22373         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
22374
22375 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22376
22377         * graphite-dependences.c (map_into_dep_poly): Removed.
22378         (dependence_polyhedron_1): Use combine_context_id_scat.
22379
22380 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22381
22382         * graphite-poly.h (struct poly_scattering): Add layout documentation.
22383         (struct poly_bb): Same.
22384         (combine_context_id_scat): New.
22385
22386 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22387
22388         PR middle-end/42326
22389         * sese.c (name_defined_in_loop_p): Return false for default
22390         definitions.
22391
22392 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22393
22394         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
22395         and clean up the logic.
22396
22397 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
22398
22399         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
22400         early return.
22401
22402 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
22403
22404         * var-tracking.c (remove_cselib_value_chains): Define only for
22405         ENABLE_CHECKING.
22406         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
22407         delete_slot_part, emit_notes_for_differences_1): Don't call
22408         remove_cselib_value_chains here.
22409         (set_slot_part, emit_notes_for_differences_2): Don't call
22410         add_cselib_value_chains here.
22411         (preserved_values): New vector.
22412         (preserve_value): New function.
22413         (add_uses, add_stores, vt_add_function_parameters): Use it
22414         instead of cselib_preserve_value.
22415         (changed_values_stack): New vector.
22416         (check_changed_vars_0): New function.
22417         (check_changed_vars_1, check_changed_vars_2): Use it.
22418         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
22419         changed_values_stack VALUEs.
22420         (vt_emit_notes): For all preserved_values call
22421         add_cselib_value_chains.  If ENABLE_CHECKING call
22422         remove_cselib_value_chains before verifying value_chains is empty.
22423         Initialize and free changed_values_stack.
22424         (vt_initialize): Initialize preserved_values.
22425         (vt_finalize): Free preserved_values.
22426
22427 2010-03-08  Richard Guenther  <rguenther@suse.de>
22428
22429         PR tree-optimization/43269
22430         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
22431         region detection.
22432
22433 2010-03-08  Martin Jambor  <mjambor@suse.cz>
22434
22435         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
22436         (ipa_is_param_called): Removed.
22437         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
22438         (ipa_print_node_params): Do not print the called flag.
22439         (ipa_write_node_info): Do not stream the called flag.
22440         (ipa_read_node_info): Likewise.
22441
22442 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
22443
22444         PR debug/43176
22445         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
22446         * cselib.c (struct expand_value_data): Add dummy field.
22447         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
22448         dummy to false.
22449         (cselib_dummy_expand_value_rtx_cb): New function.
22450         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
22451         any rtl.
22452         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
22453         * var-tracking.c: Include pointer-set.h.
22454         (variable): Change n_var_parts to char from int.  Add
22455         cur_loc_changed and in_changed_variables fields.
22456         (variable_canonicalize): Remove.
22457         (shared_var_p): New inline function.
22458         (unshare_variable): Maintain cur_loc_changed and
22459         in_changed_variables fields.  If var was in changed_variables,
22460         replace it there with new_var.  Just copy cur_loc instead of
22461         resetting it to something else.
22462         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
22463         (dataflow_set_union): Don't call variable_canonicalize.
22464         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
22465         of their DEBUG_EXPR_TREE_DECLs.
22466         (canonicalize_loc_order_check): Verify that cur_loc is NULL
22467         and in_changed_variables and cur_loc_changed is false.
22468         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
22469         and cur_loc_changed.  Don't update cur_loc here.
22470         (variable_merge_over_src): Don't call variable_canonicalize.
22471         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
22472         removing loc that is equal to cur_loc, clear cur_loc,
22473         set cur_loc_changed and ensure variable_was_changed is called.
22474         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
22475         compare pointers in cur_loc check, if it is equal to loc,
22476         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
22477         (variable_different_p): Remove compare_current_location argument,
22478         don't compare cur_loc.
22479         (dataflow_set_different_1): Adjust variable_different_p caller.
22480         (variable_was_changed): If dv had some var in changed_variables
22481         already, reset in_changed_variables flag for it and propagate
22482         cur_loc_changed over to the new variable.  On empty var
22483         always set cur_loc_changed.  Set in_changed_variables on whatever
22484         var is added to changed_variables.
22485         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
22486         Use shared_var_p.  When removing loc that is equal to cur_loc,
22487         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
22488         end, don't set it to something else, just call variable_was_changed.
22489         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
22490         loc being removed, clear cur_loc and set cur_loc_changed.
22491         Set cur_loc_changed if all locations have been removed.
22492         (struct expand_loc_callback_data): New type.
22493         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
22494         allocated.  Always create SUBREGs if simplify_subreg failed.
22495         Prefer to use cur_loc, when that fails and still in
22496         changed_variables (and seen first time) recompute it.  Set
22497         cur_loc_changed of variables which had to change cur_loc and
22498         compute elcd->cur_loc_changed if any of the subexpressions used
22499         had to change cur_loc.
22500         (vt_expand_loc): Adjust to pass arguments in
22501         expand_loc_callback_data structure.
22502         (vt_expand_loc_dummy): New function.
22503         (emitted_notes): New variable.
22504         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
22505         that weren't used for any other decl in current
22506         emit_notes_for_changes call call vt_expand_loc_dummy to update
22507         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
22508         first loc_chain location if NULL before.  Always use just
22509         cur_loc instead of first loc_chain location.  When cur_loc_changed
22510         is false, when not --enable-checking=rtl just don't emit any note.
22511         When rtl checking, compute the note and assert it is the same
22512         as previous note.  Clear cur_loc_changed and in_changed_variables
22513         at the end before removing from changed_variables.
22514         (check_changed_vars_3): New function.
22515         (emit_notes_for_changes): Traverse changed_vars to call
22516         check_changed_vars_3 on each changed var.
22517         (emit_notes_for_differences_1): Clear cur_loc_changed and
22518         in_changed_variables.  Recompute cur_loc of new_var.
22519         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
22520         (vt_emit_notes): Initialize and destroy emitted_notes.
22521
22522 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
22523
22524         PR rtl-optimization/42220
22525         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
22526         Use verify_reg_tracked to determine if we should use OP_OUT rather
22527         than OP_INOUT.
22528         (build_def_use): If we see an in-out operand for a register that we
22529         know nothing about, treat is an output if possible, fail the block if
22530         not.
22531
22532 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
22533
22534         PR debug/42897
22535         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
22536         permanently.
22537
22538 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
22539
22540         PR debug/42897
22541         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
22542         uses of relevant DEFs that are dead outside the loop too.
22543
22544 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
22545
22546         * var-tracking.c (dataflow_set_merge): Swap src and src2.
22547         Reverted:
22548         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
22549         PR debug/41371
22550         * var-tracking.c (values_to_unmark): New variable.
22551         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
22552         values_to_unmark vector.  Moved body to...
22553         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
22554         instead queue it into values_to_unmark vector.
22555         (vt_find_locations): Free values_to_unmark vector.
22556
22557 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
22558
22559         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
22560         (site.exp): Export them when plugins are enabled.
22561
22562 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
22563
22564         PR middle-end/42326
22565         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
22566         that contain scevs.
22567         (chrec_fold_multiply): Same.
22568
22569 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
22570
22571         PR c/43248
22572         * c-decl.c (build_compound_literal): Return early if init is
22573         an error_mark_node.
22574
22575 2010-03-04  Martin Jambor  <mjambor@suse.cz>
22576
22577         PR tree-optimization/43164
22578         PR tree-optimization/43191
22579         * tree-sra.c (type_consists_of_records_p): Reject records with
22580         zero-size bit-fields at the end.
22581
22582 2010-03-04  Mike Stump  <mikestump@comcast.net>
22583
22584         * Makefile.in (TAGS): Remove *.y.
22585
22586 2010-03-04  Richard Guenther  <rguenther@suse.de>
22587
22588         PR tree-optimization/40761
22589         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
22590         in reverse order.
22591         (my_rev_post_order_compute): New function.
22592         (init_pre): Call it.
22593
22594 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
22595
22596         PR middle-end/43209
22597         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
22598         decrease the cost of an IV candidate when the cost is infinite.
22599
22600 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22601
22602         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
22603         Use '3DNow!' for the extension of that name, ensure normal space
22604         after the string.
22605         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
22606
22607 2010-03-03  Jeff Law  <law@redhat.com>
22608
22609         * PR middle-end/32693
22610         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
22611         than gen_rtx_SUBREG.
22612         (extract_bit_field_1): Likewise.
22613
22614 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
22615
22616         * doc/sourcebuild.texi (Test directives): Document that arguments
22617         include-opts and exclude-opts are now optional for dg-skip-if,
22618         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
22619
22620 2010-03-03  Jason Merrill  <jason@redhat.com>
22621
22622         PR c++/12909
22623         * cgraph.h (varpool_node): Add extra_name field.
22624         * varpool.c (varpool_extra_name_alias): New.
22625         (varpool_assemble_decl): Emit extra name aliases.
22626         (varpool_mark_needed_node): Look past an extra name alias.
22627         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
22628         * lto-streamer-in.c (lto_input_tree): Read it.
22629         * lto-streamer-out.c (output_unreferenced_globals): Write it.
22630
22631 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
22632
22633         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
22634         (sparc*-*-solaris2*): ...this.
22635
22636 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
22637
22638         PR debug/43229
22639         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
22640         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
22641         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
22642         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
22643
22644         PR debug/43237
22645         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
22646         fallthrough to default handling, just with want_address 0 instead of 2.
22647         For single element lists, add_AT_loc directly, otherwise create an
22648         artificial variable DIE and stick location list to it.
22649
22650         PR debug/43177
22651         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
22652         (VAL_EXPR_HAS_REVERSE): Define.
22653         (reverse_op): New function.
22654         (add_stores): For reversible operations add an extra MO_VAL_USE.
22655
22656 2010-03-02  Jason Merrill  <jason@redhat.com>
22657
22658         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
22659
22660 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
22661
22662         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
22663         (sparc64-*-linux*): Likewise.
22664         (sparc64-*-solaris2*): Include assembler files before linker ones.
22665         (sparc-*-solaris2*): Simplify and reorder to match previous case.
22666         * config/sparc/gas.h: Delete.
22667         * config/sparc/sol2-64.h: Add copyright notice.
22668         * config/sparc/sol2-gas-bi.h: Likewise.
22669         * config/sparc/sol2-gld.h: Likewise.
22670         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
22671         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
22672         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
22673         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
22674         (sparc_elf_asm_named_section): Rename into...
22675         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
22676
22677 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
22678
22679         * config/alpha/alpha.c (override_options): Fix -mtune error message.
22680
22681 2010-03-02  Jeff Law  <law@redhat.com>
22682
22683         PR middle-end/42431
22684         * reload1.c (rtx_p, substitute_stack): Declare.
22685         (substitute): Record addresses of changed rtxs.
22686         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
22687         Restore the original rtx when complete.
22688         (reload): Free subsitute_stack when complete.
22689
22690 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
22691
22692         * doc/gccint.texi (menu): Add Testsuites as a chapter.
22693         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
22694         new chapter.
22695         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
22696         LTO Testing, gcov Testing, profopt Testing, compat Testing,
22697         Torture Tests): Change from subsection to section.
22698
22699 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
22700             Steven Bosscher  <steven@gcc.gnu.org>
22701
22702         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
22703         instead of bb.
22704
22705 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
22706
22707         PR middle-end/42640
22708         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
22709         the assignment from the new induction variable to the assignment
22710         of the value from the original loop PHI function.
22711
22712 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
22713             Daniel Jacobowitz  <dan@codesourcery.com>
22714
22715         * doc/sourcebuild.texi (Test directives): Clarify options to
22716         dg-skip-if.
22717
22718 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22719
22720         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
22721         Disable cfi directives unless GCC and gas agree on using read-only
22722         .eh_frame sections for 64-bit.
22723         * configure: Regenerate.
22724
22725 2010-03-01  Richard Guenther  <rguenther@suse.de>
22726
22727         PR tree-optimization/43220
22728         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
22729         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
22730
22731 2010-03-01  Richard Guenther  <rguenther@suse.de>
22732             Martin Jambor  <mjambor@suse.cz>
22733
22734         PR middle-end/41250
22735         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
22736         gimplified parameters.
22737
22738 2010-03-01  Christian Bruel  <christian.bruel@st.com>
22739
22740         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
22741
22742 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
22743
22744         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
22745
22746 2010-03-01  Richard Guenther  <rguenther@suse.de>
22747
22748         PR middle-end/43213
22749         * expr.c (expand_assignment): Use the alias-oracle to tell
22750         if the rhs aliases the result decl.
22751
22752 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22753
22754         PR pch/14940
22755         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
22756         to sol_gt_pch_get_address.
22757         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
22758         64-bit, SPARC and x86.
22759         (sol_gt_pch_get_address): New function.
22760
22761 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
22762
22763         * toplev.h (inform_n, error_n): Declare.
22764         * diagnostic.c (inform_n, error_n): New function.
22765
22766 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
22767
22768         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
22769         has no rtl yet when processing local_decls, queue it and recheck
22770         if deferred stack allocation hasn't assigned it rtl.
22771
22772 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
22773
22774         * config/sh/sh.c (unspec_bbr_uid): New.
22775         (gen_block_redirect): Use it instead of INSN_UID.
22776         (gen_far_branch): Likewise.
22777
22778 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
22779
22780         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
22781         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
22782
22783 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22784
22785         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
22786         (Warning Options): -Wno-conversion-null is valid for
22787         Objective-C++ as well.
22788         * doc/tm.texi (Named Address Spaces): Likewise.
22789         * doc/plugins.texi (Plugins): Replace TABs with spaces.
22790         * doc/tree-ssa.texi (Tree SSA): Likewise.
22791
22792 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
22793
22794         PR bootstrap/43202
22795         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
22796         by default.  Don't set the default arch for
22797         i[34567]86-*-darwin*|x86_64-*-darwin*.
22798
22799 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
22800
22801         PR bootstrap/43202
22802         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
22803         default.  Set the default 32bit/64bit archs with $with_arch
22804         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
22805
22806 2010-02-27  Richard Guenther  <rguenther@suse.de>
22807
22808         PR tree-optimization/43186
22809         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
22810         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
22811         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
22812         unroller iterations.
22813
22814 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
22815
22816         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
22817         required and i[34567]86-*-* targets don't support 64bit ISA.
22818
22819 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
22820
22821         PR ada/43096
22822         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
22823         the same alias set.
22824
22825 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
22826
22827         * config.gcc: Set the default arch at least to Prescott for
22828         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
22829         if SSE math is enabled.
22830
22831 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22832
22833         * diagnostic.c (diagnostic_initialize): Update.
22834         (diagnostic_report_diagnostic): Test inhibit_notes_p for
22835         informative notes.
22836         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
22837         (diagnostic_inhibit_notes): New.
22838         * toplev.c (process_options): inhibit notes with -fcompare-debug.
22839
22840 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22841
22842         PR c/20631
22843         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
22844         * doc/standards.texi: Likewise.
22845         * doc/extend.texi: Likewise.
22846         * doc/trouble.texi: Likewise.
22847         * doc/cppopts.texi: Likewise.
22848         * doc/install.texi: Likewise.
22849         * c.opt (std=c90,std=gnu90): New options.
22850         * c-opts.c (c_common_handle_option): Handle them.
22851
22852 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22853
22854         PR c/24577
22855         * c-decl.c (undeclared_variable): Use an informative note.
22856
22857 2010-02-26  Richard Guenther  <rguenther@suse.de>
22858
22859         PR tree-optimization/43186
22860         * gimple.h (gimple_fold): Remove.
22861         * gimple.c (gimple_fold): Remove.  Inline into single user ...
22862         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
22863         Try harder for conditions.
22864
22865 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
22866
22867         PR debug/43190
22868         * function.c (used_types_insert): Don't skip through named pointer
22869         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
22870         and it is different from the main variant's type.
22871
22872 2010-02-26  Nick Clifton  <nickc@redhat.com>
22873
22874         * config/rx/rx.md (sminsi3): Remove bogus alternative.
22875
22876 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
22877
22878         * config.gcc: Support --with-fpmath=sse for x86.
22879
22880         * config/i386/ssemath.h: New.
22881
22882         * doc/install.texi (--with-fpmath=sse): Documented.
22883
22884 2010-02-26  Richard Guenther  <rguenther@suse.de>
22885
22886         PR tree-optimization/43188
22887         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
22888         vector types of over-aligned element type.
22889
22890 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
22891
22892         PR target/43175
22893         * config/i386/i386.c (expand_vec_perm_blend): Use correct
22894         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
22895
22896 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
22897
22898         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
22899
22900 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
22901
22902         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
22903         * var-tracking.c: Include diagnostic.h.
22904         (debug_dv): New function.
22905         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
22906
22907         PR debug/43160
22908         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
22909         (add_value_chain, add_value_chains, remove_value_chain,
22910         remove_value_chains): Handle DEBUG_EXPRs.
22911         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
22912
22913         PR debug/43161
22914         * regcprop.c (struct queued_debug_insn_change): New type.
22915         (struct value_data_entry): Add debug_insn_changes field.
22916         (struct value_data): Add n_debug_insn_changes field.
22917         (debug_insn_changes_pool): New variable.
22918         (free_debug_insn_changes, apply_debug_insn_changes,
22919         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
22920         (kill_value_one_regno): Call free_debug_insn_changes if needed.
22921         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
22922         fields.
22923         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
22924         changes for them.
22925         (copyprop_hardreg_forward_1): Don't call apply_change_group for
22926         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
22927         changes, call cprop_find_used_regs via note_stores.
22928         (copyprop_hardreg_forward): When copying vd from predecessor
22929         which has any queued DEBUG_INSN changes, make sure the pointers are
22930         cleared.  At the end call df_analyze and then if there are any
22931         DEBUG_INSN changes queued at the end of some basic block for still
22932         live registers, apply them.
22933         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
22934
22935 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
22936
22937         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
22938         (arm*-*-*): Ditto.
22939
22940 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
22941
22942         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
22943         targets.  Set the default with_cpu/with_arch from arch/cpu.
22944         Allow x86-64 and native for with_cpu/with_arch.
22945
22946 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
22947
22948         * ebitmap.c: Change calls to verify_popcount with calls to
22949         sbitmap_verify_popcount.
22950         (ebitmap_clear_bit): Fixed map->cacheindex test and
22951         map>cache update when bit clearing results in an empty
22952         element.
22953
22954 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
22955
22956         PR target/43154
22957         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
22958         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
22959         and support both V2DF and V2DI modes.
22960         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
22961         support both V2DF and V2DI modes.
22962         (general): Delete trailing whitespace from a few patterns.
22963
22964         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22965         V2DF/V2DI interleave high/low builtins.
22966
22967         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
22968         new VSX builtins.
22969
22970         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
22971         interleave high/low functions.
22972
22973 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
22974
22975         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
22976         #pragma extern_prefix.
22977
22978 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
22979
22980         PR debug/43166
22981         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
22982         BLKmode, assert op0 is a MEM and just adjust its mode.
22983
22984         PR debug/43165
22985         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
22986         if bitpos isn't multiple of mode's bitsize.
22987
22988 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22989
22990         * c.opt (-ftemplate-depth=): New.
22991         (-ftemplate-depth-): Deprecate.
22992         * optc-gen.awk: Handle -ftemplate-depth=.
22993         * opth-gen.awk: Likewise.
22994         * c-opts.c (c_common_handle_option): Likewise.
22995         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
22996
22997 2010-02-24  Jason Merrill  <jason@redhat.com>
22998
22999         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
23000
23001 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23002
23003         * cfg.c (alloc_aux_for_block): Remove inline.
23004         (alloc_aux_for_edge): Likewise.
23005
23006 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23007
23008         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
23009
23010 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23011
23012         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
23013         * config/i386/sol2-gas.h: New file.
23014         * config.gcc (i[34567]86-*-solaris2*): Use it.
23015
23016 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23017
23018         PR c/43128
23019         * c-typeck.c (ep_convert_and_check): New.
23020         (build_conditional_expr): Use it.
23021         (build_binary_op): Likewise.
23022
23023 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
23024
23025         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
23026
23027         PR debug/43150
23028         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
23029         bounds even for -O+.
23030         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
23031         expr needs to have DECL_NAME set.
23032
23033 2010-02-24  Nick Clifton  <nickc@redhat.com>
23034
23035         * config/mep/mep.c: Include gimple.h.
23036         (mep_function_uses_sp): Delete unused function.
23037         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
23038         parameters.  Use unsigned integers to count args.  Return a
23039         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
23040
23041 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
23042
23043         PR target/43107
23044         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
23045         greater or equal to nelt instead of 2 * nelt.
23046         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
23047         with nelt - 1.
23048
23049 2010-02-23  Jason Merrill  <jason@redhat.com>
23050
23051         PR debug/42800
23052         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
23053         in cfun->local_decls even if they have register types.
23054
23055         PR c++/42837
23056         * stor-layout.c (place_field): Don't warn about unnecessary
23057         DECL_PACKED if the type is packed.
23058
23059 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
23060
23061         PR target/43139
23062         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
23063         GOTOFF relocs, even when the base reg isn't pic pointer.
23064
23065 2010-02-23  Michael Matz  <matz@suse.de>
23066
23067         PR debug/43077
23068         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
23069         (expand_gimple_basic_block): Generate and use debug temps if there
23070         are debug uses left after the last real use of TERed ssa names.
23071         Unlink debug immediate uses when they are expanded.
23072
23073 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23074
23075         PR 43123
23076         * config/i386/i386.c (override_options): Reorganise to provide
23077         better error messages.
23078
23079 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
23080
23081         PR middle-end/43083
23082         * graphite-scop-detection.c (create_single_exit_edge): Move
23083         the call to find_single_exit_edge to....
23084         (create_sese_edges): ...here.  Don't handle multiple edges
23085         exiting the function.
23086         (build_graphite_scops): Don't handle multiple edges
23087         exiting the function.
23088
23089 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
23090
23091         PR middle-end/43097
23092         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
23093         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
23094
23095 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
23096
23097         PR middle-end/43026
23098         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
23099
23100 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23101
23102         PR c++/43126
23103         * c-typeck.c (convert_arguments): Print declaration location.
23104         * c-common.c (validate_nargs): Rename as
23105         builtin_function_validate_nargs.
23106         (check_builtin_function_arguments): Update.
23107
23108 2010-02-22  Richard Guenther  <rguenther@suse.de>
23109
23110         PR lto/43045
23111         * tree-inline.c (declare_return_variable): Use the type of
23112         the call stmt lhs if available.
23113
23114 2010-02-22  Duncan Sands  <baldrick@free.fr>
23115
23116         * passes.c (register_pass): Always consider all pass lists when
23117         ref_pass_instance_number is zero.
23118
23119 2010-02-22  Richard Guenther  <rguenther@suse.de>
23120
23121         PR tree-optimization/42749
23122         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
23123         parameter.  Do arithmetic in the original type.
23124         (update_accumulator_with_ops): Likewise.
23125         (adjust_accumulator_values): Adjust.
23126
23127 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23128
23129         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
23130         (QI to BLKmode splitter): New splitter.
23131
23132 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
23133
23134         * config/i386/i386.c (initial_ix86_tune_features): Turn on
23135         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
23136
23137 2010-02-22  Richard Guenther  <rguenther@suse.de>
23138
23139         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
23140
23141 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
23142
23143         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
23144         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
23145         ($(T)crti.o, $(T)crtn.o): Remove rules.
23146
23147 2010-02-21  Tobias Burnus  <burnus@net-b.de>
23148
23149         PR fortran/35259
23150         * doc/invoke.texi (-fassociative-math): Document that this
23151         option is automatically enabled for Fortran.
23152
23153 2010-02-20  David S. Miller  <davem@davemloft.net>
23154
23155         * configure.ac: Test if linker and assembler properly support
23156         GOTDATA_OP relocations.
23157         * configure: Rebuild.
23158         * config.in: Likewise.
23159         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
23160         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
23161         (movsi_high_pic): Likewise.
23162         (movdi_lo_sum_pic): Likewise.
23163         (movdi_high_pic): Likewise.
23164         (movsi_pic_gotdata_op): New pattern.
23165         (movdi_pic_gotdata_op): Likewise.
23166         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
23167         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
23168
23169 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
23170
23171         PR target/43067
23172         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
23173         attribute to ssemul.
23174         (xop_mulv2div2di3_high): Ditto.
23175
23176 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23177
23178         PR c++/35669
23179         * c.opt (Wconversion-null): New option.
23180         * doc/invoke.texi (Wconversion-null): Document.
23181
23182 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23183
23184         * common.opt (Wlarger-than-): Add Undocumented.
23185
23186 2010-02-19  Mike Stump  <mikestump@comcast.net>
23187
23188         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
23189
23190 2010-02-19  Jason Merrill  <jason@redhat.com>
23191
23192         PR target/40332
23193         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
23194         * configure: Likewise.
23195
23196 2010-02-20  Alan Modra  <amodra@gmail.com>
23197
23198         PR middle-end/42344
23199         * cgraph.h (cgraph_make_decl_local): Declare.
23200         * cgraph.c (cgraph_make_decl_local): New function.
23201         (cgraph_make_node_local): Use it.
23202         * cgraphunit.c (cgraph_function_versioning): Likewise.
23203         * ipa.c (function_and_variable_visibility): Likewise.
23204
23205 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
23206
23207         PR bootstrap/43121
23208         * except.c (sjlj_emit_function_enter): Don't call
23209         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
23210         directly.
23211         * rtl.h (add_reg_br_prob_note): Remove prototype.
23212
23213 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23214
23215         PR 41779
23216         * c-common.c (conversion_warning): Remove widening conversions
23217         before checking the conversion of integers to reals.
23218
23219 2010-02-19  Mike Stump  <mikestump@comcast.net>
23220
23221         PR middle-end/43125
23222         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
23223
23224         PR objc/43061
23225         * cgraphunit.c (process_function_and_variable_attributes): Check
23226         DECL_PRESERVE_P instead of looking up attribute "used".
23227         * ipa-pure-const.c (check_decl): Likewise.
23228         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
23229         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
23230         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
23231         instead of attribute "used".
23232         * config/sol2-c.c (solaris_pragma_init): Likewise.
23233         (solaris_pragma_fini): Likewise.
23234
23235 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
23236
23237         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
23238         Use XCNEW instead of xcalloc.
23239         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
23240         XNEW instead of xmalloc.
23241         (get_fields): Use XNEWVEC instead of xmalloc.
23242
23243         PR debug/43084
23244         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
23245         populate vars array.
23246         (create_new_general_access): For debug stmts just reset value.
23247         (get_stmt_accesses): For accesses within debug stmts just record them
23248         using add_access_to_acc_sites instead of preventing the peeling or
23249         counting them as accesses.
23250
23251         PR middle-end/42233
23252         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
23253
23254 2010-02-19  Richard Guenther  <rguenther@suse.de>
23255
23256         PR tree-optimization/42916
23257         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
23258         instructions.
23259
23260 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
23261
23262         * configure.ac: Replace all uses of changequote in macro arguments
23263         with proper quoting.
23264
23265 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
23266
23267         PR middle-end/42233
23268         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
23269
23270 2010-02-19  Richard Guenther  <rguenther@suse.de>
23271
23272         PR tree-optimization/42944
23273         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
23274         test for aliasing with errno.
23275
23276 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
23277
23278         PR middle-end/42233
23279         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
23280         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
23281         * dojump.c: Include output.h.
23282         (inv): New inline function.
23283         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
23284         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
23285         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
23286         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
23287         argument, pass it down to other calls.
23288         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
23289         add REG_BR_PROB note to the conditional jump.
23290         * cfgexpand.c (add_reg_br_prob_note): Removed.
23291         (expand_gimple_cond): Don't call it, add the probability
23292         as last argument to jumpif_1/jumpifnot_1.
23293         * Makefile.in (dojump.o): Depend on output.h.
23294         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
23295         callers.
23296         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
23297         * stmt.c (do_jump_if_equal): Likewise.
23298         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
23299         * loop-unswitch.c (compare_and_jump_seq): Likewise.
23300         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
23301         Likewise.
23302         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
23303         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
23304         jumpifnot_1 callers.
23305         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
23306         callers.
23307         (store_expr): Adjust jumpifnot caller.
23308         (store_constructor): Adjust jumpif caller.
23309
23310         PR middle-end/42233
23311         * gimplify.c (gimple_boolify): For __builtin_expect call
23312         gimple_boolify also on its first argument.
23313
23314 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
23315
23316         * configure.ac (gnu-unique-object): Wrap regexps using [] in
23317         changequote block.
23318         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
23319         * configure: Regenerated.
23320
23321 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23322
23323         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
23324         lang_hooks.types_compatible_p instead of comptypes.
23325
23326 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
23327
23328         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
23329         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
23330         if __prefer_thumb__ is defined.
23331
23332 2010-02-18  Martin Jambor  <mjambor@suse.cz>
23333
23334         PR tree-optimization/43066
23335         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
23336         array with zero-sized element type.
23337
23338 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
23339
23340         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
23341         rtx, allocate struct var_loc_node here and return it to the
23342         caller, and only if it is actually needed.
23343         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
23344         move it earlier and return immediately if it returns NULL.
23345
23346 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
23347
23348         * config/sparc/gas.h: New file.  Restore
23349         TARGET_ASM_NAMED_SECTION to its ELF default.
23350         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
23351         check !HAVE_GNU_AS.
23352         * config/sparc/sparc.c (sparc_elf_asm_named_section):
23353         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
23354         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
23355         after sparc/sysv4.h.
23356
23357 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
23358
23359         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
23360
23361 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
23362
23363         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
23364         patterns from predicated pattern.
23365
23366 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
23367
23368         PR target/43103
23369         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
23370         for insn mnemonic suffix.
23371
23372 2010-02-17  Richard Guenther  <rguenther@suse.de>
23373
23374         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
23375         to loop PHI nodes.
23376
23377 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
23378
23379         PR debug/42918
23380         * caller-save.c (save_call_clobbered_regs): If BB ends with
23381         a DEBUG_INSN, move any notes in between last real insn and the last
23382         DEBUG_INSN after the last DEBUG_INSN.
23383
23384 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
23385
23386         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
23387         Fix return type.  Fix argument type.  Explain meaning of return value.
23388
23389 2010-02-16  Richard Guenther  <rguenther@suse.de>
23390
23391         PR tree-optimization/41043
23392         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
23393         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
23394         statements ...
23395         (vrp_visit_phi_node): ... but only for loop PHI nodes.
23396
23397 2010-02-16  Ira Rosen  <irar@il.ibm.com>
23398
23399         PR tree-optimization/43074
23400         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
23401         * tree-vect-loop.c (vect_analyze_loop_operations): Add
23402         vectorizable cycles in hybrid SLP check.
23403         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
23404
23405 2010-02-16  Richard Guenther  <rguenther@suse.de>
23406
23407         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
23408         (true_dependence): If memrefs_conflict_p computes must-alias
23409         trust it.  Move TBAA check after offset-based disambiguation.
23410         (canon_true_dependence): Likewise.
23411
23412 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
23413
23414         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
23415         * doc/invoke.texi: Document it.
23416         * var-tracking.c: Include toplev.h and params.h.
23417         (vt_find_locations): Return bool indicating success.  Compute
23418         hash sizes unconditionally.  Check new parameter, report.
23419         (variable_tracking_main_1): Check vt_find_locations results and
23420         retry.  Renamed from...
23421         (variable_tracking_main): ... this.  New wrapper to preserve
23422         flag_var_tracking_assignments.
23423         * Makefile.in (var-tracking.o): Adjust dependencies.
23424
23425 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
23426             Jakub Jelinek  <jakub@redhat.com>
23427
23428         PR target/42854
23429         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
23430         if weak_import attribute is present.
23431         * config/darwin.c (machopic_select_section): Likewise.
23432
23433 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
23434
23435         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
23436         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
23437         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
23438         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
23439
23440         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
23441         types.
23442
23443         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
23444         Fix argument types.
23445
23446         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
23447         Rewrite text to refer to the names.
23448
23449 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
23450
23451         * config/i386/i386-builtin-types.def
23452         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
23453         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
23454         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
23455         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
23456         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
23457         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
23458         IX86_BUILTIN_VPERMIL2PS256.
23459         (MULTI_ARG_4_DF2_DI_I): Defined.
23460         (MULTI_ARG_4_DF2_DI_I1): Defined.
23461         (MULTI_ARG_4_SF2_SI_I): Defined.
23462         (MULTI_ARG_4_SF2_SI_I1): Defined.
23463         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
23464         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
23465         __builtin_ia32_vpermil2ps256.
23466         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
23467         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
23468         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
23469         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
23470         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
23471         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
23472         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
23473         CODE_FOR_xop_vpermil2v8sf3.
23474         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
23475         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
23476         * config/i386/xopintrin.h (_mm_permute2_pd): New.
23477         (_mm256_permute2_pd): New.
23478         (_mm_permute2_ps): New.
23479         (_mm256_permute2_ps): New.
23480
23481 2010-02-15  Nick Clifton  <nickc@redhat.com>
23482
23483         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
23484         boolean parameters.  Use emit_jump_insn when emitting a pop
23485         instruction containing a return insn.
23486         (push): Use 'true' rather than '1' as second parameter to F.
23487         (h8300_expand_prologue): Likewise.
23488         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
23489         (h8300_expand_epilogue): Likewise.
23490
23491 2010-02-15  Richard Guenther  <rguenther@suse.de>
23492
23493         PR middle-end/43068
23494         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
23495         if that is zero.
23496
23497 2010-02-15  Nick Clifton  <nickc@redhat.com>
23498
23499         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
23500         delta.
23501
23502 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
23503
23504         * intl.c (fake_ngettext): New function.
23505         * intl.h (fake_ngettext): Declare.
23506         (ngettext): Define macro.
23507         * collect2.c (notice_translated): New function.
23508         (main): Use notice_translated and ngettext.
23509         * collect2.h (notice_translated): Declare.
23510
23511 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
23512
23513         * reorg.c (delete_computation): Comment fixes.
23514         * caller-save.c (setup_save_areas): Idem.
23515         * sel-sched-dump.c (dump_lv_set): Idem.
23516         * rtl.def: Idem.
23517
23518 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23519
23520         * config/s390/s390.c (s390_sched_init): New function.
23521         (TARGET_SCHED_INIT): Target hook defined.
23522
23523 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
23524             Jack Howarth  <howarth@bromo.med.uc.edu>
23525             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
23526
23527         PR target/42982
23528         Partial revert of unintended change in fix for PR41605.
23529         * config/darwin.h: Fix typo.
23530         * config/darwin9.h: Same.
23531
23532 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
23533
23534         * c-pch.c (pch_init): Clear v.
23535
23536 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
23537
23538         PR middle-end/42930
23539         * graphite-scop-detection.c (graphite_can_represent_scev): Call
23540         graphite_can_represent_init for MULT_EXPR.
23541
23542 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
23543
23544         PR middle-end/42914
23545         PR middle-end/42530
23546         * graphite-sese-to-poly.c (remove_phi): New.
23547         (translate_scalar_reduction_to_array): Call remove_phi.
23548
23549 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
23550
23551         PR middle-end/42771
23552         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
23553         * graphite-clast-to-gimple.h (gloog): Update declaration.
23554         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
23555         * graphite-poly.h (struct poly_bb): Add missing comments.
23556         (struct scop): Add poly_scop_p field.
23557         (POLY_SCOP_P): New.
23558         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
23559         * graphite.c (graphite_transform_loops): Build the polyhedral
23560         representation for each scop before code generation.
23561         * sese.c (rename_variables_in_operand): Removed.
23562         (rename_variables_in_expr): Return the renamed expression.
23563         (rename_sese_parameters): New.
23564         * sese.h (rename_sese_parameters): Declared.
23565
23566 2010-02-11  Richard Guenther  <rguenther@suse.de>
23567
23568         PR tree-optimization/42998
23569         * tree-ssa-pre.c (create_expression_by_pieces): Treat
23570         POINTER_PLUS_EXPR properly.
23571
23572 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
23573             Changpeng Fang  <changpeng.fang@amd.com>
23574
23575         PR middle-end/40886
23576         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
23577         the cost of an IV candidate when the IV is used in a test against zero.
23578
23579         * gcc.dg/tree-ssa/ivopts-3.c: New.
23580
23581 2010-02-11  Richard Guenther  <rguenther@suse.de>
23582
23583         PR lto/41664
23584         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
23585         pointer-vs-decl case by swapping refs.  Handle some cases
23586         of pointer-vs-decl disambiguations more conservatively.
23587         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
23588         to false after expanding.
23589
23590 2010-02-11  Richard Guenther  <rguenther@suse.de>
23591
23592         PR driver/43021
23593         * gcc.c (process_command): Handle LTO file@offset case more
23594         appropriately.
23595
23596 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
23597
23598         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
23599         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
23600         of DEBUG_INSNs.
23601         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
23602
23603         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
23604         if MEM's mode size isn't DWARF2_ADDR_SIZE.
23605         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
23606         Optimize eq/ne comparisons when both arguments are known to be
23607         zero-extended.
23608         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
23609         Don't mask operands unnecessarily if they are known to be already
23610         zero-extended.
23611
23612 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
23613
23614         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
23615         instead of loop.
23616
23617 2010-02-10  Richard Guenther  <rguenther@suse.de>
23618
23619         PR tree-optimization/43017
23620         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
23621         for wrapping signed arithmetic.
23622
23623 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
23624
23625         PR debug/43010
23626         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
23627         if no debug info should be emitted for it.
23628
23629 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
23630
23631         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
23632         note when flag_exceptions is set.
23633
23634 2010-02-10  Duncan Sands  <baldrick@free.fr>
23635
23636         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
23637
23638 2010-02-10  Richard Guenther  <rguenther@suse.de>
23639
23640         PR c/43007
23641         * tree.c (get_unwidened): Handle constants.
23642         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
23643
23644 2010-02-10  Martin Jambor  <mjambor@suse.cz>
23645
23646         PR lto/42985
23647         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
23648         check for variable argument counts independently.
23649
23650 2010-02-10  Christian Bruel  <christian.bruel@st.com>
23651
23652         PR target/42841
23653         * config/sh/sh.c (find_barrier): Increase length for non delayed
23654         conditional branches.
23655
23656 2010-02-10  Christian Bruel  <christian.bruel@st.com>
23657
23658         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
23659
23660 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
23661
23662         * builtins.c (set_builtin_user_assembler_name): Also handle
23663         ffs if int is smaller than word.
23664
23665 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
23666
23667         PR middle-end/42973
23668         * ira-conflicts.c (get_dup): Remove.
23669         (process_reg_shuffles): Add new parameter.  Use it as an
23670         additional guard for copy generation.
23671         (add_insn_allocno_copies): Rewrite.
23672
23673 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
23674
23675         * common.opt (fsched2-use-traces): Preserved for backward
23676         compatibility.
23677         * doc/invoke.texi: Remove the documentation about option
23678         -fsched2-use-traces.
23679         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
23680         flag_sched2_use_traces.
23681         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
23682         the backward compatibility flag section.
23683
23684 2010-02-09  Richard Guenther  <rguenther@suse.de>
23685
23686         PR tree-optimization/43008
23687         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
23688         make HEAP variables initialized from global memory if they
23689         are not known builtin functions.
23690         (find_func_aliases): Adjust.
23691
23692 2010-02-09  Richard Guenther  <rguenther@suse.de>
23693
23694         PR tree-optimization/43000
23695         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
23696         arithmetic manually.
23697
23698 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
23699
23700         PR tree-optimization/42931
23701         * tree-loop-linear.c (try_interchange_loops): Don't call
23702         double_int_mul if estimated_loop_iterations failed.
23703
23704 2010-02-08  Martin Jambor  <mjambor@suse.cz>
23705
23706         PR middle-end/42898
23707         * tree-sra.c (build_accesses_from_assign): Do not mark in
23708         should_scalarize_away_bitmap if stmt has volatile ops.
23709         (sra_modify_assign): Do not process assigns piecemeal if if stmt
23710         has volatile ops.
23711
23712 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
23713
23714         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
23715
23716 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
23717
23718         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
23719         before the pattern.
23720
23721 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
23722
23723         PR middle-end/42946
23724         * df-core.c (df_finish_pass): Change type of saved_flags to int.
23725
23726 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
23727
23728         PR middle-end/42988
23729         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
23730         to unknown_dependence.
23731         (graphite_legal_transform_dr): Handle the unknown_dependence.
23732         (graphite_carried_dependence_level_k): Same.
23733
23734 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
23735
23736         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
23737
23738 2010-02-07  Richard Guenther  <rguenther@suse.de>
23739
23740         PR middle-end/42991
23741         * expr.c (get_inner_reference): Always initialize *pbitsize.
23742
23743 2010-02-07  Richard Guenther  <rguenther@suse.de>
23744
23745         PR middle-end/42956
23746         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
23747         new ARRAY_REFs on variable size element or minimal index arrays.
23748         Complete.
23749         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
23750         gimple_fold_indirect_ref.
23751
23752 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
23753
23754         PR target/42957
23755         * arm.c (arm_override_options): Just return if the user has specified
23756         an invalid fpu name.
23757
23758 2010-02-03  Jason Merrill  <jason@redhat.com>
23759
23760         PR c++/42870
23761         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
23762         i386_pe_maybe_record_exported_symbol.
23763
23764 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
23765
23766         PR target/42924
23767         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
23768         (pa_delegitimize_address): New function.
23769
23770 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
23771
23772         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
23773         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
23774
23775 2010-02-05  Richard Guenther  <rguenther@suse.de>
23776
23777         PR lto/42762
23778         * lto-streamer-in.c (get_resolution): Deal with references
23779         to undefined functions.
23780
23781 2010-02-05  Richard Guenther  <rguenther@suse.de>
23782
23783         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
23784         (fold_const_aggregate_ref): Likewise.
23785         (ccp_fold_stmt): Substitute loads.
23786         (maybe_fold_reference): Verify types before substituting.
23787         Unshare properly.
23788         (fold_gimple_assign): Unshare properly.
23789         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
23790
23791 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
23792
23793         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
23794         for rs6000_gen_cell_microcode.
23795
23796 2010-02-04  Richard Guenther  <rguenther@suse.de>
23797
23798         PR rtl-optimization/42952
23799         * dse.c (const_or_frame_p): Remove MEM handling.
23800
23801 2010-02-04  Nick Clifton  <nickc@redhat.com>
23802
23803         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
23804         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
23805         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
23806         (mn10300_asm_output_mi_thunk): New function.
23807         (mn10300_can_output_mu_thunk): New function.
23808         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
23809         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
23810         (FUNCTION_ARG): Delete incorrect comment.
23811
23812 2010-02-03  Jason Merrill  <jason@redhat.com>
23813
23814         PR c++/40138
23815         * fold-const.c (operand_equal_p): Handle erroneous types.
23816
23817 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
23818
23819         * config/h8300/h8300.md (can_delay): Fix attibute condition.
23820
23821 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
23822
23823         PR rtl-optimization/42941
23824         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
23825         of xmalloc.
23826
23827 2010-02-03  Jason Merrill  <jason@redhat.com>
23828
23829         PR c++/35652
23830         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
23831
23832 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
23833
23834         PR debug/42896
23835         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
23836         (cselib_reset_table): Renamed from...
23837         (cselib_reset_table_with_next_value): ... this.
23838         (cselib_get_next_uid): Renamed from...
23839         (cselib_get_next_unknown_value): ... this.
23840         * cselib.c (next_uid): Renamed from...
23841         (next_unknown_value): ... this.
23842         (cselib_clear_table): Adjust.
23843         (cselib_reset_table): Adjust.  Renamed from...
23844         (cselib_reset_table_with_next_value): ... this.
23845         (cselib_get_next_uid): Adjust.  Renamed from...
23846         (cselib_get_next_unknown_value): ... this.
23847         (get_value_hash): Use hash.
23848         (cselib_hash_rtx): Likewise.
23849         (new_cselib_val): Adjust.  Set and dump uid.
23850         (cselib_lookup_mem): Pass next_uid as hash.
23851         (cselib_subst_to_values): Likewise.
23852         (cselib_log_lookup): Dump uid.
23853         (cselib_lookup): Pass next_uid as hash.  Adjust.
23854         (cselib_process_insn): Adjust.
23855         (cselib_init): Initialize next_uid.
23856         (cselib_finish): Adjust.
23857         (dump_cselib_table): Likewise.
23858         * dse.c (canon_address): Dump value uid.
23859         * print-rtl.c (print_rtx): Print value uid.
23860         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
23861         (dvuid): New type.
23862         (dv_uid): New function, sort of renamed from...
23863         (dv_htab_hash): ... this, reimplemented in terms of it and...
23864         (dv_uid2hash): ... this.  New.
23865         (variable_htab_eq): Drop excess assertions.
23866         (tie_break_pointers): Removed.
23867         (canon_value_cmp): Compare uids.
23868         (variable_post_merge_New_vals): Print uids.
23869         (vt_add_function_parameters): Adjust.
23870         (vt_initialize): Reset table.  Adjust.
23871
23872 2010-02-03  Richard Guenther  <rguenther@suse.de>
23873
23874         PR tree-optimization/42944
23875         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
23876         (call_may_clobber_ref_p_1): Likewise.  Properly handle
23877         malloc and calloc clobbering errno.
23878
23879 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
23880
23881         * doc/invoke.texi: Fix name of sched1 dump.
23882
23883         * opts.c (decode_options): Set flag_tree_switch_conversion
23884         only conditionally on optimize >= 2.
23885
23886         * gcse.c: Assorted comment fixes in pass description.
23887
23888 2010-02-03  Anthony Green  <green@moxielogic.com>
23889
23890         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
23891         nop padding in order to maintain alignment of storage location of
23892         target function address.
23893         (moxie_trampoline_init): Store target function address at newly
23894         aligned location.
23895         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
23896         to 32.
23897         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
23898
23899 2010-02-03  Richard Guenther  <rguenther@suse.de>
23900
23901         PR middle-end/42927
23902         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
23903
23904 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23905
23906         * config.gcc: Reenable check for obsolete targets.
23907         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
23908         mips-sgi-irix6.[0-4]*.
23909
23910 2010-02-02  Nick Clifton  <nickc@redhat.com>
23911
23912         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
23913         constant size of 4 as being the same as 0.
23914         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
23915         can take values in the range 0..4.
23916
23917 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
23918
23919         PR java/41991
23920         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
23921         as _darwin10_Unwind_FindEnclosingFunction().
23922         * libgcc-libsystem.ver: New.
23923
23924 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
23925
23926         PR target/41399
23927         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
23928         implicitly set registers.
23929
23930 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
23931
23932         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
23933         (arm_override_options): Allow automatic selection of the thread
23934         pointer register if thumb2.
23935         (legitimize_pic_address): Improve code sequences for Thumb2.
23936         (arm_call_tls_get_addr): Likewise.
23937         (legitimize_tls_address): Likewise.
23938         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
23939         (pic_load_addr_32bit): ... this.  New named pattern.
23940         * thumb2.md (pic_load_addr_thumb2): Delete.
23941         (pic_load_dot_plus_four): Delete.
23942         (tls_load_dot_plus_four): New named pattern.
23943
23944 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23945
23946         PR libgomp/29986
23947         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
23948         Document fix for TLS bug.
23949
23950 2010-01-31  Richard Guenther  <rguenther@suse.de>
23951
23952         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
23953         conservatively correct.
23954
23955 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23956
23957         PR target/42850
23958         Revert:
23959         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23960
23961         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
23962
23963 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23964
23965         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
23966
23967 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
23968
23969         * config.gcc: Adjust order of makefile fragments for mingw targets.
23970
23971 2010-01-31  Richard Guenther  <rguenther@suse.de>
23972
23973         PR middle-end/42898
23974         * gimplify.c (gimplify_init_constructor): For volatile LHS
23975         initialize a temporary.
23976
23977 2010-01-31  Matthias Klose  <doko@ubuntu.com>
23978
23979         * configure.ac: Fix __stack_chk_fail check for cross builds configured
23980         --with-headers
23981         * configure: Regenerate.
23982
23983 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
23984
23985         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
23986         the same alias set and their sizes different constantness.
23987         (aliasing_component_refs_p): Revert 2009-10-24 change.
23988
23989 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23990
23991         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
23992         unused.
23993
23994 2010-01-29  Richard Guenther  <rguenther@suse.de>
23995
23996         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
23997         Assert we successfully updated the call.
23998
23999 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
24000
24001         PR rtl-optimization/42889
24002         * df.h (df_set_bb_dirty_nonlr): New prototype.
24003         * df-core.c (df_set_bb_dirty_nonlr): New function.
24004         * df-scan.c (df_insn_rescan): Call it instead of
24005         df_set_bb_dirty for DEBUG_INSNs.
24006
24007 2010-01-29  Richard Guenther  <rguenther@suse.de>
24008
24009         PR middle-end/37448
24010         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
24011         quadratic behavior in most cases.
24012
24013 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
24014
24015         PR target/42891
24016         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
24017         in the call to gen_x86_movsicc_0_m1.
24018
24019 2010-01-28  Richard Guenther  <rguenther@suse.de>
24020
24021         PR tree-optimization/42871
24022         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
24023
24024 2010-01-28  Richard Guenther  <rguenther@suse.de>
24025
24026         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
24027         into call arguments.
24028
24029 2010-01-28  Richard Guenther  <rguenther@suse.de>
24030
24031         PR middle-end/42883
24032         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
24033         the forwarder if the destination is an EH landing pad.
24034
24035 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
24036
24037         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
24038         block list passed to gimple_duplicate_sese_tail.
24039         (parallelize_loops): Avoid parallelization when the function
24040         has_nonlocal_label.
24041         Avoid parallelization when the preheader is IRREDUCIBLE.
24042         Try to optimize when estimated_loop_iterations_int is unresolved.
24043         Add the loop's location to the dump file.
24044         * tree-cfg.c (add_phi_args_after_redirect): Remove.
24045         (gimple_duplicate_sese_tail): Remove the check for the latch.
24046         Redirect nexits to the exit block.
24047         Remove handling of the incoming edges to the latch.
24048         Redirect the backedge from the copied latch to the exit bb.
24049
24050 2010-01-28  Michael Matz  <matz@suse.de>
24051
24052         PR target/42881
24053         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
24054         Wrap force_reg into a sequence, emit it before user.
24055
24056 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
24057
24058         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
24059         (arm_rev): New.
24060         (arm_legacy_rev): Likewise.
24061         (thumb_legacy_rev): Likewise.
24062
24063 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
24064
24065         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
24066         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
24067         on MEM's address failed, try avoid_constant_pool_reference and
24068         recurse if it returned something different.
24069         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
24070         address, try avoid_constant_pool_reference and recurse if it
24071         returned something different.
24072         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
24073         address and avoid_constant_pool_reference returned something
24074         different, don't set have_address.
24075
24076 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
24077
24078         PR debug/42861
24079         * var-tracking.c (val_store): Add modified argument, obey it.
24080         Adjust callers.
24081         (count_uses): Move down logging of main.
24082         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
24083         don't need resolution.
24084         (emit_notes_in_bb): Likewise.
24085
24086 2010-01-27  Richard Guenther  <rguenther@suse.de>
24087
24088         PR middle-end/42878
24089         * tree-inline.c (remap_decl): Delay remapping of SSA name
24090         default definitions until we need them.
24091
24092 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
24093
24094         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
24095         (rs6000_delegitimize_address): New function.
24096
24097         * config/s390/s390.c (s390_delegitimize_address): Call
24098         delegitimize_mem_from_attrs.
24099
24100         PR middle-end/42874
24101         * tree-inline.c (cannot_copy_type_1): Removed.
24102         (copy_forbidden): Don't forbid copying of functions containing
24103         records/unions with variable length fields.
24104
24105 2010-01-27  Christian Bruel  <christian.bruel@st.com>
24106
24107         Revert:
24108         PR target/42841
24109         * config/sh/sh.c (find_barrier): Increase length for non delayed
24110         conditional branches.
24111
24112 2010-01-27  Matthias Klose  <doko@ubuntu.com>
24113
24114         * configure.ac (gnu-unique-object): Fix ldd version check.
24115         * configure: Regenerate.
24116
24117 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24118
24119         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
24120         HAVE_GNU_AS value.
24121         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
24122         Test for HAVE_GNU_AS value.
24123
24124 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24125
24126         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
24127         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
24128         INT64_TYPE): Define.
24129         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
24130         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
24131         INT_LEAST64_TYPE): Define.
24132         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
24133         UINT_LEAST64_TYPE): Define.
24134         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
24135         INT_FAST64_TYPE): Define.
24136         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
24137         UINT_FAST64_TYPE): Define.
24138         (INTMAX_TYPE, UINTMAX_TYPE): Define.
24139         (INTPTR_TYPE, UINTPTR_TYPE): Define.
24140         (SIG_ATOMIC_TYPE): Define.
24141
24142 2010-01-26  Richard Guenther  <rguenther@suse.de>
24143
24144         * df-scan.c (df_scan_set_bb_info): Remove assert.
24145         (df_insn_rescan_debug_internal): Merge asserts.
24146         (df_install_ref): Likewise.
24147         (df_mark_reg): Use bitmap_set_range.
24148         (df_hard_reg_used_p): Remove assert.
24149         (df_hard_reg_used_count): Likewise.
24150
24151 2010-01-26  Richard Guenther  <rguenther@suse.de>
24152
24153         PR rtl-optimization/42685
24154         * web.c (web_main): Ignore DEBUG_INSNs.
24155
24156 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
24157
24158         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
24159
24160         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
24161         Fix types of fndecl and arglist parameters.
24162
24163 2010-01-26  Richard Guenther  <rguenther@suse.de>
24164
24165         PR middle-end/42806
24166         * tree-eh.c (unsplit_eh): Skip debug insns.
24167
24168 2010-01-26  Richard Guenther  <rguenther@suse.de>
24169
24170         PR tree-optimization/42250
24171         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
24172
24173 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
24174
24175         PR fortran/42866
24176         * omp-low.c (expand_omp_sections): Only use single_pred if
24177         l2_bb is single_pred_p.
24178
24179 2010-01-25  Christian Bruel  <christian.bruel@st.com>
24180
24181         PR target/42841
24182         * config/sh/sh.c (find_barrier): Increase length for non delayed
24183         conditional branches.
24184         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
24185
24186 2010-01-24  David S. Miller  <davem@davemloft.net>
24187
24188         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
24189         define if not using GAS.
24190         * config/sparc/sparc.c (sparc_elf_asm_named_section):
24191         Likewise.  Delete SECTION_MERGE code, which is only applicable
24192         when using GAS.
24193
24194 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
24195
24196         PR c++/42748
24197         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
24198         mangling of va_list in system headers.
24199
24200 2010-01-23  Toon Moene  <toon@moene.org>
24201
24202         * tree-predcom.c (combine_chains): Return NULL, not false.
24203
24204 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
24205
24206         * tree-loop-distribution.c (distribute_loop): Fix declaration and
24207         initialization of variable res to agree with return type.
24208
24209 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
24210
24211         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
24212         * tree-sra.c: Add include of expr.h.
24213
24214 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
24215
24216         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
24217         insert the debug stmt on the single non-EH edge from the stmt.
24218
24219 2010-01-22  Richard Henderson  <rth@redhat.com>
24220
24221         PR tree-opt/42833
24222         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
24223         the RHS until after generate_subtree_copies has insertted its
24224         code before the current statement.
24225
24226 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
24227
24228         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
24229
24230         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
24231
24232 2010-01-21  Martin Jambor  <mjambor@suse.cz>
24233
24234         PR tree-optimization/42585
24235         * tree-sra.c (struct access): New field grp_total_scalarization.
24236         (dump_access): Dump the new field.
24237         (should_scalarize_away_bitmap): New variable.
24238         (cannot_scalarize_away_bitmap): Likewise.
24239         (sra_initialize): Allocate new bitmaps.
24240         (sra_deinitialize): Free new bitmaps.
24241         (create_access_1): New function.
24242         (create_access): Parts moved to create_access_1.
24243         (type_consists_of_records_p): New function.
24244         (completely_scalarize_record): Likewise.
24245         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
24246         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
24247         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
24248         access.
24249         (analyze_all_variable_accesses): Completely scalarize small eligible
24250         records.
24251
24252 2010-01-21  Martin Jambor  <mjambor@suse.cz>
24253
24254         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
24255
24256 2010-01-21  Andrew Haley  <aph@redhat.com>
24257
24258         * gcc.c (process_command): Move lang_specific_driver before
24259         setting cc_libexec_prefix.
24260
24261 2010-01-21  Richard Guenther  <rguenther@suse.de>
24262
24263         PR middle-end/19988
24264         * fold-const.c (negate_expr_p): Pretend only negative
24265         real constants are easily negatable.
24266
24267 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
24268             Jason Merrill  <jason@redhat.com>
24269
24270         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
24271         (TYPE_TRANSPARENT_AGGR): this, for union and record.
24272         * calls.c (initialize argument_information): Handle it.
24273         * c-common.c (handle_transparent_union_attribute): Use new name.
24274         * c-decl.c (finish_struct): Ditto.
24275         * c-typeck.c (type_lists_compatible_p): Ditto.
24276         (convert_for_assignment): Use new name and also handle record.
24277         * function.c (aggregate_value_p): Handle it.
24278         (pass_by_reference): Ditto.
24279         (assign_parm_data_types): Ditto.
24280         * print-tree.c (print_node): Ditto.
24281         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
24282         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
24283         * tree.c (first_field): New fn.
24284
24285 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
24286
24287         PR target/42818
24288         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
24289         even when linking statically, for now.
24290
24291 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
24292
24293         PR debug/42715
24294         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
24295         without a cselib val.
24296         (count_uses): Accept MO_VAL_SET with no val on stores.
24297         (add_stores): Likewise.
24298
24299 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
24300
24301         * var-tracking.c (check_value_val): Add a compile time assertion.
24302         (dv_is_decl_p): Simplify.
24303         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
24304         gcc_assert if ENABLE_CHECKING.
24305
24306 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
24307
24308         PR debug/42782
24309         * var-tracking.c: Include tree-flow.h.
24310         (mem_dies_at_call): New.
24311         (dataflow_set_preserve_mem_locs): Use it.
24312         (dataflow_set_remove_mem_locs): Likewise.
24313         (dump_var): Renamed from dump_variable.  Adjust all callers.
24314         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
24315         * Makefile.in (var-tracking.o): Adjust deps.
24316
24317 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
24318
24319         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
24320
24321 2010-01-20  Richard Guenther  <rguenther@suse.de>
24322
24323         PR tree-optimization/42717
24324         * tree-ssa-dce.c (get_live_post_dom): Remove.
24325         (forward_edge_to_pdom): Take an arbitrary edge to copy
24326         degenerate PHI args from.
24327         (remove_dead_stmt): Use the first post-dominator even if it
24328         does not contain live statements as redirection destination.
24329
24330 2010-01-20  Richard Guenther  <rguenther@suse.de>
24331
24332         * tree-inline.c (estimate_num_insns): Handle EH builtins.
24333
24334 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
24335
24336         * sel-sched.c (create_speculation_check): Remove set but not used
24337         variable twin.
24338         (try_transformation_cache): Remove set but not used variable ds.
24339         (calculate_privileged_insns): Remove set but not used variables
24340         cur_insn and min_spec_insn.
24341         (find_best_expr): Remove set but not used variable avail_n.
24342         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
24343         variable e.
24344         * cgraphunit.c (assemble_thunk): Remove set but not used variable
24345         false_label.
24346         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
24347         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
24348         new_scop_exit_edge.
24349
24350 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
24351
24352         PR bootstrap/42786
24353         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
24354         cpu types.  Add support for *-sse3 cpu types.
24355         (x86_64-*-*): Ditto.
24356
24357 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
24358
24359         PR middle-end/42803
24360         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
24361         argument, call initializer_constant_valid_p_1 instead of
24362         initializer_constant_valid_p, pass CACHE to it, return NULL
24363         immediately if first call returns NULL.
24364         (initializer_constant_valid_p_1): New function.
24365         (initializer_constant_valid_p): Use it.
24366
24367 2010-01-20  Thomas Quinot  <quinot@adacore.com>
24368
24369         * tree.def (PLACEHOLDER_EXPR): Fix comment.
24370
24371 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
24372
24373         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
24374         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
24375         (loc_list_from_tree): Don't handle unsigned division.  Handle
24376         signed modulo using DW_OP_{over,over,div,mul,minus}.
24377         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
24378         modulo instead of signed.
24379
24380 2010-01-20  DJ Delorie  <dj@redhat.com>
24381
24382         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
24383         (Fpa): Pass it
24384         (h8300_emit_stack_adjustment): Propogate it.
24385         (push): Pass it.
24386         (h8300_expand_prologue): Likewise.
24387         (h8300_expand_epilogue): Likewise.
24388
24389 2010-01-19  Michael Matz  <matz@suse.de>
24390
24391         PR tree-optimization/41783
24392         * tree-data-ref.c (toplevel): Include flags.h.
24393         (dump_data_dependence_relation):  Also dump the inputs if the
24394         result will be unknown.
24395         (split_constant_offset_1): Look through some conversions.
24396         * tree-predcom.c (determine_roots_comp): Restart a new chain if
24397         the offset from last element is too large.
24398         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
24399         (reassociate_to_the_same_stmt): Handle vector registers.
24400         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
24401         (e.g. conversions).
24402         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
24403         wide_prolog_niters argument, emit widening instructions.
24404         (vect_do_peeling_for_alignment): Adjust caller, use widened
24405         variant of the iteration cound.
24406         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
24407
24408 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24409
24410         PR target/38697
24411         * config/arm/neon-testgen.m (emit_automatics): New parameter
24412         features. Adjust for Fixed_return_reg feature.
24413         (test_intrinsic): Call emit_automatics with new feature.
24414         * config/arm/neon.ml: Update copyright years.
24415         (features): New Fixed_return_reg feature.
24416         (ops): Update feature for Vget_low.
24417
24418 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
24419
24420         PR tree-optimization/42719
24421         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
24422         stmt uses.
24423
24424         PR debug/42728
24425         * fwprop.c (all_uses_available_at): Return false if def_set dest
24426         is a REG that is used in def_insn.
24427
24428 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
24429
24430         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
24431
24432         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
24433         Add argument names.
24434
24435         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
24436
24437         * target.h (struct gcc_target) <secondary_reload>: Change type
24438         of last argument to secondary_reload_info *.
24439
24440 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
24441
24442         PR target/42774
24443         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
24444         memory references with unaligned offsets.  Remove CQImode handling.
24445         (unaligned_memory_operand): Return 1 for memory references with
24446         unaligned offsets.  Remove CQImode handling.
24447
24448 2010-01-18  Richard Guenther  <rguenther@suse.de>
24449
24450         PR middle-end/39954
24451         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
24452         builtin calls.
24453
24454 2010-01-18  Richard Guenther  <rguenther@suse.de>
24455
24456         PR tree-optimization/42781
24457         * tree-ssa-structalias.c (find_what_var_points_to): Skip
24458         restrict processing only if the original variable was artificial.
24459
24460 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
24461
24462         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
24463         find number of popped argument bytes.
24464
24465         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
24466         Fix the text that describes the return value for invalid insns.
24467
24468         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
24469
24470         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
24471         Clarify what 'cost of the -dependence' is.  Fix quoting.
24472
24473         * toplev.c (default_get_pch_validity): Rename argument to "sz".
24474         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
24475
24476 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
24477
24478         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
24479         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
24480
24481 2010-01-17  Richard Guenther  <rguenther@suse.de>
24482
24483         PR middle-end/42248
24484         * function.c (split_complex_args): Take a VEC to modify.
24485         (assign_parms_augmented_arg_list): Build a VEC instead of
24486         a chain of PARM_DECLs.
24487         (assign_parms_unsplit_complex): Take a VEC of arguments.
24488         Do not fixup unmodified parms.
24489         (assign_parms): Deal with the VEC.
24490         (gimplify_parameters): Likewise.
24491
24492 2010-01-17  Richard Guenther  <rguenther@suse.de>
24493
24494         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
24495         node existence check.
24496         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
24497         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
24498         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
24499         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
24500         (gimple_execute_on_growing_pred): Likewise.
24501
24502 2010-01-17  Richard Guenther  <rguenther@suse.de>
24503
24504         PR tree-optimization/42773
24505         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
24506         (compute_antic_aux): Likewise.
24507         (compute_partial_antic_aux): Likewise.
24508
24509 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
24510
24511         PR debug/42767
24512         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
24513         and US_TRUNCATE.
24514
24515 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
24516
24517         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
24518         appearance.
24519
24520         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
24521         Fix markup for strict argument.
24522
24523         (TARGET_SCHED_REORDER2): Fix argument types.
24524
24525         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
24526         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
24527
24528         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
24529         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
24530
24531         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
24532         Add argument name.
24533
24534         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
24535         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
24536         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
24537         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
24538         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
24539
24540         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
24541
24542         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
24543
24544         (TARGET_ASM_RELOC_RW_MASK): Add return type.
24545         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
24546
24547         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
24548
24549         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
24550         Use prototype.
24551
24552         (TARGET_ASM_NAMED_SECTION): Fix argument list.
24553
24554         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
24555         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
24556
24557         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
24558
24559         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
24560
24561         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
24562         referring to it.  Fix language.
24563
24564         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
24565
24566         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
24567
24568         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
24569
24570         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
24571
24572         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
24573         '@var{stream}.  Remove stray 'and'.
24574
24575         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
24576
24577         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
24578
24579         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
24580
24581         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
24582         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
24583
24584         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
24585         Fix description of return value.
24586         Rename argument "sz" to "len."
24587
24588         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
24589         Clarify meaning of 'true' return value.
24590
24591         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
24592
24593         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
24594         rep_mode versus mode_rep.
24595
24596         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
24597
24598         (TARGET_BUILTIN_DECL): Fix name.
24599
24600         (TARGET_COMMUTATIVE_P): Fix type of first argument.
24601
24602         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
24603
24604         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
24605
24606         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
24607
24608         (TARGET_RELAXED_ORDERING): Use @deftypevr.
24609
24610         (TARGET_GET_DRAP_RTX): Note that this is a hook.
24611         Clarify language.
24612
24613         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
24614         Rename argument tm_fn to md_fn.
24615
24616         (TARGET_OPTION_PRINT): Fix argument list.
24617
24618 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
24619
24620         PR target/42664
24621         * config/i386/i386.c (ix86_fixup_binary_operands):
24622         Revert FMA4 fixup of operands.
24623
24624 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24625
24626         PR gcc/42525
24627         * Makefile.in (write_entries_to_file, install-plugin):
24628         Use \012 instead of \n with tr.
24629
24630 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
24631
24632         * configure.ac (HAVE_AS_REF): New C macro.
24633         * configure: Regenerate.
24634         * config.in: Likewise.
24635         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
24636         if HAVE_AS_REF.
24637         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
24638         if HAVE_AS_REF.
24639
24640 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
24641
24642         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
24643
24644         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
24645
24646         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
24647
24648         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
24649
24650         (TARGET_IN_SMALL_DATA_P): Fix argument type.
24651
24652         (TARGET_BINDS_LOCAL_P): Fix argument type.
24653
24654         (TARGET_ASM_FILE_END): Use prototype.
24655
24656         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
24657
24658         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
24659
24660         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
24661
24662         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
24663
24664         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
24665         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
24666
24667         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
24668         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
24669
24670         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
24671         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
24672         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
24673         (TARGET_ADDR_SPACE_CONVERT): Likewise.
24674
24675         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
24676
24677         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
24678
24679         (TARGET_INIT_BUILTINS): Use prototype.
24680
24681         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
24682         Put 'const char *' in braces.  Fix parameter types.
24683         (TARGET_INVALID_CONVERSION): Fix parameter types.
24684         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
24685         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
24686
24687         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
24688         Fix argument type.
24689
24690         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
24691
24692         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
24693
24694 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
24695
24696         * doc/tm.texi (TARGET_HELP): Fix return type.
24697
24698         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
24699         in braces.  Fix argument types.
24700
24701         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
24702
24703         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
24704
24705         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
24706
24707         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
24708         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
24709
24710         (TARGET_MANGLE_TYPE): Fix argument types.
24711
24712         (TARGET_IRA_COVER_CLASSES): Use prototype.
24713
24714         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
24715
24716         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
24717
24718         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
24719
24720         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
24721
24722         (TARGET_CALLEE_COPIES): Fix argument types.
24723
24724         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
24725
24726         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
24727
24728         (TARGET_FUNCTION_VALUE): Fix argument types.
24729
24730         (TARGET_RETURN_IN_MSB): Fix argument type.
24731
24732         (TARGET_RETURN_IN_MEMORY): Fix argument types.
24733
24734         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
24735
24736         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
24737
24738         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
24739         agree with return type.
24740
24741         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
24742
24743 2010-01-15  Jing Yu  <jingyu@google.com>
24744
24745         PR rtl-optimization/42691
24746         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
24747         a pseudo to a constant and are merged, and adjust comments.
24748
24749 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
24750
24751         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
24752
24753 2010-01-15  Richard Guenther  <rguenther@suse.de>
24754
24755         PR middle-end/42739
24756         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
24757         labels of computed or non-local gotos to the destination.
24758         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
24759         landing pad label is the first label.
24760
24761 2010-01-15  Richard Guenther  <rguenther@suse.de>
24762
24763         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
24764
24765 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
24766
24767         PR target/42747
24768         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
24769         to allow generation of the xssqrtdp instruction on power7.
24770         (sqrtdf2_fpr): Ditto.
24771
24772 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
24773
24774         PR middle-end/42674
24775         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
24776         functions with noreturn attribute.
24777
24778         PR c++/42608
24779         * varasm.c (declare_weak): Add weak attribute to decl if it
24780         doesn't have one already.
24781         (assemble_external): Only add decls to weak_decls if they also
24782         have weak attribute.
24783
24784 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
24785
24786         * var-tracking.c (var_reg_delete): Don't delete the association
24787         between REGs and values or one-part variables if the register
24788         isn't clobbered.
24789
24790 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
24791
24792         PR debug/42657
24793         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
24794         because its first operand is a non-localized variable.
24795
24796 2010-01-14  Martin Jambor  <mjambor@suse.cz>
24797
24798         PR tree-optimization/42706
24799         * tree-sra.c (encountered_recursive_call): New variable.
24800         (encountered_unchangable_recursive_call): Likewise.
24801         (sra_initialize): Initialize both new variables.
24802         (callsite_has_enough_arguments_p): New function.
24803         (scan_function): Call decl and flags check only for IPA-SRA, check
24804         whether there is a recursive call and whether it has enough arguments.
24805         (all_callers_have_enough_arguments_p): New function.
24806         (convert_callers): Look for recursive calls only when
24807         encountered_recursive_call is set.
24808         (ipa_early_sra): Bail out either if
24809         !all_callers_have_enough_arguments_p or
24810         encountered_unchangable_recursive_call.
24811
24812 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24813
24814         * sel-sched.c: Add 2010 to copyright years.
24815         * sel-sched-ir.c: Likewise.
24816         * sel-sched-ir.h: Likewise.
24817
24818 2010-01-14  Martin Jambor  <mjambor@suse.cz>
24819
24820         PR tree-optimization/42714
24821         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
24822         constructors specially.
24823
24824 2010-01-14  Andi Kleen  <ak@linux.intel.com>
24825
24826         * config/i386/drivers-i386.c (detect_caches_intel):
24827         Add l2sizekb parameter and fill in.
24828         (host_detect_local_cpu): Add l2sizekb, fill in.
24829         Add Atom small cache heuristic.
24830
24831 2010-01-14  Andi Kleen  <ak@linux.intel.com>
24832
24833         * config/i386/drivers-i386.c (detect_caches_cpuid4):
24834         Add level3 parameter and fill in.
24835         (detect_caches_intel): Handle level3 cache.
24836
24837 2010-01-14  Andi Kleen  <ak@linux.intel.com>
24838
24839         * config/i386/drivers-i386.c (host_detect_local_cpu):
24840         Fix core duo detection.
24841
24842 2010-01-14  Andi Kleen  <ak@linux.intel.com>
24843
24844         * config/i386/drivers-i386.c (host_detect_local_cpu):
24845         Fix Atom detection.
24846
24847 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24848
24849         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
24850         (rs6000_variable_issue_1): this.  Use...
24851         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
24852
24853 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24854
24855         * sel-sched-ir.c (sel_restore_other_notes): Rename to
24856         sel_restore_notes.  Update all callers.  Call reemit_notes
24857         for all insns.
24858
24859 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
24860
24861         PR rtl-optimization/42246
24862         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
24863         loops.
24864
24865 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
24866
24867         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
24868         all successors is the same as number of successors in current region.
24869
24870 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24871
24872         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
24873         to rename is not separable.  Otherwise check that its LHS is not NULL.
24874
24875 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24876
24877         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
24878
24879 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24880
24881         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
24882         available registers when failed to discover LHS register class.
24883         Fix indentation.  Update comment.
24884
24885 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
24886             Alexander Monakov  <amonakov@ispras.ru>
24887
24888         PR rtl-optimization/42389
24889         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
24890         to can_issue_more.
24891         (advance_state_on_fence): Likewise.
24892         (sel_target_adjust_priority): Print debug output only when
24893         sched_verbose >= 4, not 2.
24894         (get_expr_cost): Do not issue all unique insns on the next cycle.
24895         (fill_insns): Initialize can_issue_more from the value saved
24896         with the fence.
24897         * sel-sched-ir.c (flist_add): New parameter issue_more.
24898         Init FENCE_ISSUE_MORE with it.
24899         (merge_fences): Likewise.
24900         (init_fences): Update call to flist_add.
24901         (add_to_fences, add_clean_fence_to_fences)
24902         (add_dirty_fence_to_fences): Likewise.
24903         (move_fence_to_fences): Update call to merge_fences.
24904         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
24905         sched groups.
24906         * sel-sched-ir.h (struct _fence): New field issue_more.
24907         (FENCE_ISSUE_MORE): New accessor macro.
24908
24909 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
24910
24911         PR rtl-optimization/42388
24912         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
24913         that have no predecessors nor successors.  Do not call move_bb_info
24914         for empty blocks outside of current region.
24915
24916 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24917
24918         PR rtl-optimization/42294
24919         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
24920         * sel-sched.c (move_exprs_to_boundary): Transitively add all
24921         originators' originators.
24922
24923 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
24924
24925         PR rtl-optimization/39453
24926         PR rtl-optimization/42246
24927         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
24928         for pipelining_p.
24929         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
24930
24931 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
24932             Alexander Monakov  <amonakov@ispras.ru>
24933
24934         PR middle-end/42245
24935         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
24936         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
24937         argument.  Update all callers.
24938         (tidy_control_flow): ... and here.  Recompute topological order
24939         of basic blocks in region if necessary.
24940         (sel_redirect_edge_and_branch): Change return type.  Return true
24941         if topological order might have been invalidated.
24942         (purge_empty_blocks): Export and move from...
24943         * sel-sched.c (purge_empty_blocks): ... here.
24944         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
24945         (maybe_tidy_empty_bb): Delete prototype.
24946         (purge_empty_blocks): Declare.
24947
24948 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
24949
24950         PR rtl-optimization/42249
24951         * sel-sched.c (try_replace_dest_reg): When chosen register
24952         and original register is the same, do not bail out early, but
24953         still check all original insns for validity of replacing destination
24954         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
24955         in this case.
24956
24957 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
24958
24959         PR c/42721
24960         Port from no-undefined-overflow branch:
24961         2009-03-09  Richard Guenther  <rguenther@suse.de>
24962
24963         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
24964
24965 2010-01-14  Richard Guenther  <rguenther@suse.de>
24966
24967         PR lto/42665
24968         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
24969
24970 2010-01-14  Ira Rosen  <irar@il.ibm.com>
24971
24972         PR tree-optimization/42709
24973         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
24974         as scalar type in creation of constant vector operand.
24975
24976 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24977
24978         PR testsuite/42414
24979         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
24980         (check-parallel-%): Match `testsuite' directory component only
24981         at the end.
24982
24983 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
24984
24985         PR translation/39521
24986         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
24987         strings with _().
24988
24989 2010-01-13  Richard Guenther  <rguenther@suse.de>
24990
24991         PR tree-optimization/42730
24992         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
24993         offset zero.
24994
24995 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
24996
24997         PR target/pr42542
24998         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
24999         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
25000         them signed.
25001
25002 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
25003
25004         * config/bfin/libgcc-bfin.ver: Regenerate based on current
25005         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
25006         ___umulsi3_highpart.
25007
25008         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
25009         rather than schedule_insns if the pass is enabled.
25010
25011 2010-01-13  Martin Jambor  <mjambor@suse.cz>
25012
25013         PR tree-optimization/42704
25014         * tree-sra.c (sra_modify_assign): Do not delete assignments to
25015         SSA_NAMEs.
25016
25017 2010-01-13  Martin Jambor  <mjambor@suse.cz>
25018
25019         PR tree-optimization/42703
25020         * tree-sra.c (analyze_access_subtree): Check that we can build a
25021         reference to the original data within the aggregate.
25022
25023 2010-01-13  Richard Guenther  <rguenther@suse.de>
25024
25025         PR tree-optimization/42705
25026         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
25027
25028 2010-01-13  Richard Guenther  <rguenther@suse.de>
25029
25030         PR middle-end/42716
25031         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
25032
25033 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
25034
25035         PR debug/41371
25036         * var-tracking.c (values_to_unmark): New variable.
25037         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
25038         values_to_unmark vector.  Moved body to...
25039         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
25040         instead queue it into values_to_unmark vector.
25041         (vt_find_locations): Free values_to_unmark vector.
25042
25043 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
25044
25045         * config/s390/s390.c (override_options): Set
25046         default of max-pending-list-length to 256
25047
25048 2010-01-13  Richard Guenther  <rguenther@suse.de>
25049
25050         PR lto/42678
25051         * tree-pass.h (PROP_gimple_lcx): New.
25052         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
25053         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
25054         before the final cleanup_eh.
25055         (dump_properties): Dump PROP_gimple_lcx.
25056         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
25057         (tree_lower_complex_O0): Remove.
25058         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
25059         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
25060         tree_lower_complex, schedule TODO_update_ssa.
25061         * lto-streamer-out.c (output_function): Stream the functions
25062         properties.
25063         * lto-streamer-in.c (input_function): Likewise.
25064         (lto_read_body): Do not override them here.
25065
25066 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
25067
25068         PR c/42708
25069         * c-typeck.c (build_c_cast): Fold value cast to union type before
25070         wrapping it in a CONSTRUCTOR.
25071
25072 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
25073
25074         PR rtl-optimization/42699
25075         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
25076         involved.
25077
25078 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25079
25080         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
25081         SUBTARGET_WARN_UNUSED_SPEC): Move ...
25082         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
25083         SUBTARGET_WARN_UNUSED_SPEC): ... here
25084         * config/mips/iris5.h (LIBGCC_SPEC): Define.
25085
25086 2010-01-12  Julian Brown  <julian@codesourcery.com>
25087
25088         * config/arm/neon-schedgen.ml (Utils): Don't try to
25089         open missing module.
25090         (find_with_result): New.
25091
25092 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
25093
25094         PR debug/42662
25095         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
25096         sharing when canonicalizing ({lt,ge}u (plus a b) b).
25097
25098         PR tree-optimization/42645
25099         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
25100         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
25101         decl_map, set processing_debug_stmt to -1 and return name without
25102         any remapping.
25103
25104 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
25105
25106         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
25107         binutils version, and reword target configuration description.
25108
25109 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
25110
25111         * config/avr/avr.h (LINKER_NAME): Remove.
25112
25113 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
25114
25115         PR target/42416
25116         * config/rs6000/rs6000.c (rs6000_override_options): On targets
25117         that support VSX, warn for -mno-altivec if vsx is not disabled,
25118         and disable vsx.
25119
25120 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
25121             Shujing Zhao  <pearly.zhao@oracle.com>
25122
25123         PR translation/42469
25124         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
25125         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
25126         character between option name and help text.
25127         * c.opt (imultilib): Likewise.
25128
25129 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
25130
25131         * lto-streamer-out.c (output_unreferenced_globals): Output static
25132         variables.
25133
25134 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
25135
25136         PR rtl-optimization/42621
25137         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
25138         optimizing for size.
25139         (duplicate_computed_gotos): Remove now-redundant check.
25140
25141 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
25142
25143         PR target/37454
25144         * configure.ac: Save and restore LDFLAGS and LIBS
25145         * configure: Regenerate.
25146
25147 2010-01-10  Richard Guenther  <rguenther@suse.de>
25148
25149         PR middle-end/42667
25150         * builtins.c (fold_builtin_strlen): Add type argument and
25151         convert the resulting length to it.
25152         (fold_builtin_1): Adjust.
25153
25154 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
25155
25156         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
25157         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
25158         1 insn.
25159         (num_insns_constant_wide): Adjust for that change.
25160
25161 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
25162
25163         PR debug/42631
25164         * web.c (union_defs): Add used argument, to combine uses of
25165         uninitialized regs.
25166         (entry_register): Adjust type and tests of used argument.
25167         (web_main): Widen used for new use.  Pass it to union_defs.
25168         * df.h (union_defs): Adjust prototype.
25169
25170 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
25171
25172         PR debug/42630
25173         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
25174         uses in new incoming argument.  Free body.
25175         (reset_debug_uses_in_loop): New.
25176         (analyze_insn_to_expand_var): Call the latter if the former found
25177         anything.  Fix whitespace.  Reject invalid dest overlaps before
25178         going through all insns in the loop.
25179
25180 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
25181
25182         PR debug/42629
25183         * haifa-sched.c (dying_use_p): Debug insns don't count.
25184
25185 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
25186
25187         PR middle-end/42363
25188         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
25189         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
25190         (verify_gimple_call): Reject LHS in noreturn calls.
25191
25192 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
25193
25194         PR debug/42604
25195         PR debug/42395
25196         * tree-vect-loop-manip.c (adjust_info): New type.
25197         (adjust_vec): New pointer to vector.
25198         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
25199         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
25200         (slpeel_update_phis_for_duplicate_loop): Use them.
25201         (slpeel_update_phi_nodes_for_guard1): Likewise.
25202         (slpeel_update_phi_nodes_for_guard2): Likewise.
25203         (slpeel_tree_peel_loop_to_edge): Likewise.
25204         (vect_update_ivs_after_vectorizer): Likewise.
25205
25206 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
25207
25208         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
25209         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
25210
25211 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
25212
25213         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
25214         bogus uninitialized warning.
25215
25216 2010-01-09  Richard Guenther  <rguenther@suse.de>
25217
25218         PR middle-end/42512
25219         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
25220         the evolution is compatible with the initial condition.
25221
25222 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
25223
25224         * gcc.c (process_command): Update copyright notice dates.
25225         * gcov.c (print_version): Likewise.
25226         * gcov-dump.c (print_version): Likewise.
25227         * mips-tfile.c (main): Likewise.
25228         * mips-tdump.c (main): Likewise.
25229
25230 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
25231
25232         PR target/41885
25233         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
25234         (rotlhi3): Delete.
25235         (rotlhi3_8): Delete.
25236         (rotlsi3): Delete.
25237         (rotlsi3_8): Delete.
25238         (rotlsi3_16): Delete.
25239         (rotlsi3_24): Delete.
25240         (rotl<mode>3): New.
25241         (*rotw<mode>3): New.
25242         (*rotb<mode>3): New.
25243         * config/avr/avr.c (avr_rotate_bytes): New function.
25244         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
25245
25246 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
25247
25248         PR target/37454
25249         * configure.ac: Modify -rdynamic check.
25250         * configure: Regenerate.
25251
25252 2010-01-08  DJ Delorie  <dj@redhat.com>
25253
25254         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
25255         register popping order.
25256
25257 2010-01-08  Richard Guenther  <rguenther@suse.de>
25258
25259         PR lto/42528
25260         * c.opt (fsigned-char): Also let LTO handle this option.
25261         (funsigned-char): Likewise.
25262
25263 2010-01-07  Richard Guenther  <rguenther@suse.de>
25264
25265         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
25266         (gimple_op): Likewise.
25267         (gimple_op_ptr): Likewise.
25268         (gimple_assign_set_lhs): Remove gcc_assert.
25269         (gimple_assign_set_rhs1): Likewise.
25270         (gimple_assign_set_rhs2): Likewise.
25271         (gimple_call_set_lhs): Likewise.
25272         (gimple_call_set_fn): Likewise.
25273         (gimple_call_set_fndecl): Likewise.
25274         (gimple_call_fndecl): Likewise.
25275         (gimple_call_return_type): Likewise.
25276         (gimple_call_set_chain): Likewise.
25277         (gimple_call_num_args): Likewise.
25278         (gimple_call_set_arg): Likewise.
25279         (gimple_cond_set_code): Likewise.
25280         (gimple_cond_set_lhs): Likewise.
25281         (gimple_cond_set_rhs): Likewise.
25282         (gimple_cond_set_true_label): Likewise.
25283         (gimple_cond_set_false_label): Likewise.
25284         (gimple_label_set_label): Likewise.
25285         (gimple_goto_set_dest): Likewise.
25286         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
25287         (gimple_debug_bind_get_value): Likewise.
25288         (gimple_debug_bind_get_value_ptr): Likewise.
25289         (gimple_debug_bind_set_var): Likewise.
25290         (gimple_debug_bind_set_value): Likewise.
25291         (gimple_debug_bind_reset_value): Likewise.
25292         (gimple_debug_bind_has_value_p): Likewise.
25293         (gimple_return_retval_ptr): Remove gcc_assert.
25294         (gimple_return_retval): Likewise.
25295         (gimple_return_set_retval): Likewise.
25296         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
25297         (safe_referenced_var_iterator): Remove.
25298         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
25299         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
25300         (fill_referenced_var_vec): Remove.
25301         (first_readonly_imm_use): Remove redundant gcc_assert.
25302         (phi_arg_index_from_use): Combine gcc_asserts.
25303         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
25304         (first_imm_use_stmt): Remove redundant gcc_assert.
25305         * tree-cfg.c (verify_gimple_call): Verify function and chain
25306         operands.  Verify arguments.
25307         (verify_types_in_gimple_stmt): Verify condition code and labels.
25308
25309 2010-01-07  Richard Guenther  <rguenther@suse.de>
25310
25311         PR tree-optimization/42641
25312         * sese.c (rename_map_elt_info): Use the SSA name version, do
25313         not hash pointers.
25314
25315 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
25316
25317         PR tree-optimization/42625
25318         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
25319         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
25320
25321 2010-01-07  Duncan Sands  <baldrick@free.fr>
25322
25323         * Makefile.in (PLUGIN_HEADERS): Add version.h.
25324
25325 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
25326
25327         PR target/42511
25328         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
25329         note itself is not function_invariant_p.
25330
25331 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
25332
25333         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
25334         Do not add the DF_NOTE problem.
25335         * store-motion.c (execute_rtl_store_motion): Likewise.
25336
25337 2010-01-07  Martin Jambor  <mjambor@suse.cz>
25338
25339         PR tree-optimization/42157
25340         * tree-sra.c (compare_access_positions): Stabilize sort if both
25341         accesses have integer types, return zero immediately if they are the
25342         same.
25343
25344 2010-01-06  Richard Henderson  <rth@redhat.com>
25345
25346         PR middle-end/41883
25347         * haifa-sched.c (add_to_note_list): Merge into ...
25348         (concat_note_lists): ... here, and ...
25349         (unlink_other_notes, rm_other_notes): Merge into...
25350         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
25351         NOTE_INSN_EPILOGUE_BEG.
25352
25353 2010-01-06  Richard Guenther  <rguenther@suse.de>
25354
25355         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
25356         not inline regular functions into always-inline functions.
25357
25358 2010-01-06  Nick Clifton  <nickc@redhat.com>
25359
25360         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
25361         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
25362         used together.
25363         (OVERRIDE_OPTIONS): Delete.
25364         (OPTIMIZATION_OPTIONS): Define.
25365         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
25366         * config/rx/rx.c (rx_handle_option): Issue an error message if
25367         -mcpu=rx200 and -fpu are used together.
25368         (rx_set_optimization_options): New function.  Issue an error
25369         message if an optimization attribute attempts to reset the FPU/
25370         math optimization pairing.
25371         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
25372         * config/rx/rx.opt: Set the default to 32-bit doubles.
25373         * config/rx/t-rx: Add multilibs for -nofpu option.
25374         * doc/invoke.texi: Update documentation of RX options.
25375
25376 2010-01-06  Richard Guenther  <rguenther@suse.de>
25377
25378         * tree-ssa-pre.c (name_to_id): New global.
25379         (alloc_expression_id): Simplify SSA name handling.
25380         (lookup_expression_id): Likewise.
25381         (init_pre): Zero name_to_id.
25382         (fini_pre): Free it.
25383
25384 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
25385
25386         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
25387
25388 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
25389
25390         PR target/42542
25391         * config/i386/sse.md (smaxv2di3): New.
25392         (umaxv2di3): Likewise.
25393         (sminv2di3): Likewise.
25394         (uminv2di3): Likewise.
25395
25396 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
25397
25398         PR target/42564
25399         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
25400         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
25401         (legitimize_tls_address): Likewise.
25402         (sparc_tls_referenced_p): Likewise.
25403         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
25404         and adjust calls to legitimize_pic_address.
25405         (legitimate_constant_p) Use sparc_tls_referenced_p.
25406         (legitimate_pic_operand_p): Likewise.
25407         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
25408         (sparc_tls_symbol_ref_1): Delete.
25409         (sparc_tls_referenced_p): Make static, recognize specific patterns.
25410         (legitimize_tls_address): Make static, handle CONST patterns.
25411         (legitimize_pic_address): Make static, remove unused parameter and
25412         adjust recursive calls.
25413         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
25414         and adjust call to legitimize_pic_address.
25415         (sparc_output_mi_thunk): Likewise.
25416
25417 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
25418             H.J. Lu  <hongjiu.lu@intel.com>
25419
25420         PR target/42542
25421         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
25422         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
25423         operands to make them signed.
25424
25425         Revert:
25426         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
25427
25428         PR target/42542
25429         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
25430         GTU to GT for V4SI and V2DI.
25431
25432         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
25433         (umin<mode>3): Removed.
25434         (uminv8hi3): New.
25435         (uminv4si3): Likewise.
25436
25437 2010-01-05  Martin Jambor  <mjambor@suse.cz>
25438
25439         PR tree-optimization/42462
25440         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
25441         current_function_decl to helper functions and macros.
25442
25443 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25444
25445         PR bootstrap/41771
25446         * flags.h: Don't include real.h.
25447         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
25448         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
25449         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
25450         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
25451         * dominance.c: Update copyright.
25452         * gimple.c (walk_gimple_op): Remove inline.
25453         * tree-ssa-reassoc.c: Include real.h.
25454         * Makefile.in (FLAGS_H): Remove $(REAL_H).
25455         (tree-ssa-reassoc.o): Depend on $(REAL_H).
25456
25457 2010-01-05  Nick Clifton  <nickc@redhat.com>
25458
25459         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
25460         register to push into the stack frame when the accumulator has to
25461         be saved during interrupts.
25462
25463 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
25464
25465         * doc/invoke.texi: Remove the documentation about option
25466         -Wunreachable-code.
25467         * common.opt (Wunreachable-code):  Preserved for backward
25468         compatibility.
25469         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
25470         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
25471         the backward compatibility flag section.
25472
25473 2010-01-05  Richard Guenther  <rguenther@suse.de>
25474
25475         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
25476
25477 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
25478
25479         PR other/42611
25480         * cfgexpand.c (expand_one_var): Diagnose too large variables.
25481
25482         PR tree-optimization/42508
25483         * tree-sra.c (convert_callers): Check for recursive call
25484         by comparing cgraph nodes instead of decls.
25485         (modify_function): Call ipa_modify_formal_parameters also
25486         on all same_body aliases.
25487
25488         * cgraphunit.c (cgraph_materialize_all_clones): Compare
25489         cgraph nodes when checking for same_body aliases.
25490
25491 2010-01-05  Richard Guenther  <rguenther@suse.de>
25492
25493         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
25494         allocation and lookup.
25495         (get_or_alloc_expr_for_constant): Likewise.
25496         (phi_translate): Sink allocation.
25497
25498 2010-01-04  Richard Guenther  <rguenther@suse.de>
25499
25500         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
25501         a new entry only if needed.
25502         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
25503         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
25504         hashtable lookup.
25505         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
25506         the result array.
25507         (phi_translate): Handle CONSTANTs early.
25508
25509 2010-01-04  Martin Jambor  <mjambor@suse.cz>
25510
25511         PR tree-optimization/42398
25512         * tree-sra.c (struct access): Removed flag grp_different_types.
25513         (dump_access): Do not dump the removed flag.
25514         (sort_and_splice_var_accesses): Do not set the removed flag.
25515         (sra_modify_expr): Check for type compatibility directly.
25516
25517 2010-01-04  Martin Jambor  <mjambor@suse.cz>
25518
25519         PR tree-optimization/42366
25520         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
25521         edges with variable number of parameters.
25522         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
25523         flag instead of asserting it.
25524         (ipa_read_node_info): Read uses_analysis_done flag.
25525
25526 2010-01-04  Richard Guenther  <rguenther@suse.de>
25527
25528         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
25529         iterative_hash_* as intended.
25530         (vn_reference_compute_hash): Likewise.  Simplify hashing
25531         SSA names.
25532         (vn_reference_lookup_2): Likewise.
25533         (vn_nary_op_compute_hash): Likewise.
25534         (vn_phi_compute_hash): Likewise.
25535         (expressions_equal_p): Remove strange code.
25536         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
25537         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
25538         (bitmap_insert_into_set_1): Take value-id as parameter.
25539         (add_to_value): Pass it.
25540         (bitmap_insert_into_set): Likewise.
25541         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
25542
25543 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
25544
25545         PR driver/42442
25546         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
25547         (do_self_spec): For switches with SWITCH_IGNORE set set also
25548         SWITCH_IGNORE_PERMANENTLY.
25549         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
25550         of SWITCH_IGNORE.
25551
25552 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
25553
25554         * lto-streamer-out.c (output_unreferenced_globals): Output the full
25555         tree of an unreferenced global var.
25556
25557 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
25558
25559         PR target/42542
25560         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
25561         GTU to GT for V4SI and V2DI.
25562
25563         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
25564         (umin<mode>3): Removed.
25565         (uminv8hi3): New.
25566         (uminv4si3): Likewise.
25567
25568 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
25569
25570         PR lto/42581
25571         * collect2.c (main): Turn on trace in collect2 if -v is passed
25572         to gcc with LTO.
25573
25574 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
25575
25576         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
25577         description of expression operand.
25578
25579 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
25580
25581         * configure.ac: Add install-html to target_list for Make-hooks.
25582         * configure: Regenerate.
25583         * fortran/Make-lang.in (F95_HTMLFILES): New.
25584         (fortran.html): Use it.
25585         (fortran.install-html): New.
25586         * Makefile.in (install-html): Add lang.install-html.
25587         * java/Make-lang.in (JAVA_HTMLFILES): New.
25588         (java.html): Use it.
25589         (java.install-html): New.
25590         * objc/Make-lang.in (objc.install-html): New.
25591         * objcp/Make-lang.in (obj-c++.install-html): New.
25592         * cp/Make-lang.in (c++.install-html): New.
25593         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
25594         * lto/Make-lang.in (lto.install-html): New.
25595
25596 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
25597
25598         PR lto/42520
25599         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
25600
25601 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
25602
25603         PR rtl-optimization/41862
25604         * store-motion.c (store_killed_in_insn, compute_store_table,
25605         remove_reachable_equiv_notes, replace_store_insn,
25606         build_store_vectors): Ignore all DEBUG_INSNs.
25607
25608 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
25609
25610         PR lto/41564
25611         * common.opt: Add dumpdir.
25612
25613         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
25614         isn't specified.
25615         (option_map): Add --dumpdir.
25616
25617         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
25618
25619         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
25620
25621         * opts.c (decode_options): Try dump_dir_name first if
25622         dump_base_name isn't an absolute path.
25623         (common_handle_option): Handle OPT_dumpdir.
25624
25625         * toplev.c (dump_dir_name): New.
25626         (print_switch_values): Also ignore -dumpdir.
25627
25628         * toplev.h (dump_dir_name): New.
25629
25630 2010-01-03  Richard Guenther  <rguenther@suse.de>
25631
25632         PR tree-optimization/42589
25633         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
25634         double-word expansion of bswap32.
25635
25636 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
25637
25638         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
25639         with BLOCK_FOR_INSN.
25640         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
25641         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
25642         noce_process_if_block): Likewise.
25643         * gcse.c (compute_local_properties, insert_expr_in_table,
25644         insert_set_in_table, canon_list_insert, find_avail_set,
25645         pre_insert_copy_insn): Likewise.
25646
25647         * basic-block.h (BLOCK_NUM): Move from here...
25648         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
25649
25650 2010-01-03  Richard Guenther  <rguenther@suse.de>
25651
25652         PR tree-optimization/42438
25653         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
25654         contains_may_not_return_call flag.
25655         (BB_MAY_NOTRETURN): New.
25656         (valid_in_sets): Trapping nary operations are not valid
25657         in blocks that may not return.
25658         (insert_into_preds_of_block): Remove check for trapping expressions.
25659         (compute_avail): Compute also BB_MAY_NOTRETURN.
25660
25661 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
25662
25663         * doc/invoke.texi: Add 2010 to copyright years.
25664
25665 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
25666
25667         * config/sparc/sparc.c: Fix formatting nits.
25668
25669 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
25670             Alexander Monakov  <amonakov@ispras.ru>
25671
25672         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
25673
25674 2010-01-02  Richard Guenther  <rguenther@suse.de>
25675
25676         PR middle-end/42577
25677         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
25678         (simplify_switch_using_ranges): Mark to be removed edges
25679         as non-executable.
25680
25681 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25682
25683         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
25684
25685         * collect2.c (scan_libraries): Add missing argument in call to
25686         scan_prog_file.
25687
25688 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
25689
25690         PR target/42448
25691         * config/alpha/predicates.md (aligned_memory_operand): Return false
25692         for CQImode.
25693         (unaligned_memory_operand): Return true for CQImode.
25694         * config/alpha/alpha.c (get_aligned_mem): Assert that location
25695         doesn not cross aligned SImode word boundary.
25696
25697 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
25698
25699         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
25700         Remove.
25701         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
25702         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
25703
25704 2010-01-02  Richard Guenther  <rguenther@suse.de>
25705
25706         PR lto/41597
25707         * toplev.c (compile_file): Emit LTO marker properly.  Change
25708         it to __gnu_lto_v1.
25709         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
25710
25711 2010-01-01  Richard Guenther  <rguenther@suse.de>
25712
25713         PR debug/42455
25714         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
25715
25716 2010-01-01  Richard Guenther  <rguenther@suse.de>
25717
25718         PR c/42570
25719         * c-decl.c (grokdeclarator): For zero-size arrays force
25720         structural equality checks as layout_type does.
25721
25722 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
25723
25724         * builtins.c: Update copyright to 2010.
25725
25726 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
25727
25728         PR lto/42531
25729         * lto-streamer-out.c (produce_asm): Revert the last change.
25730         (copy_function): Likewise.
25731
25732         * lto-streamer.c (lto_get_section_name): Skip any leading
25733         asterisk in name.
25734
25735 2010-01-01  Richard Guenther  <rguenther@suse.de>
25736
25737         PR middle-end/42559
25738         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
25739         for LABEL_DECLs.
25740
25741 \f
25742 Copyright (C) 2010 Free Software Foundation, Inc.
25743
25744 Copying and distribution of this file, with or without modification,
25745 are permitted in any medium without royalty provided the copyright
25746 notice and this notice are preserved.