OSDN Git Service

18893e72a5e97bda05655cc4b30493b6dfad02d6
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2
3         * combine.c (try_combine): Set subst_low_luid to i0.
4
5 2010-09-06  Richard Guenther  <rguenther@suse.de>
6
7         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
8         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
9         (build_aligned_type): Declare.
10         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
11         (check_aligned_type): New function.
12         (build_aligned_type): Likewise.
13         * expr.c (expand_assignment): Handle misaligned stores via
14         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
15         (expand_expr_real_1): Likewise.
16         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
17         * tree-vect-stmts.c (vectorizable_store): Do not build
18         MISALIGNED_INDIRECT_REF but initialize alignment information.
19         (vectorizable_load): Likewise.
20         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
21         handling.
22         * cfgexpand.c (expand_debug_expr): Likewise.
23         * dwarf2out.c (loc_list_from_tree): Likewise.
24         * fold-const.c (maybe_lvalue_p): Likewise.
25         (operand_equal_p): Likewise.
26         (build_fold_addr_expr_with_type_loc): Likewise.
27         * gimplify.c (gimplify_addr_expr): Likewise.
28         (gimplify_expr): Likewise.
29         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
30         (verify_gimple_assign_single): Likewise.
31         * tree-dump.c (dequeue_and_dump): Likewise.
32         (tree_could_trap_p): Likewise.
33         * tree-predcom.c (ref_at_iteration): Likewise.
34         * tree-pretty-print.c (dump_generic_node): Likewise.
35         (op_code_prio): Likewise.
36         (op_symbol_code): Likewise.
37         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
38         * tree-ssa-loop-im.c (for_each_index): Likewise.
39         (gen_lsm_tmp_name): Likewise.
40         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
41         (find_interesting_uses_address): Likewise.
42         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
43         * tree-ssa-operands.c (get_expr_operands): Likewise.
44         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
45         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
46         (ao_ref_init_from_vn_reference): Likewise.
47         * tree.c (staticp): Likewise.
48         (build1_stat): Likewise.
49         (reference_alias_ptr_type): Likewise.
50         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
51         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
52         MISALIGNED_INDIRECT_REF handling.
53
54 2010-09-06  Richard Guenther  <rguenther@suse.de>
55
56         PR tree-optimization/45534
57         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
58         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
59         on the target.
60         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
61         valid on the target.
62
63 2010-09-06  Andreas Schwab  <schwab@redhat.com>
64
65         * configure.ac: Quote argument of AC_MSG_WARN.
66         * configure: Regenerate.
67
68 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
69
70         * sel-sched.c (move_cond_jump): Correct arguments to
71         maybe_tidy_empty_bb.
72         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
73
74 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
75
76         PR rtl-optimization/44919
77         * sel-sched.c (move_cond_jump): Remove assert, check that
78         the several blocks case can only happen with mutually exclusive
79         insns instead.  Rewrite the movement code to support moving through
80         several basic blocks.
81
82 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
83
84         * config/i386/i386.md (iptrsize): New mode attribute.
85         (tp_seg): Ditto.
86         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
87         mode iterator.
88         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
89         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
90         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
91         (stack_tls_protect_set_<mode>): Ditto from
92         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
93         of thread base pointer load.
94         (stack_tls_protect_test_<mode>): Ditto from
95         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
96         of thread base pointer load.
97         (stack_protect_set): Rewrite using indirect functions.
98         (stack_protect_test): Ditto.
99         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
100         (ix86_print_operand): Handle '@'.
101
102 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
103
104         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
105         MINUS_EXPR.
106
107 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
108
109         * doc/invoke.texi: Document -Wdouble-promotion.
110         * c-typeck.c (convert_arguments): Check for implicit conversions
111         from float to double.
112         (do_warn_double_promotion): New function.
113         (build_conditional_expr): Use it.
114         (build_binary_op): Likewise.
115
116 2010-09-05  Richard Guenther  <rguenther@suse.de>
117
118         PR tree-optimization/45535
119         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
120         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
121         dereferencing it.
122         (indirect_refs_may_alias_p): Likewise.
123
124 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
125
126         * config/sh/sh.c (sh_option_override): Make static.
127         Adjust comments.  Declare.
128         (sh_function_value_regno_p): Likewise.
129         (sh_register_move_cost): Modify the arguments, make static.
130         Adjust comments.  Declare.
131         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
132         TARGET_FUNCTION_VALUE_REGNO_P): Define.
133         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
134         REGISTER_MOVE_COST): Delete.
135         * config/sh/sh-protos.h (sh_override_options): Delete.
136         (sh_register_move_cost): Delete.
137         (sh_function_value_regno_p): Delete.
138
139 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
140
141         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
142         m32r_function_value_regno_p): New functions.
143         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
144         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
145         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
146         FUNCTION_VALUE_REGNO_P): Remove.
147
148 2010-09-04  Jan Hubicka  <jh@suse.cz>
149
150         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
151         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
152         fold_read_from_constant_string.
153
154         * gimple.h (canonicalize_constructor_val): Declare.
155         * gimple-fold.c (canonicalize_constructor_val): New function.
156         (get_symbol_constant_value):Use it.
157         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
158
159 2010-09-04  Jan Hubicka  <jh@suse.cz>
160
161         * tree-switch-conversion.c (build_one_array): Set constructor to be
162         static.
163         * varpool.c (varpool_finalize_decl): Compute const_value_known.
164
165 2010-09-04  Richard Guenther  <rguenther@suse.de>
166
167         PR bootstrap/45519
168         * tree-flow.h (force_gimple_operand_1): Declare.
169         (force_gimple_operand_gsi_1): Likewise.
170         * gimplify.c (force_gimple_operand_1): New worker taking a
171         gimple predicate for ...
172         (force_gimple_operand): ... which now wraps it.
173         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
174         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
175         last change.
176         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
177         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
178         (create_mem_ref): Likewise.
179
180 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
181
182         * config/i386/predicates.md (sse_reg_operand): New predicate.
183         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
184         predicate for operand 1.
185         (XFmode push splitter): Use fp_register_operand predicate
186         for operand 1.
187         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
188         (SF-DF float_extend push splitter): Add reload_completed insn
189         predicate.
190         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
191         MODEF mode macro.  Add reload_completed insn predicate.
192
193 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
194
195         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
196         (struct df_extract_ref): Remove.
197         (union df_ref_d): Remove extract_ref member.
198         (df_ref_create): Remove last three arguments.
199         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
200         * df-scan.c (df_ref_record): Remove last three arguments, do not
201         pass them to df_ref_create_structure.
202         (df_uses_record): Remove first and last three arguments.  Replace
203         first argument with DF_REF_REGULAR, adjust calls to remove the
204         width, offset and mode.  Always call recursively on the second
205         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
206         (df_ref_create_structure): Remove first argument.
207         (struct df_scan_problem_data): Remove ref_extract_pool.
208         (df_scan_free_internal): Do not free it.
209         (df_scan_alloc): Do not allocate it.
210         (df_ref_create): Remove last three arguments, do not pass them to
211         df_ref_create_structure.
212         (df_free_ref): Remove DF_REF_EXTRACT case.
213         (df_notes_rescan): Adjust call to df_uses_record.
214         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
215         Remove DF_REF_EXTRACT case.
216         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
217         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
218         and SUBREG definitions.
219         (df_get_conditional_uses): Remove references to width/offset/mode,
220         adjust call to df_ref_create_structure.
221         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
222         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
223         calls to df_uses_record and df_ref_record.
224         * fwprop.c (update_df): Remove references to width/offset/mode,
225         adjust call to df_ref_create.
226
227 2010-09-03  Jan Hubicka  <jh@suse.cz>
228
229         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
230         (build_cdtor_fns): Update use of build_cdtor.
231
232 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
233
234         * doc/options.texi (SeparateAlias): Document.
235         * opt-functions.awk (switch_flags): Handle SeparateAlias.
236         * opth-gen.awk: Generate enumeration names for options marked
237         SeparateAlias, but not for those marked Ignore.
238         * opts-common.c (generate_canonical_option): Don't output separate
239         argument for options marked CL_SEPARATE_ALIAS.
240         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
241         * opts.h (CL_SEPARATE_ALIAS): New.
242         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
243         CL_COMMON): Adjust definitions.
244         * config/i386/darwin.opt, config/mips/sde.opt: New.
245         * common.opt (fdump-final-insns): New.
246         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
247         i386/darwin.opt.
248         (mips*-sde-elf*): Add mips/sde.opt.
249         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
250         -mno-data-in-code and -mcode-xonly here.
251         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
252         * gcc.c (option_map): Add "j" to --dump entry.
253         (translate_options): Don't translate -d to -foutput-class-dir= here.
254
255 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
256
257         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
258         DR_IS_WRITE.
259         (compute_all_dependences): Same.
260         (create_rdg_edge_for_ddr): Same.
261         * tree-data-ref.h (DR_IS_WRITE): New.
262         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
263         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
264         (write_memrefs_written_at_least_once): Same.
265         * tree-predcom.c (suitable_component_p): Same.
266         (determine_roots_comp): Same.
267         (execute_load_motion): Same.
268         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
269         (vect_enhance_data_refs_alignment): Same.
270         (vect_analyze_group_access): Same.
271
272 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
273
274         PR testsuite/42843
275         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
276         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
277
278 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
279
280         * dwarf2out.c (file scope): Remove #if0'd code.
281         (gen_subprogram_die): Same.
282
283 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
284
285         PR middle-end/45484
286         * dwarf2out.c (flush_queued_reg_saves): Rename to...
287         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
288         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
289         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
290         * config/i386/i386.c (output_set_got): Call it.
291
292 2010-09-03  Michael Matz  <matz@suse.de>
293
294         PR middle-end/45415
295         * tree-sra.c (sra_modify_assign): If we modify the statement,
296         say so.
297
298         * tree-ssa.c (verify_ssa): Check number of operands and links
299         per statement to agree.
300
301 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
302             Iain Sandoe  <iains@gcc.gnu.org>
303
304         PR target/45476
305         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
306         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
307         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
308
309 2010-09-03  Richard Guenther  <rguenther@suse.de>
310
311         * lto-streamer-out.c (output_function): Output function
312         start and end loci.
313         * lto-streamer-in.c (input_function): Input function start
314         and end loci.
315
316 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
317
318         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
319         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
320         * configure: Regenerate.
321         * aclocal.m4: Regenerate.
322
323 2010-09-03  Jan Hubicka  <jh@suse.cz>
324
325         PR lto/44812
326         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
327         on functions/variables in other partition.
328
329 2010-09-03  Jan Hubicka  <jh@suse.cz>
330
331         * cgraph.h (struct varpool_node): Add const_value_known.
332         (varpool_decide_const_value_known): Declare.
333         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
334         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
335         (input_varpool_node): Restore const_value_known.
336         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
337         initializer folding.
338         * ipa.c (ipa_discover_readonly_nonaddressable_var,
339         function_and_variable_visibility): Compute const_value_known.
340         * gimple-fold.c (get_symbol_constant_value): Use varpool for
341         initializer folding.
342         * varpool.c (varpool_decide_const_value_known): New function.
343
344 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
345
346         * config/i386/i386.md: Remove empty preparation statements
347         from splitters.
348
349 2010-09-03  Jan Hubicka  <jh@suse.cz>
350
351         * passes.c (rest_of_decl_compilation): Do not add local vars into
352         varpool.
353         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
354         static or extern vars are in varpool.
355         (varpool_finalize_decl): Sanity check that only static vars are
356         finalized.
357
358 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
359
360         PR debug/45500
361         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
362         not just generic vectors with BLKmode.
363
364 2010-09-03  Richard Guenther  <rguenther@suse.de>
365
366         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
367         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
368         * tree.h (TMR_SYMBOL): Remove.
369         (TMR_BASE, TMR_OFFSET): Adjust.
370         (TMR_INDEX2): New.
371         * alias.c (ao_ref_from_mem): Use TMR_BASE.
372         * builtins.c (get_object_alignment): Merge TMR_BASE and
373         TMR_SYMBOL handling.
374         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
375         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
376         handling.  Also allow TARGET_MEM_REF as base address.
377         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
378         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
379         base.  Gimplify TMR_INDEX2.
380         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
381         * tree-dfa.c (get_ref_base_and_extent): Likewise.
382         (get_addr_base_and_unit_offset): Likewise.
383         * tree-eh.c (tree_could_trap_p): Likewise.
384         * tree-pretty-print.c (dump_generic_node): Likewise.
385         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
386         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
387         base to index2.
388         (get_address_description): Reconstruct addres description
389         from merged TMR_BASE and TMR_INDEX2.
390         (maybe_fold_tmr): Fold propagated addresses.
391         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
392         MEM_REF and TARGET_MEM_REF paths.
393         (indirect_refs_may_alias_p): Likewise.
394         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
395         instead of TMR_SYMBOL.
396         * tree-ssa-operands.c (get_tmr_operands): Simplify.
397         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
398         according to changes ...
399         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
400         Split TARGET_MEM_REF into two fields plus the base.
401         * tree.c (mem_ref_offset): Simplify.
402         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
403         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
404         Strip NOPs when folding MEM_REF addresses.
405         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
406         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
407         (fold_gimple_assign): ... not here.
408
409 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
410
411         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
412         * config/mips/mips.c (mips_shift_truncation_mask): New function.
413         (TARGET_SHIFT_TRUNCATION_MASK): Define.
414
415 2010-09-02  Richard Henderson  <rth@redhat.com>
416
417         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
418         instead of readelf in the test.
419         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
420         in the .debug_frame section for coff targets.
421         * configure: Rebuild.
422
423 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
424
425         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
426         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
427         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
428         (m32c_class_likely_spilled_p): Make static. Change argument type to
429         reg_class_t. Change result type to bool.
430
431 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
432
433         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
434         to convert (double)(long) into a single FRIZ instruction or not
435         when -ffast-math is used.
436
437         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
438         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
439         or FRIZ instruction if -ffast-math.
440         * config/rs6000/rs6000.md (friz): Ditto.
441
442         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
443
444 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
445
446         * opth-gen.awk (quote, comma): Remove unused variables.
447
448 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
449
450         * arm.c (arm_override_options): Correct fall-back code to use
451         SUBTARGET_CPU_DEFAULT.
452
453 2010-09-02  Julian Brown  <julian@codesourcery.com>
454
455         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
456         unspecs.
457         (vcond<mode>, vcondu<mode>): New expanders.
458         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
459         comparisons with zero.
460         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
461         * config/arm/constraints.md (Dz): New constraint.
462
463 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
464
465         * target.def (class_likely_spilled_p): New hook.
466         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
467         * doc/tm.texi: Regenerate.
468         * targhooks.c (default_class_likely_spilled_p): New function.
469         * targhooks.h (default_class_likely_spilled_p): Declare.
470         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
471         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
472         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
473         Use fixed_reg_set instead of fixed_regs.
474         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
475         * calls.c (avoid_likely_spilled_reg): Ditto.
476         * ira-conflicts.c (ira_build_conflicts): Ditto.
477         * ira.c (update_equiv_regs): Ditto.
478         * mode-switching.c (create_pre_exit): Ditto.
479         * regmove.c (find_matches): Ditto.
480         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
481         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
482         (small_register_class_p): New inline function.
483         (push_secondary_reload, find_reusable_reload, find_reloads): Use
484         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
485
486         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
487         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
488         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
489
490 2010-09-02  Richard Guenther  <rguenther@suse.de>
491
492         PR tree-optimization/44937
493         PR tree-optimization/45412
494         * ipa-split.c (split_function): Properly remove PHI nodes.
495
496 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
497
498         * opts.h (struct cl_option): Add warn_message field.
499         (struct cl_decoded_option): Add warn_message field.
500         * doc/options.texi (Ignore, Warn): Document.
501         * opt-functions.awk (needs_state_p): Don't consider aliases or
502         ignored options to need state saved.
503         * optc-gen.awk: Handle Warn and Ignore.
504         * opth-gen.awk: Output OPT_SPECIAL_ignore.
505         * opts-common.c (decode_cmdline_option): Set warn_message field.
506         Handle ignored options.
507         (decode_cmdline_options_to_array, generate_option,
508         generate_option_input_file): Set warn_message field.
509         (read_cmdline_option): Generate warnings from warn_message field.
510         Handle ignored options.
511         * common.opt (Wunreachable-code, fargument-alias,
512         fargument-noalias, fargument-noalias-global,
513         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
514         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
515         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
516         ftree-salias): Mark Ignore.
517         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
518         -mintel-syntax and -mno-intel-syntax here.
519         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
520         using Warn.
521         * opts.c (common_handle_option): Don't handle options marked as
522         ignored.
523         (enable_warning_as_error): Handle ignored options.
524
525 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
526
527         PR driver/44076
528         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
529         alias_target fields.
530         * opt-functions.awk (opt_sanitized_name): Don't handle
531         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
532         * optc-gen.awk: Generate alias fields.
533         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
534         Don't generate such constants for aliases.
535         * opts-common.c (generate_canonical_option): New.
536         (decode_cmdline_option): Handle aliases.  Use
537         generate_canonical_option for known options instead of copying the
538         input option text.
539         * doc/options.texi (Alias): Document.
540         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
541         fstack-check, specs): Mark as aliases.
542         * gcc.c (driver_handle_option): Canonicalize -L options to joined
543         arguments.
544         (driver_handle_option): Don't handle OPT_specs.
545         * opts.c (common_handle_option): Don't handle options marked as
546         aliases.
547         (enable_warning_as_error): Handle aliases.
548         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
549         OPT_Wlarger_than_eq.
550         * tree-optimize.c (tree_rest_of_compilation): Use
551         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
552
553 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
554
555         * config/i386/i386.md (nonmemory_operand): New mode attribute.
556         (push memory peephole2): Macroize peepholes using SWI mode iterator.
557         (move immediate to memory peephole2): Macroize peepholes using
558         SWI124 mode iterator.
559         (non-pairable NOT peephole2): Macroize peepholes using SWI124
560         mode iterator.
561         (simple lea add peephole2): Macroize peepholes using SWI48
562         mode iterator.
563         (simple lea mult peephole2): Ditto.
564         (imul by 3,5,9 to lea peephole2): Ditto.
565         (mov $-1, reg peephole2): Macroize peepholes using SWI248
566         mode iterator.
567         (imul $32bit_imm,mem,reg peephole2): Ditto.
568         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
569
570 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
571
572         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
573
574 2010-09-02  Olivier Hainque  <hainque@adacore.com>
575
576         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
577         (allocno_priority_compare_func): Use it instead of a straight
578         difference computation over priorities.
579
580 2010-09-02  Andi Kleen  <ak@linux.intel.com>
581
582         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
583
584 2010-09-02  Ira Rosen  <irar@il.ibm.com>
585
586         * tree-vectorizer.h (get_later_stmt): New function.
587         (vect_analyze_data_ref_dependences): Add argument.
588         * tree-vect-loop.c (vect_analyze_loop): Update call to
589         vect_analyze_data_ref_dependences.
590         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
591         New function.
592         (vect_analyze_data_ref_dependence): Add argument for basic block
593         dependencies. Check dependencies in basic block vectorization.
594         (vect_analyze_data_ref_dependences): Add argument and update call to
595         vect_analyze_data_ref_dependences.
596         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
597         (vect_bb_vectorizable_with_dependencies): New.
598         (vect_slp_analyze_bb): Check dependencies in basic block.
599         (vect_schedule_slp_instance): Insert stores before the last store in
600         SLP instance.
601
602 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
603
604         PR target/45476
605         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
606         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
607
608 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
609
610         PR middle-end/45458
611         * bb-reorder.c (add_labels_and_missing_jumps): Treat
612         bbs ending with throwing insns like blocks ending with a call.
613         (fix_up_fall_thru_edges): Likewise.
614
615 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
616
617         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
618         (m32c_function_arg_advance): Delete.
619         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
620         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
621         comments.  Take a const_tree and a bool.  Declare.
622         (m32c_function_arg_advance): Likewise.
623         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
624
625 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
626
627         PR target/45476
628         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
629         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
630         * config/i386/mingw32.h: ... here.
631
632 2010-09-01  Andi Kleen  <ak@linux.intel.com>
633
634         PR lto/45475
635         * lto-streamer-in.c (lto_input_ts_target_option): Add.
636         (lto_input_tree_pointers): Call lto_input_ts_target_option.
637         * lto-streamer-out (lto_output_ts_target_option): Add.
638         (lto_output_tree_pointers): Call lto_output_ts_target_option.
639
640 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
641
642         PR/target 45452
643         * config/i386/cygwin.h: Change order of specified import libraries.
644         * config/i386/mingw32.h: Likewise.
645         * config/i386/t-cygwin: Likewise.
646         * config/i386/t-mingw32: Likewise.
647         * config/i386/t-mingw-w32: Likewise.
648         * config/i386/t-mingw-w64: Likewise.
649
650 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
651
652         * config/arm/neon-schedgen.ml (core): New type.
653         (allCores): List of supported cores.
654         (availability_table): Add supported cores.
655         (collate_bypasses): Accept core as a parameter.
656         (worst_case_latencies_and_bypasses): Accept core as a parameter.
657         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
658         and coreStr to get tune attribute and prefix for functional units.
659         (emit_bypasses): Accept core name and use it.
660         (calculate_per_core_availability_table): New.
661         (filter_core): New.
662         (calculate_core_availability_table): New.
663         (main): Use calculate_core_availablity_table.
664         * config/arm/cortex-a8-neon.md: Update copyright year.
665         Regenerated from ml file and merged in.
666         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
667         cortex_a8_neon_mrc.
668
669 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
670
671         * Makefile.in (tree-switch-conversion.o): Update dependencies.
672
673 2010-09-01  Richard Guenther  <rguenther@suse.de>
674
675         * alias.c (ao_ref_from_mem): Adjust.
676         * builtins.c (get_object_alignment): Likewise.
677         * cfgexpand.c (expand_debug_expr): Likewise.
678         * gimple.c (get_base_address): Likewise.
679         * tree-dfa.c (get_ref_base_and_extent): Likewise.
680         (get_addr_base_and_unit_offset): Likewise.  Fix for
681         both TMR_SYMBOL and TMR_BASE being set.
682         * tree-eh.c (tree_could_trap_p): Likewise.
683         * gimplify.c (gimplify_expr): Do not attempt to gimplify
684         TMR_SYMBOL.  Always gimplify TMR_BASE.
685         * tree-cfg.c (verify_types_in_gimple_reference): Verify
686         TMR_BASE if there is a TMR_SYMBOL.
687         * tree-pretty-print.c (dump_generic_node): Adjust.
688         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
689         (tree_mem_ref_addr): Likewise.
690         (create_mem_ref_raw): Likewise.
691         (move_fixed_address_to_symbol): Likewise.
692         (create_mem_ref): Likewise.
693         (dump_mem_address): Likewise.
694         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
695         Fix for both TMR_SYMBOL and TMR_BASE being set.
696         (indirect_refs_may_alias_p): Likewise.
697         * tree-ssa-operands.c (get_tmr_operands): Adjust.
698         * tree.def (TARGET_MEM_REF): Adjust documentation.
699
700 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
701
702         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
703         Rename from X86_TUNE_ADD_ESP_4.
704         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
705         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
706         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
707         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
708         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
709         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
710         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
711         * config/i386/i386.c (initial_ix86_tune_features)
712         <X86_TUNE_SINGLE_POP>: Invert members.
713         <X86_TUNE_DOUBLE_POP>: Ditto.
714         <X86_TUNE_SINGLE_PUSH>: Ditto.
715         <X86_TUNE_DOUBLE_PUSH>: Ditto.
716         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
717         No longer exported.
718         (push peephole2 patterns): Macroize peepholes using P mode iterator.
719         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
720         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
721         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
722
723 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
724
725         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
726         a volatile LHS if the constructor has only one element.
727
728 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
729
730         PR bootstrap/45321
731         * tree.c (stdarg_p): Make fntype parameter const.
732         * tree.h (stdarg_p): Likewise.
733         (function_args_iterator): Remove unused fntype field.
734         (function_args_iter_init): Do not initialize fntype
735         field.  Make fntype parameter const.
736
737 2010-09-01  Richard Guenther  <rguenther@suse.de>
738
739         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
740         estimate.
741         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
742         (execute_vrp): Compute number of iteration estimates.
743         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
744         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
745         * tree-data-ref.c (estimated_loop_iterations): Adjust.
746         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
747         Infer loop bounds from undefined behavior based on a new parameter.
748         (estimate_numbers_of_iterations): Likewise.
749         (scev_probably_wraps_p): Adjust.
750         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
751
752 2010-09-01  Nick Clifton  <nickc@redhat.com>
753
754         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
755         where appropriate.
756         (xstormy16_legitimate_address_p): Use true and false instead of 1
757         and 0.
758         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
759         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
760         magic constant 2.
761         (xstormy16_expand_call): Fix comment at start of function.
762
763 2010-09-01  Nick Clifton  <nickc@redhat.com>
764
765         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
766         when pushing accumulator register.
767         (rx_get_stack_layout): Always save call clobbered registers inside
768         interrupt handlers.
769         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
770
771 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
772
773         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
774         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
775
776         * libgcc-std.ver (GCC_4.6.0): Define version.
777
778 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
779
780         * tree-nested.c (convert_all_function_calls): Iterate until after the
781         sum of static chains in the nest doesn't change.
782
783 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
784
785         * config/m32c/m32c.c (classes_intersect): Remove.
786         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
787         reg_classes_intersect_p instead of classes_intersect.
788         (class_can_hold_mode): Change arguments type from enum reg_class to
789         reg_class_t.  Use reg_class_contents instead of class_contents.
790         (m32c_register_move_cost): Make static. Change arguments type from
791         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
792         classes_intersect. Use reg_class_contents instead of class_contents.
793         (m32c_memory_move_cost): Make static. Change arguments type from
794         enum reg_class to reg_class_t.
795         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
796         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
797         * config/m32c/m32c-protos.h (m32c_register_move_cost,
798         m32c_memory_move_cost): Remove.
799
800 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
801
802         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
803         (arm_function_arg): Delete.
804         (arm_needs_doubleword_align): Take a const_tree.
805         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
806         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
807         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
808         (arm_function_arg): Make static.  Take a const_tree and a bool.
809         (arm_function_arg_advance): Likewise.
810         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
811
812 2010-08-31  Andi Kleen  <ak@linux.intel.com>
813
814         * common.opt (fwhopr=): Update for -fwhopr=jobserver
815         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
816         * lto-wrapper.c (run_gcc): Add jobserver mode.
817         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
818         argument.
819
820 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
821
822         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
823         (popsi1): Ditto.
824         (*popdi1_epilogue): Ditto.
825         (*popsi1_epilogue): Ditto.
826         (popsi, popdi peephole2 patterns): Update peepholes for changed
827         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
828
829         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
830         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
831
832         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
833         (override_options): Do not initialize removed ix86_gen_pop1.
834         (gen_pop): New static function.
835         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
836         (release_scratch_register_on_entry): Ditto.
837         (ix86_restore_reg_using_pop): Ditto.
838         (ix86_expand_epilogue): Ditto.
839
840 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
841
842         PR middle-end/45461
843         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
844
845 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
846
847         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
848         semicolons.
849
850 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
851
852         * doc/extend.texi: Fix documentation of the return value of
853         __builtin_choose_expr.
854
855 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
856
857         * config/v850/v850-protos.h (function_arg): Delete.
858         * config/v850/v850.h (FUNCTION_ARG): Delete.
859         (FUNCTION_ARG_ADVANCE): Move code to...
860         * config/v850/v850.c (v850_function_arg_advance): ...here.
861         (v850_function_arg): Make static.  Take a const_tree and a bool.
862         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
863
864 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
865
866         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
867         these...
868         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
869         ...and these...
870         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
871         ..to here..
872         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
873         ...and here.
874         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
875
876 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
877
878         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
879         Delete.
880         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
881         * config/rx/rx.c (rx_function_arg_size): Make static.
882         (rx_function_arg): Likewise.
883         (rx_function_arg_advance): New function.
884         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
885
886 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
887
888         * config/arm/arm.c (arm_override_options): Remove superfluous test.
889         Fix indentation.
890
891 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
892
893         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
894         (dwarf2out_decl) <CONST_DECL>: Likewise.
895
896 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
897
898         Stack usage support
899         * common.opt (-fstack-usage): New option.
900         * doc/invoke.texi (Debugging options): Document it.
901         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
902         allocate_dynamic_stack_space.
903         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
904         and propagate it to allocate_dynamic_stack_space.
905         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
906         * calls.c (initialize_argument_information): Pass TRUE as 4th
907         argument to allocate_dynamic_stack_space.
908         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
909         to 1 when pushing a variable-sized argument onto the stack.  Pass
910         TRUE as 4th argument to allocate_dynamic_stack_space.
911         Update current_function_pushed_stack_size.
912         (emit_library_call_value_1): Likewise.
913         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
914         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
915         attempt to find an upper bound.  Remove redundant code for the
916         SETJMP_VIA_SAVE_AREA case.
917         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
918         * function.h (struct stack_usage): New structure.
919         (current_function_static_stack_size): New macro.
920         (current_function_dynamic_stack_size): Likewise.
921         (current_function_pushed_stack_size): Likewise.
922         (current_function_dynamic_alloc_count): Likewise.
923         (current_function_has_unbounded_dynamic_stack_size): Likewise.
924         (current_function_allocates_dynamic_stack_space): Likewise.
925         (struct function): Add new field 'su'.
926         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
927         add the value of the dynamic offset to the dynamic stack usage.
928         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
929         for variable-sized objects.
930         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
931         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
932         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
933         BUILT_IN_ALLOCA for variable-sized objects.
934         * output.h (output_stack_usage): Declare.
935         * toplev.c (stack_usage_file): New file pointer.
936         (output_stack_usage): New function.
937         (open_auxiliary_file): Likewise.
938         (lang_dependent_init): Open file if flag_stack_usage is set.
939         (finalize): Close file if stack_usage_file is not null.
940         * tree.h (ALLOCA_FOR_VAR_P): New macro.
941         * config/alpha/alpha.c (compute_frame_size): New function.
942         (alpha_expand_prologue): Use it.
943         (alpha_start_function): Likewise.
944         (alpha_expand_epilogue): Likewise.  Set stack usage info.
945         * config/i386/i386.c (ix86_expand_prologue): Likewise.
946         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
947         * config/mips/mips.c (mips_expand_prologue): Likewise.
948         * config/pa/pa.c (hppa_expand_prologue): Likewise.
949         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
950         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
951
952 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
953
954         PR tree-optimization/45427
955         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
956         Handle the case that the exit is never taken correctly.
957         (number_of_iterations_ne): Pass exit_must_be_taken to
958         number_of_iterations_ne_max.
959
960 2010-08-30  Catherine Moore  <clm@codesourcery.com>
961
962         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
963         Infer -mdspr2 for the the 74K.
964
965 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
966
967         PR debug/45419
968         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
969
970         PR middle-end/45423
971         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
972         and TRUTH_{AND,OR,XOR}_EXPR.
973         * c-parser.c (c_parser_omp_atomic): Handle boolean
974         {PRE,POST}_{INC,DEC}REMENT.
975
976 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
977
978         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
979         (function_arg): Delete.
980         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
981         (FUNCTION_INCOMING_ARG): Delete.
982         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
983         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
984         and a bool.
985         (function_arg): Rename to...
986         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
987         a bool.
988         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
989         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
990         (TARGET_FUNCTION_INCOMING_ARG): Define.
991
992 2010-08-30  Richard Guenther  <rguenther@suse.de>
993
994         PR tree-optimization/21602
995         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
996         using points-to information.
997
998 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
999
1000         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
1001
1002 2010-08-30  Richard Guenther  <rguenther@suse.de>
1003
1004         PR tree-optimization/45449
1005         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
1006         variables.
1007
1008 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
1009
1010         * opts.h (CL_ERR_NEGATIVE): Define.
1011         * opts.c (unknown_option_callback): Don't postpone warnings for
1012         options marked with CL_ERR_NEGATIVE.
1013         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
1014         for negative versions of CL_REJECT_NEGATIVE options.
1015
1016 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
1017
1018         * config/i386/i386.md (zero_extendsidi2_1): Rename from
1019         zero_extendsidi2_32.
1020         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
1021         using SWI12 mode iterator.
1022         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
1023         to define_insn_and_split pattern.
1024         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
1025         using SWI24 mode iterator.
1026         (*zero_extendqi<mode>2_and): Macroize insn from
1027         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
1028         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
1029         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
1030         SWI24 mode iterator.
1031         (*zero_extendqi<mode>2_movzbl): Ditto from
1032         *zero_extendqi{hi,si}2_movzbl.
1033         (extendsidi2_1): Rename from extendsidi2_32.
1034         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
1035         SWI12 mode iterator.
1036
1037 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
1038
1039         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
1040         general purpose registers.
1041         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
1042         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
1043         with general purpose registers and memory operands.  Add associated
1044         CCImode post-reload splitter.
1045         * config/ia64/div.md: Change BImode to CCImode throughout.
1046
1047 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
1048
1049         * config/ia64/ia64.md (cstorebi4): Fix thinko.
1050
1051 2010-08-28  Hariharan Sandanagobalane <hariharan@picochip.com>
1052
1053         * config/picochip/picochip.c (reorder_var_tracking_notes): This
1054         function was dropping debug insns which caused PR45299.
1055
1056 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
1057
1058         * config/i386/sse.md (extsuffix): New code attribute.
1059         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
1060         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
1061         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
1062         and sse4_1_zero_extendv4qiv4si2.
1063         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
1064         and sse4_1_zero_extendv2qiv2di2.
1065         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
1066         and sse4_1_zero_extendv4hiv4si2.
1067         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
1068         and sse4_1_zero_extendv2hiv2di2.
1069         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
1070         and sse4_1_zero_extendv2siv2di2
1071
1072         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
1073         using any_extend code iterator.
1074         (*avx_<s>mulv8hi3_highpart): Macroize insn from
1075         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
1076         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
1077
1078         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
1079         gen_sse4_1_sign_extend* functions.
1080         (struct builtin_description bdesc_args): Ditto.
1081
1082 2010-08-27  Xinliang David Li  <davidxl@google.com>
1083
1084         PR/45422
1085         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
1086         (iv_ca_set_no_cp): Update used inv expr count.
1087         (iv_ca_set_cp): Ditto.
1088         (iv_ca_new): Initialize new member.
1089         (iv_ca_free): Free memory.
1090
1091 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
1092
1093         * config/sh/sh-protos.h (sh_function_arg): Delete.
1094         (sh_function_arg_advance): Delete.
1095         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1096         (PASS_IN_REG_P): Eliminate cast.
1097         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
1098         const_tree and a bool.
1099         (sh_function_arg): Likewise.
1100         (sh_output_mi_thunk): Call sh_function_arg_advance) and
1101         sh_function_arg.
1102         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1103
1104 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
1105             Kaz Kojima  <kkojima@gcc.gnu.org>
1106
1107         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
1108         when possible.
1109         (sh_expand_epilogue): Likewise.
1110         * config/sh/sh.md (movml_push_banked): New insn.
1111         (movml_pop_banked): Likewise.
1112
1113 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
1114
1115         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
1116         gen_regexp_oneof, gen_regexp_sequence): Use the string found
1117         in vector element 0 rather than the original string when there's
1118         only one element.
1119         (gen_regexp): Remove extra semicolon.
1120
1121         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
1122         thumb2_movsf_vfp): Set attribute "insn".
1123         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
1124         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
1125         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
1126         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
1127         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
1128         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
1129         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
1130         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
1131         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
1132         if_not_arith, if_arith_not, cond_move_not): Likewise.
1133
1134 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1135
1136         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
1137         New declaration.
1138         (rs6000_allocate_stack_temp): Ditto.
1139         (rs6000_expand_convert_si_to_sfdf): Ditto.
1140
1141         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
1142         line.  Update the options set if power6 or power7 server/embedded
1143         type options are used.  If we give a warning for no vsx under
1144         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
1145         (rs6000_allocate_stack_temp): New function to allocate a stack
1146         tempoary and adjust the address so it meets either REG+OFFSET or
1147         REG+REG addressing requirements.
1148         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
1149         that they can be used with the LFIWAX/LFIWZX instrucitons.
1150         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
1151         converting signed/unsigned SImode to either SFmode/DFmode.
1152
1153         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
1154         whether certain instructions can be generated.
1155         (TARGET_FCTIDZ): Ditto.
1156         (TARGET_STFIWX): Ditto.
1157         (TARGET_LFIWAX): Ditto.
1158         (TARGET_LFIWZX): Ditto.
1159         (TARGET_FCFIDS): Ditto.
1160         (TARGET_FCFIDU): Ditto.
1161         (TARGET_FCFIDUS): Ditto.
1162         (TARGET_FCTIDUZ): Ditto.
1163         (TARGET_FCTIWUZ): Ditto.
1164
1165         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
1166         (UNSPEC_FCTID): Ditto.
1167         (UNSPEC_LFIWAX): Ditto.
1168         (UNSPEC_LFIWZX): Ditto.
1169         (UNSPEC_FCTIWUZ): Ditto.
1170         (rreg): Use correct constraints.
1171         (SI_CONVERT_FP): New mode attribute for floating point conversion
1172         tests.
1173         (E500_CONVERT): Ditto.
1174         (lfiwax): New insns for converting from integer to floating point
1175         utilizing newer instructions.  Attempt to optimize conversions
1176         that come from memory so that we don't load the value into a GPR,
1177         spill it to the stack and reload it into a FPR.
1178         (floatsi<mode>2_lfiwax): Ditto.
1179         (floatsi<mode>2_lfiwax_mem): Ditto.
1180         (floatsi<mode>2_lfiwax_mem2): Ditto.
1181         (lfiwzx): Ditto.
1182         (floatunssi<mode>2_lfiwzx): Ditto.
1183         (floatunssi<mode>2_lfiwzx_mem): Ditto.
1184         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
1185         (floatdidf2_mem): Ditto.
1186         (floatunsdidf2_fcfidu): Ditto.
1187         (floatunsdidf2_mem): Ditto.
1188         (floatunsdisf2): Ditto.
1189         (floatunsdisf2_fcfidus): Ditto.
1190         (floatunsdisf2_mem): Ditto.
1191         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
1192         Use FCFID on 32-bit hosts that support it.
1193         (floatsidf2_internal): Ditto.
1194         (floatunssisf2): Ditto.
1195         (floatunssidf2): Ditto.
1196         (floatunssidf2_internal): Ditto.
1197         (floatsisf2): Ditto.
1198         (floatdidf2): Ditto.
1199         (floatdidf2_fpr): Ditto.
1200         (floatunsdidf2): Ditto.
1201         (floatdisf2): Ditto.
1202         (floatdisf2_fcfids): Ditto.
1203         (floatdisf2_internal1): Ditto.
1204         (fixuns_truncsfsi2): Delete, merge into common pattern for both
1205         SF/DF.  Add power7 support.
1206         (fix_truncsfsi2): Ditto.
1207         (fixuns_truncdfsi2): Ditto.
1208         (fixuns_truncdfdi2): Ditto.
1209         (fix_truncdfsi2): Ditto.
1210         (fix_truncdfsi2_internal): Ditto.
1211         (fix_truncdfsi2_internal_gfxopt): Ditto.
1212         (fix_truncdfsi2_mfpgpr): Ditto.
1213         (fctiwz): Ditto.
1214         (btruncdf2): Ditto.
1215         (btruncdf2_fpr): Ditto.
1216         (btructsf2): Ditto.
1217         (ceildf2): Ditto.
1218         (ceildf2_fpr): Ditto.
1219         (ceilsf2): Ditto.
1220         (floordf2): Ditto.
1221         (floordf2_fpr): Ditto.
1222         (floorsf2): Ditto.
1223         (rounddf2): Ditto.
1224         (rounddf2_fpr): Ditto.
1225         (roundsf2): Ditto.
1226         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
1227         (fix_trunc<mode>di2): Ditto.
1228         (fixuns_trunc<mode>si2): Ditto.
1229         (fixuns_trunc<mode>di2): Ditto.
1230         (fctiwz_<mode>): Ditto.
1231         (btrunc<mode>2): Ditto.
1232         (btrunc<mode>2_fpr): Ditto.
1233         (ceil<mode>2): Ditto.
1234         (ceil<mode>2_fpr): Ditto.
1235         (floor<mode>2): Ditto.
1236         (float<mode>2_fpr): Ditto.
1237         (round<mode>2): Ditto.
1238         (round<mode>2_fpr): Ditto.
1239         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
1240         (fixuns_trunc<mode>si2_stfiwx): Ditto.
1241         (fix_truncdfsi2_internal): Ditto.
1242         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
1243         converted value on stack, loaded into GPR, and then stored into
1244         the final destination.
1245         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
1246         FCTIDZ.
1247         (lrint<mode>di2): New insn, provide the lrint builtin functions.
1248         (ftruncdf2): Delete, unused.
1249         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
1250
1251         * config/rs6000/vsx.md (toplevel): Update copyright year.
1252         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
1253         (VSr3): Ditto.
1254
1255 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
1256             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1257
1258         * gengtype.c (output_type_enum): Test the right union member.
1259
1260 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
1261
1262         PR target/41484
1263         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
1264         operands for operand 1.
1265         (sse4_1_extendv4qiv4si2): Ditto.
1266         (sse4_1_extendv2qiv2di2): Ditto.
1267         (sse4_1_extendv4hiv4si2): Ditto.
1268         (sse4_1_extendv2hiv2di2): Ditto.
1269         (sse4_1_extendv2siv2di2): Ditto.
1270         (sse4_1_zero_extendv8qiv8hi2): Ditto.
1271         (sse4_1_zero_extendv4qiv4si2): Ditto.
1272         (sse4_1_zero_extendv2qiv2di2): Ditto.
1273         (sse4_1_zero_extendv4hiv4si2): Ditto.
1274         (sse4_1_zero_extendv2hiv2di2): Ditto.
1275         (sse4_1_zero_extendv2siv2di2): Ditto.
1276         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
1277         (*sse4_1_extendv4qiv4si2): Ditto.
1278         (*sse4_1_extendv2qiv2di2): Ditto.
1279         (*sse4_1_extendv4hiv4si2): Ditto.
1280         (*sse4_1_extendv2hiv2di2): Ditto.
1281         (*sse4_1_extendv2siv2di2): Ditto.
1282         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
1283         (*sse4_1_zero_extendv4qiv4si2): Ditto.
1284         (*sse4_1_zero_extendv2qiv2di2): Ditto.
1285         (*sse4_1_zero_extendv4hiv4si2): Ditto.
1286         (*sse4_1_zero_extendv2hiv2di2): Ditto.
1287         (*sse4_1_zero_extendv2siv2di2): Ditto.
1288
1289 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
1290
1291         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
1292         (mips_function_arg): Delete.
1293         (mips_function_arg_boundary): Take a const_tree.
1294         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
1295         (mips_arg_info): Likewise.
1296         (mips_setup_incoming_varargs): Call mips_function_arg_advance
1297         instead of FUNCTION_ARG_ADVANCE.
1298         (mips_function_arg_advance): Adjust prototype.  Make static.
1299         (mips_function_arg): Likewise.
1300         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1301         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
1302
1303 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
1304
1305         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1306         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
1307         (function_arg): Delete.
1308         (function_arg_boundary): Take a const_tree.
1309         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
1310         (rs6000_spe_function_arg): Likewise.
1311         (rs6000_parm_start): Likewise.
1312         (rs6000_arg_size): Likewise.
1313         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
1314         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
1315         (rs6000_mixed_function_arg): Likewise.
1316         (function_arg): Rename to...
1317         (rs6000_function_arg): ...this.
1318         (function_arg_advance): Rename to...
1319         (rs6000_function_arg_advance_1): ...this
1320         (rs6000_function_arg_advance): New function.  Call it.
1321         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
1322         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
1323         (rs6000_function_value): Likewise.
1324         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1325
1326 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1327
1328         * config/arm/arm.md (enabled): Test the value of arch_enabled
1329         rather than just using it.
1330
1331 2010-08-27  Olivier Hainque  <hainque@adacore.com>
1332             Eric Botcazou  <ebotcazou@adacore.com>
1333
1334         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
1335         cover all the possible offsets from this base.
1336         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
1337
1338 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
1339
1340         PR tree-optimization/44485
1341         * calls.c (flags_from_decl_or_type): For const or pure
1342         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
1343         together with ECF_CONST resp. ECF_PURE.
1344         * builtins.c (expand_builtin): Use flags_from_decl_or_type
1345         instead of querying flags directly.
1346         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
1347         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
1348
1349 2010-08-26  Richard Guenther  <rguenther@suse.de>
1350
1351         PR tree-optimization/45255
1352         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
1353         and externals are also invariant.
1354
1355 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
1356
1357         PR rtl-optimization/44858
1358         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
1359         newi2pat, make sure they don't affect newpat.
1360
1361         PR rtl-optimization/45400
1362         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
1363         SUBREG_REG if both modes are of MODE_INT class.
1364
1365 2010-08-25  Julian Brown  <julian@codesourcery.com>
1366
1367         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
1368         * config/arm/arm.md (generic_sched): No for Cortex-A5.
1369         (generic_vfp): Likewise.
1370         (cortex-a5.md): Include.
1371         * config/arm/cortex-a5.md: New.
1372
1373 2010-08-25  Richard Guenther  <rguenther@suse.de>
1374
1375         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
1376         * gimple.c (gimple_get_alias_set): Remove special handling
1377         for pointers.
1378
1379 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
1380
1381         PR middle-end/45355
1382         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
1383         dead_or_set_p when computing i0_feeds_i2_n.
1384
1385         * combine.c (find_split_point): Undo canonicalization of multiply-add
1386         to (minus x (mult)) when it seems likely that this will increase the
1387         chances of a split.
1388
1389 2010-08-25  Richard Guenther  <rguenther@suse.de>
1390
1391         PR lto/44562
1392         * lto-streamer.c (lto_record_common_node): Do not mess with
1393         TYPE_CANONICAL when not in lto.
1394         * gimple.c (gimple_register_type): Likewise.
1395
1396 2010-08-25  Richard Guenther  <rguenther@suse.de>
1397
1398         PR tree-optimization/45316
1399         * tree-ssa-pre.c (eliminate): Properly clean EH info.
1400
1401 2010-08-25  Richard Guenther  <rguenther@suse.de>
1402
1403         PR tree-optimization/45393
1404         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
1405         and clean EH info.  Avoid SSA update.
1406         (execute_cse_sincos): Cleanup the CFG if it has changed.
1407
1408 2010-08-25  Richard Guenther  <rguenther@suse.de>
1409
1410         PR middle-end/45379
1411         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
1412         TARGET_MEM_REF in alignment computation.
1413
1414 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
1415
1416         PR tree-optimization/45059
1417         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
1418         type conversions from newop{1,2}.  Assert t is a comparison and
1419         newop{1,2} after the stripping are gimple vals.
1420
1421 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
1422
1423         * config/arm/iterators.md (VU, SE, V_widen_l): New.
1424         (V_unpack, US): New.
1425         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
1426         (vec_unpack<US>_lo_<mode>): Likewise.
1427         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
1428         (neon_vec_unpack<US>_lo_<mode>): Likewise.
1429         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
1430         (vec_widen_<US>mult_hi_<mode>): Likewise.
1431         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
1432         (neon_vec_<US>mult_hi_<mode>"): Likewise.
1433         (neon_unpack<US>_<mode>): Widening move intermediate step for
1434         vectorizing without -mvectorize-with-neon-quad.
1435         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
1436         for vectorizing without -mvectorize-with-neon-quad.
1437         * config/arm/predicates.md (vect_par_constant_high): Check for
1438         high-half lanes of a vector.
1439         (vect_par_constant_low): Check for low-half lanes of a vector.
1440
1441 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
1442
1443         * tree-if-conv.c (struct ifc_dr): New.
1444         (IFC_DR): New.
1445         (DR_WRITTEN_AT_LEAST_ONCE): New.
1446         (DR_RW_UNCONDITIONALLY): New.
1447         (memref_read_or_written_unconditionally): Use the cached values
1448         when possible.
1449         (write_memref_written_at_least_once): Same.
1450         (if_convertible_loop_p): Initialize and free DR->aux fields.
1451
1452 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
1453
1454         * gimple.c (gimple_could_trap_p_1): Not static anymore.
1455         Pass an extra bool parameter include_mem.
1456         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
1457         (gimple_assign_rhs_could_trap_p): Same.
1458         * gimple.h (gimple_could_trap_p_1): Declared.
1459         * tree-data-ref.h (same_data_refs_base_objects): New.
1460         (same_data_refs): New.
1461         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
1462         (write_memrefs_written_at_least_once): New.
1463         (ifcvt_memrefs_wont_trap): New.
1464         (operations_could_trap): New.
1465         (ifcvt_could_trap_p): New.
1466         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
1467         Gets a vector of data refs.
1468         (if_convertible_stmt_p): Same.
1469         (if_convertible_loop_p_1): New.
1470         (if_convertible_loop_p): Call if_convertible_loop_p_1.
1471
1472 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
1473
1474         * common.opt (ftree-loop-if-convert-stores): New flag.
1475         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
1476         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
1477         the created statement before GSI.
1478         (if_convertible_phi_p): Allow virtual phi nodes when
1479         flag_loop_if_convert_stores is set.
1480         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
1481         Do not handle types that do not match is_gimple_reg_type.
1482         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
1483         when flag_loop_if_convert_stores is set, as LHS can contain
1484         memory refs.
1485         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
1486         to if_convertible_gimple_assign_stmt_p.
1487         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
1488         (replace_phi_with_cond_gimple_assign_stmt): Renamed
1489         predicate_scalar_phi.  Do not handle virtual phi nodes.
1490         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
1491         Call predicate_scalar_phi.
1492         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
1493         just after the labels for flag_loop_if_convert_stores, otherwise
1494         insert the predicate in the end of the BB.
1495         (predicate_mem_writes): New.
1496         (combine_blocks): Call predicate_all_scalar_phis.  When
1497         flag_loop_if_convert_stores is set, call predicate_mem_writes.
1498         (tree_if_conversion): Call mark_sym_for_renaming when
1499         flag_loop_if_convert_stores is set.
1500         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
1501         flag_loop_if_convert_stores is set.
1502
1503 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
1504
1505         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
1506         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
1507         (pa_function_value): Make static.
1508         (override_options): Rename to...
1509         (pa_option_override): ...this. Make static.
1510         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
1511         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
1512         TARGET_OPTION_OVERRIDE): Define.
1513         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
1514         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
1515         Remove.
1516         * config/pa/pa-protos.h (override_options): Remove.
1517
1518 2010-08-24  Richard Guenther  <rguenther@suse.de>
1519
1520         PR middle-end/45379
1521         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
1522         if addr->index is NULL or zero.
1523         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
1524         TARGET_MEM_REF more properly.
1525         (indirect_ref_may_alias_decl_p): Likewise.
1526         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
1527         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
1528
1529 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
1530
1531         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
1532         (m32c_override_options): Rename to...
1533         (m32c_option_override): ...this. Make static.
1534         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
1535         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
1536         Remove.
1537         * config/m32c/m32c-protos.h (m32c_override_options,
1538         m32c_function_value_regno_p): Remove.
1539
1540 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
1541
1542         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
1543         Fix a typo in a previous commit.
1544
1545 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
1546
1547         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
1548         Pre-initialize innerloop_iters to one.
1549
1550 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
1551
1552         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
1553         existing static function global.
1554
1555         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
1556         is changed to global.
1557
1558         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
1559         may_be_nonaddressable_p on base, and don't collect this reference
1560         if the address of the base could not be taken.
1561
1562 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1563
1564         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
1565         enable the compiler to autovectorize mathmetical functions for
1566         power7 using the Mathematical Acceleration Subsystem library.
1567
1568         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
1569         handle which vector math library we have.
1570         (rs6000_override_options): Add -mveclibabi=mass support.
1571         (rs6000_builtin_vectorized_libmass): New function to handle auto
1572         vectorizing math functions that are in the MASS library.
1573         (rs6000_builtin_vectorized_function): Call it.
1574
1575         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1576         -mveclibabi=mass.
1577
1578 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1579
1580         PR boehm-gc/34544
1581         * gthr-posix.h (__gthread_active_init): Delete.
1582         (__gthread_active_p): Do activity check here.
1583         Don't include errno.h on hppa-hpux.  Update comment.
1584         * gthr-posix95.h (__gthread_active_init): Delete.
1585         (__gthread_active_p): Do activity check here.
1586         Don't include errno.h on hppa-hpux.  Update comment.
1587         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
1588         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
1589         add -lpthread when -mt or -pthread is specified.
1590         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
1591         (LINK_GCC_C_SEQUENCE_SPEC): Define.
1592         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
1593         (stublib.c, pthread_default_stacksize_np-stub.o,
1594         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
1595         $(T)libgcc_stub.a): Add methods.
1596         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
1597         (stublib.c, pthread_default_stacksize_np-stub.o,
1598         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
1599         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
1600         pthread_mutex_unlock): New stubs.
1601
1602 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
1603
1604         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
1605         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
1606         options.
1607         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
1608         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
1609         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
1610         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
1611         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
1612         "-l".
1613         * cppspec.c: Include opts.h.
1614         (lang_specific_driver): Use cl_decoded_option structures.
1615         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
1616         * doc/tm.texi: Regenerate.
1617         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
1618         (driver_handle_option): Allow driver options needing no special
1619         processing.
1620         (process_command): Decode options before call to
1621         lang_specific_driver.  Pass decoded options to
1622         lang_specific_driver.
1623         * gcc.h (lang_specific_driver): Update prototype.
1624         * gccspec.c: Include opts.h.
1625         (lang_specific_driver): Use cl_decoded_option structures.
1626         * opts-common.c (option_ok_for_language, generate_option,
1627         generate_option_input_file): New.
1628         (decode_cmdline_option): Use option_ok_for_language.
1629         (decode_cmdline_options_to_array): Use generate_option_input_file.
1630         (handle_generated_option): Use generate_option.
1631         * opts.h (generate_option, generate_option_input_file): Declare.
1632
1633 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
1634
1635         * config/mips/mips.c (mips_override_options): Rename to...
1636         (mips_option_override): ...this. Make static.
1637         (TARGET_OPTION_OVERRIDE): Define.
1638         (mips_in_small_data_p): Update comment.
1639         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
1640         (FIXED_REGISTERS): Update comment.
1641         * config/mips/mips-protos.h (mips_override_options): Remove.
1642
1643 2010-08-21  Olivier Hainque  <hainque@adacore.com>
1644
1645         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
1646
1647 2010-08-21  Olivier Hainque  <hainque@adacore.com>
1648
1649         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
1650         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
1651
1652 2010-08-20  Jan Hubicka  <jh@suse.cz>
1653
1654         * tree-pass.h (pass_ipa_cdtor_merge): New function.
1655         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
1656         heap allocated.
1657         (record_cdtor_fn): Move to ipa.c; do not test for
1658         have_ctors_dtors.
1659         (build_cdtor): Move to ipa.c; add code avoiding construction
1660         when target have ctors/dtors and there is only one ctor/dtor at given
1661         priority.
1662         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
1663         sort; reverse order of constructors.
1664         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
1665         (cgraph_finalize_function): Do not call record_cdtor_fn.
1666         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
1667         (cgraph_build_static_cdtor): Move to ipa.c.
1668         * ipa.c: Include target.h and tree-iterator.h.
1669         (cgraph_build_static_cdtor, static_ctors, static_dtors,
1670         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
1671         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
1672         pass_ipa_cdtor_merge): New.
1673         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
1674         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
1675         bounds access.
1676
1677 2010-08-20  Jan Hubicka  <jh@suse.cz>
1678
1679         PR c++/45307
1680         PR c++/17736
1681         * cgraph.h (cgraph_only_called_directly_p,
1682         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
1683         static cdtors.
1684         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
1685         are not needed.
1686         (cgraph_finalize_function): Static cdtors are reachable.
1687         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
1688
1689 2010-08-20  Jan Hubicka  <jh@suse.cz>
1690
1691         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
1692         flag_wpa.
1693         * lto-streamer-out.c (lto_output): Likewise.
1694         * passes.c (ipa_write_optimization_summaries): Initialize statement
1695         uids.
1696
1697 2010-08-20  Olivier Hainque  <hainque@adacore.com>
1698
1699         * tree.h (alias_diag_flags): New enum.
1700         (alias_pair): Add an 'emitted_diags' field.
1701         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
1702         (assemble_alias): Initialize emitted_diags of new pairs.
1703
1704 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
1705
1706         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
1707         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1708         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1709         (STACK_CHECK_PROTECT): Define.
1710         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
1711         (output_probe_stack_range): Likewise.
1712         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
1713         builtin stack checking is enabled.
1714         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
1715         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
1716         (probe_stack_range): New insn.
1717
1718 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1719
1720         PR target/45336
1721         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
1722         short first.
1723
1724         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
1725         char first.
1726
1727 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1728
1729         PR target/45336
1730         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
1731         to cover zero extension into 64-bit register.
1732         (*sse2_pextrw): Likewise.
1733         (*sse4_1_pextrd_zext): New insn.
1734
1735 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
1736
1737         revert r163410, partially revert r163267.
1738         * config/rs6000/darwin.h (LIB_SPEC): Remove.
1739         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
1740         Darwin versions.
1741
1742 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1743
1744         PR middle-end/44974
1745         * builtins.c (expand_builtin): Don't optimize away
1746         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
1747
1748 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
1749
1750         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
1751         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
1752         alternative 1 of operand 2.
1753
1754 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1755             Paolo Bonzini  <bonzini@gnu.org>
1756
1757         * simplify-rtx.c (simplify_unary_operation_1): Optimize
1758         (sign_extend (zero_extend (...)) and
1759         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
1760
1761 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1762
1763         PR rtl-optimization/45353
1764         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
1765         after bb_note is a BARRIER.
1766
1767 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
1768
1769         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
1770         linking libgcc.a.
1771
1772 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1773             Michael Matz  <matz@suse.de>
1774
1775         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
1776
1777 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
1778
1779         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
1780         (ggc_mark_roots): ...here.
1781
1782 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
1783
1784         * vec.h (FOR_EACH_VEC_ELT): Define.
1785         * c-decl.c: Use it.
1786         * cfgloop.c: Likewise.
1787         * cfgloopmanip.c: Likewise.
1788         * cgraph.c: Likewise.
1789         * cgraphunit.c: Likewise.
1790         * combine.c: Likewise.
1791         * config/bfin/bfin.c: Likewise.
1792         * config/mips/mips.c: Likewise.
1793         * config/rs6000/rs6000.c: Likewise.
1794         * dbxout.c: Likewise.
1795         * df-scan.c: Likewise.
1796         * dominance.c: Likewise.
1797         * dse.c: Likewise.
1798         * dwarf2out.c: Likewise.
1799         * except.c: Likewise.
1800         * expr.c: Likewise.
1801         * function.c: Likewise.
1802         * gcse.c: Likewise.
1803         * genattr.c: Likewise.
1804         * ggc-common.c: Likewise.
1805         * gimplify.c: Likewise.
1806         * graphite-blocking.c: Likewise.
1807         * graphite-clast-to-gimple.c: Likewise.
1808         * graphite-dependences.c: Likewise.
1809         * graphite-interchange.c: Likewise.
1810         * graphite-poly.c: Likewise.
1811         * graphite-scop-detection.c: Likewise.
1812         * graphite-sese-to-poly.c: Likewise.
1813         * graphite.c: Likewise.
1814         * haifa-sched.c: Likewise.
1815         * ifcvt.c: Likewise.
1816         * implicit-zee.c: Likewise.
1817         * ipa-prop.c: Likewise.
1818         * ipa-struct-reorg.c: Likewise.
1819         * ipa.c: Likewise.
1820         * ira-build.c: Likewise.
1821         * ira-color.c: Likewise.
1822         * ira-emit.c: Likewise.
1823         * lambda-code.c: Likewise.
1824         * loop-invariant.c: Likewise.
1825         * loop-unroll.c: Likewise.
1826         * lower-subreg.c: Likewise.
1827         * lto-cgraph.c: Likewise.
1828         * lto-opts.c: Likewise.
1829         * lto-streamer-in.c: Likewise.
1830         * lto-streamer-out.c: Likewise.
1831         * lto-streamer.c: Likewise.
1832         * lto-symtab.c: Likewise.
1833         * matrix-reorg.c: Likewise.
1834         * opts.c: Likewise.
1835         * predict.c: Likewise.
1836         * print-tree.c: Likewise.
1837         * sdbout.c: Likewise.
1838         * sel-sched-dump.c: Likewise.
1839         * sel-sched-ir.c: Likewise.
1840         * sel-sched.c: Likewise.
1841         * sese.c: Likewise.
1842         * stor-layout.c: Likewise.
1843         * tree-cfg.c: Likewise.
1844         * tree-cfgcleanup.c: Likewise.
1845         * tree-chrec.c: Likewise.
1846         * tree-data-ref.c: Likewise.
1847         * tree-emutls.c: Likewise.
1848         * tree-inline.c: Likewise.
1849         * tree-into-ssa.c: Likewise.
1850         * tree-loop-distribution.c: Likewise.
1851         * tree-loop-linear.c: Likewise.
1852         * tree-mudflap.c: Likewise.
1853         * tree-outof-ssa.c: Likewise.
1854         * tree-parloops.c: Likewise.
1855         * tree-predcom.c: Likewise.
1856         * tree-pretty-print.c: Likewise.
1857         * tree-scalar-evolution.c: Likewise.
1858         * tree-ssa-live.c: Likewise.
1859         * tree-ssa-loop-im.c: Likewise.
1860         * tree-ssa-loop-ivcanon.c: Likewise.
1861         * tree-ssa-loop-ivopts.c: Likewise.
1862         * tree-ssa-loop-manip.c: Likewise.
1863         * tree-ssa-loop-niter.c: Likewise.
1864         * tree-ssa-loop-prefetch.c: Likewise.
1865         * tree-ssa-phiprop.c: Likewise.
1866         * tree-ssa-pre.c: Likewise.
1867         * tree-ssa-reassoc.c: Likewise.
1868         * tree-ssa-sccvn.c: Likewise.
1869         * tree-ssa-structalias.c: Likewise.
1870         * tree-ssa.c: Likewise.
1871         * tree-vect-data-refs.c: Likewise.
1872         * tree-vect-loop-manip.c: Likewise.
1873         * tree-vect-loop.c: Likewise.
1874         * tree-vect-patterns.c: Likewise.
1875         * tree-vect-slp.c: Likewise.
1876         * tree-vect-stmts.c: Likewise.
1877         * tree-vrp.c: Likewise.
1878         * tree.c: Likewise.
1879         * value-prof.c: Likewise.
1880         * var-tracking.c: Likewise.
1881         * varasm.c: Likewise.
1882         * vmsdbgout.c: Likewise.
1883
1884 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
1885             Richard Guenther  <richard.guenther@gmail.com>
1886
1887         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
1888         copy the src value and return a copy.
1889         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
1890         (C++ Volatiles): Adjust to describe C++ semantics only.
1891
1892 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
1893
1894         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
1895         be zero or nonzero.
1896         * doc/tm.texi: Regenerate.
1897         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
1898         * df-scan.c (df_get_exit_block_use_set), reginfo.c
1899         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
1900         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
1901         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
1902         to 1.
1903
1904 2010-08-20  Olivier Hainque  <hainque@adacore.com>
1905
1906         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
1907         an extra nop past a sibling call at the very end.
1908
1909 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
1910
1911         PR bootstrap/45350
1912         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
1913         a comment.
1914
1915 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
1916
1917         * target.def (function_arg, function_incoming_arg): Remove const
1918         qualifier on CUMULATIVE_ARGS parameter.
1919         * targhooks.h (default_function_arg, default_function_incoming_arg):
1920         Likewise.
1921         * targhooks.c (default_function_arg, default_function_incoming_arg):
1922         Likewise.
1923         * config/i386/i386.c (ix86_function_arg): Likewise.
1924
1925 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
1926
1927         PR target/45336
1928         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
1929         SIGN_EXTENDs or ZERO_EXTENDs.
1930
1931 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
1932
1933         PR target/42172
1934         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
1935         Take its cost into account if nonnull.
1936         (insn_a_feeds_b): New static function.
1937         (combine_instructions): Look for four-insn combinations.
1938         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
1939         them into account when computing all_adjacent and looking for other
1940         uses.
1941         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
1942         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
1943         (try_combine): New arg I0.  Handle four-insn combinations.
1944         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
1945         like ELIM_I1.
1946
1947 2010-08-19  Jason Merrill  <jason@redhat.com>
1948
1949         PR c++/45307
1950         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
1951         if ctor is empty.
1952         (gimplify_modify_expr_rhs): Adjust.
1953
1954 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
1955
1956         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
1957         bitmap_bit_p.
1958         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
1959         * dominance.c (iterate_fix_dominators): Likewise.
1960         * dse.c (set_usage_bits): Likewise.
1961         (set_position_unneeded, record_store): Likewise.
1962         * gimple-fold.c (get_maxval_strlen): Likewise.
1963         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
1964         * ipa-inline.c (update_caller_keys): Likewise.
1965         * ipa-split.c (verify_non_ssa_vars): Likewise.
1966         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
1967         (close_type_exposed_parameter, close_type_full_escape): Likewise.
1968         (close_addressof_down): Likewise.
1969         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
1970         (setup_allocno_left_conflicts_size): Likewise.
1971         (ira_reassign_conflict_allocnos): Likewise.
1972         (ira_reassign_pseudos): Likewise.
1973         * ira-emit.c (change_loop): Likewise.
1974         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
1975         * lto-streamer-out.c (write_symbol): Likewise.
1976         * predict.c (expr_expected_value_1): Likewise.
1977         * regstat.c (regstat_bb_compute_ri): Likewise.
1978         * sel-sched.c (create_block_for_bookkeeping): Likewise.
1979         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
1980         * stmt.c (expand_case): Likewise.
1981         * tree-eh.c (emit_eh_dispatch): Likewise.
1982         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
1983         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
1984         Likewise.
1985         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
1986         (rdg_build_components): Likewise.
1987         * tree-object-size.c (collect_object_sizes_for): Likewise.
1988         * tree-sra.c (convert_callers): Likewise.
1989         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
1990         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
1991         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
1992
1993 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
1994
1995         * config/i386/i386.md (*lea_1): Use P mode iterator.
1996         (lea add splitter): Also handle DImode operands.
1997         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
1998         predicate.  Do not use ix86_lea_for_add_ok.
1999         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
2000         (lea ashift splitter): Also handle DImode operands.
2001         (DImode lea ashift splitter): Remove splitter.
2002
2003 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
2004
2005         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
2006         ix86_binary_operator_ok.
2007
2008 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
2009
2010         PR rtl-optimization/44691
2011         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
2012         is not a register.
2013
2014 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
2015
2016         PR target/45070
2017         * config/arm/arm.c (arm_output_epilogue): Ensure that return
2018          value of size 1-3 is handled correctly.
2019
2020 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
2021
2022         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
2023         type for the conditional has wide enough range.
2024
2025 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
2026
2027         PR target/45327
2028         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
2029         ix86_binary_operator_ok.
2030
2031 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
2032
2033         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
2034         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
2035         code to output insn mnemonic.  Fix comment.
2036         (*addsi_1_zext): Add r-r-0 alternative 1.
2037         <TYPE_LEA>: Split insn to lea.
2038         <default>: Handle alternative 1.
2039         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
2040         multi-level if_then_else RTX to set "type" attribute.
2041         <default>: Handle alternative 2.
2042         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
2043         Use cond RTX instead of multi-level if_then_else RTX to set
2044         "type" attribute.
2045         <default>: Handle alternatives 2 and 4.
2046         (lea splitters): Update calls to ix86_lea_for_add_ok.
2047
2048         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
2049         argument.
2050         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
2051
2052 2010-08-18  Richard Guenther  <rguenther@suse.de>
2053
2054         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
2055         use operand helpers.
2056
2057 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
2058
2059         PR middle-end/45292
2060         * optabs.c (expand_bool_compare_and_swap): Expand pending
2061         pops before trying the optab.
2062
2063 2010-08-18  Yao Qi  <yao@codesourcery.com>
2064
2065         PR target/45094
2066         * config/arm/arm.c (output_move_double): Fix typo generating
2067         instructions ('ldr'->'str').
2068
2069 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
2070
2071         PR rtl-optimization/42575
2072         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
2073         live ranges.
2074
2075 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2076
2077         * config/arm/arm-protos.h (arm_expand_sync): New.
2078         (arm_output_memory_barrier, arm_output_sync_insn): New.
2079         (arm_sync_loop_insns): New.
2080         * config/arm/arm.c (FL_ARCH7): New.
2081         (FL_FOR_ARCH7): Include FL_ARCH7.
2082         (arm_arch7): New.
2083         (arm_print_operand): Support %C markup.
2084         (arm_legitimize_sync_memory): New.
2085         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
2086         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
2087         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
2088         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
2089         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
2090         (arm_process_output_sync_insn, arm_output_sync_insn): New.
2091         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
2092         * config/arm/arm.h (struct arm_sync_generator): New.
2093         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
2094         (TARGET_HAVE_MEMORY_BARRIER): New.
2095         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
2096         * config/arm/arm.md: Include sync.md.
2097         (UNSPEC_MEMORY_BARRIER): New.
2098         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
2099         (VUNSPEC_SYNC_OP):New.
2100         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
2101         (sync_result, sync_memory, sync_required_value): New attributes.
2102         (sync_new_value, sync_t1, sync_t2): Likewise.
2103         (sync_release_barrier, sync_op): Likewise.
2104         (length): Add logic to length attribute defintion to call
2105         arm_sync_loop_insns when appropriate.
2106         * config/arm/sync.md: New file.
2107
2108 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
2109
2110         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
2111         ENABLE_TREE_CHECKING.
2112         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
2113         and GCC >= 4.3.
2114
2115 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
2116
2117         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
2118         or optimizing for size, always avoid lea if possible.
2119
2120         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
2121
2122 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
2123
2124         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
2125         Dunmmy function with NULL return unless the target is
2126         OSX >= 10.6 (Darwin10).
2127
2128 2010-08-17  Jack Howarth <howarth@bromo.med.uc.edu>
2129
2130         * gcc.c (spec_function): Add remove-outfile.
2131         (remove_outfile_spec_function): New function.
2132         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
2133         * invoke.texi (replace-outfile): Document.
2134
2135 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
2136
2137         PR target/45296
2138         * reginfo.c (globalize_reg): Reject stack registers.
2139
2140 2010-08-17  Richard Guenther  <rguenther@suse.de>
2141
2142         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
2143         list of conditional equivalences.
2144         (free_all_edge_infos): Adjust.
2145         (record_equivalences_from_incoming_edge): Likewise.
2146         (record_cond): Likewise.
2147         (build_and_record_new_cond): Likewise.
2148         (record_conditions): Likewise.
2149         (dom_opt_leave_block): Likewise.
2150
2151 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
2152
2153         * doc/invoke.texi (ms-extension): Add documentation.
2154
2155 2010-08-17  Richard Guenther  <rguenther@suse.de>
2156
2157         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
2158
2159 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
2160
2161         PR c/40563
2162         * c-decl.c (diagnose_uninitialized_cst_member): New function.
2163         (finish_decl): Use it to issue a -Wc++-compat warning about
2164         uninitialized const field in struct or union.
2165
2166         (finish_struct): Use strip_array_types.
2167
2168 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
2169
2170         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
2171         functions.
2172         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
2173         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
2174         call block_nreverse here.
2175         (blocks_nreverse): Rename decl temporary to block.
2176
2177 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
2178
2179         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
2180         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
2181         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
2182         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
2183         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
2184         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
2185         thumb2_iorsi3): Delete.
2186         (orsi_notsi_si): No longer a named pattern.
2187         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
2188         * config/arm/predicates.md (shift_amount_operand): New.
2189         (mult_operator): New.
2190         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
2191         attr enabled): New.
2192         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
2193         arch matches t2.
2194         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
2195         (not_shiftsi_compare0): Likewise, renamed from
2196         arm_notsi_shiftsi_compare0.
2197         (not_shiftsi_compare0_scratch): Likweise, renamed from
2198         arm_notsi_shiftsi_compare0_scratch.
2199         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
2200         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
2201         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
2202         so that the register alternative is disabled when the shift_operator
2203         is MULT.  Use "M" as the constraint for constants.
2204         (arith_shiftsi splitter): Enable for TARGET_32BIT.
2205         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
2206         constraint for constants.
2207         (arith_shiftsi_compare0_scratch): Likewise.
2208         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
2209         Handle Thumb2 alternative.
2210
2211 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
2212
2213         * doc/options.texi (NoDriverArg): Document.
2214         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
2215         -MDX and -MMDX.
2216         * opt-functions.awk (switch_flags): Handle NoDriverArg.
2217         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
2218         marking for CL_NO_DRIVER_ARG options when in the driver.
2219         * opts.h (CL_NO_DRIVER_ARG): Define.
2220         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2221         CL_COMMON): Update values.
2222
2223 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
2224
2225         * common.opt: Add driver options.
2226         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
2227         * doc/options.texi (Driver, RejectDriver): Document.
2228         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
2229         print_prog_name, print_multi_directory, print_sysroot,
2230         print_multi_os_directory, print_multi_lib,
2231         print_sysroot_headers_suffix, report_times, combine_flag,
2232         use_pipes, wrapper_string): Remove.
2233         (save_switch, driver_unknown_option_callback,
2234         driver_wrong_lang_callback, driver_post_handling_callback,
2235         driver_handle_option): New.
2236         (spec_lang, last_language_n_infiles): Make file-scope static
2237         instead of local to process_command.
2238         (process_command): Use decode_cmdline_options_to_array and
2239         read_cmdline_option for option processing.  Compute have_c in
2240         prescan of decoded options.
2241         * opt-functions.awk (switch_flags): Handle Driver and
2242         RejectDriver.
2243         (var_type, var_type_struct): Handle Separate options as generating
2244         const char * variables.
2245         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
2246         CL_TARGET to be passed by caller if required.
2247         (decode_cmdline_options_to_array): Update comment.
2248         * opts.c (complain_wrong_lang): Handle options only valid for the
2249         driver.
2250         (decode_options): Update call to decode_cmdline_options_to_array.
2251         (print_filtered_help): Ignore driver-only options.
2252         (print_specific_help): Ignore CL_DRIVER.
2253         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
2254         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
2255         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
2256         Update values.
2257
2258 2010-08-16  Richard Guenther  <rguenther@suse.de>
2259
2260         * tree-cfg.c (verify_types_in_gimple_reference): Verify
2261         TARGET_MEM_REF a bit.
2262         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
2263         (create_mem_ref_raw): Always create TMR_OFFSET, store the
2264         alias pointer type via it.
2265         (copy_mem_ref_info): Adjust.
2266         (maybe_fold_tmr): Likewise.
2267         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
2268         (reference_alias_ptr_type): Likewise.
2269         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
2270         adjust documentation of TMR_OFFSET operand.
2271         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
2272         use the alias pointer type.
2273         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
2274         initialize mem attrs but the TMR itself.
2275         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
2276         similar to MEM_REF.
2277         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
2278         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
2279         (unshare_and_remove_ssa_names): Likewise.
2280         (copy_ref_info): Adjust.
2281         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
2282         TARGET_MEM_REF case.
2283         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
2284         at TMR_ORIGINAL.
2285         * tree.h (TMR_ORIGINAL): Remove.
2286         * gimple.c (get_base_address): For TARGET_MEM_REF with a
2287         symbol return that.
2288         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
2289         with a symbol.
2290         (get_addr_base_and_unit_offset): Likewise.
2291         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
2292         TARGET_MEM_REFs.
2293         (indirect_ref_may_alias_decl_p): Likewise.
2294         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
2295
2296 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
2297
2298         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
2299         with GCC version 4.6, the default setting (when not optimizing
2300         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
2301         been changed to -fomit-frame-pointer.
2302
2303 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
2304
2305         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
2306         Darwin10.  Do not link libgcc.a for Darwin >= 9.
2307
2308 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
2309
2310         * doc/invoke.texi (Warning Options): Fix terminology and markup
2311         in the description of how unknown warning options are handled.
2312
2313 2010-08-15  Ira Rosen  <irar@il.ibm.com>
2314
2315         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
2316         in basic blocks.
2317         (vect_supportable_dr_alignment): Check alignment for basic blocks.
2318         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
2319         data references.
2320         (vect_bb_vectorization_profitable_p): New function.
2321         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
2322         check if it's worthwhile to vectorize the basic block.
2323
2324 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
2325
2326         * reload.h (register_move_cost, memory_move_secondary_cost,
2327         secondary_reload_class): Adjust prototype.
2328         * rtl.h (reg_class_subset_p): Adjust prototype.
2329         * reload.c (secondary_reload_class): Change arguments type from
2330         enum reg_class to reg_class_t. Change result type to reg_class_t.
2331         * reginfo.c (register_move_cost, reg_class_subset_p): Change
2332         arguments type from enum reg_class to reg_class_t.
2333         (memory_move_secondary_cost): Change arguments type from
2334         enum reg_class to reg_class_t. Change type of saved_flags to
2335         reg_class_t.
2336
2337         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
2338         Remove macros.
2339         (mips_cost): Remove.
2340         (struct mips_rtx_cost_data): Moved to mips.c.
2341         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
2342         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
2343         (mips_cost): Make static.
2344         (mips_canonicalize_move_class): Change argument type to reg_class_t.
2345         Change result type to reg_class_t.
2346         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
2347         type from enum reg_class to reg_class_t.
2348         (mips_register_move_cost): Make static. Change arguments
2349         type from enum reg_class to reg_class_t.
2350         (mips_memory_move_cost): New function.
2351         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2352
2353 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
2354
2355         PR rtl-optimization/43358
2356         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
2357         of a single hard register, using simplify_subreg_regno to decide
2358         what that register should be.
2359
2360 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
2361
2362         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
2363         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
2364         (loongson_pmull<V_suffix>): Rename to...
2365         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
2366
2367 2010-08-13  Jack Howarth <howarth@bromo.med.uc.edu>
2368
2369         * gcc/configure.ac: Enable -fomit-frame-pointer on darwin
2370         which support dwarf2.
2371         * config/i386/i386.c (override_options): Same.
2372
2373 2010-08-13  Jie Zhang  <jie@codesourcery.com>
2374
2375         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
2376
2377 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
2378
2379         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
2380         -MMD.
2381
2382 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
2383
2384         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
2385         up dot_prod pattern searching if a stmt is outside the loop.
2386
2387 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
2388             Uros Bizjak  <ubizjak@gmail.com>
2389
2390         * config.gcc: Handle --enable-frame-pointer.
2391
2392         * configure.ac: Add --enable-frame-pointer.
2393         * configure: Regenerated.
2394
2395         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
2396         (override_options): If not configured with --enable-frame-pointer,
2397         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
2398         optimizing for size), -fasynchronous-unwind-tables and
2399         -maccumulate-outgoing-args by default.
2400
2401 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
2402
2403         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
2404
2405         PR middle-end/45262
2406         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
2407         -a overflows.  Normalize the range.
2408
2409 2010-08-12  Richard Guenther  <rguenther@suse.de>
2410
2411         PR tree-optimization/45232
2412         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
2413         for types with undefined overflow.
2414         (reassociate_bb): Allow re-associating of bit and min/max
2415         operations for types with undefined overflow.
2416         * tree-ssa-forwprop.c (associate_plusminus): New function.
2417         (tree_ssa_forward_propagate_single_use_vars): Call it.
2418
2419 2010-08-12  Richard Guenther  <rguenther@suse.de>
2420
2421         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
2422         * tree-ssa-alias.c (get_ptr_info): Move ...
2423         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
2424         align and misalign fields conservatively.
2425         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
2426         derive alignment information.
2427         (evaluate_stmt): Derive alignment information from memory
2428         allocation functions.
2429         * tree.h (get_pointer_alignment): Make unsigned.
2430         * builtins.c (get_object_alignment): Use alignment information we
2431         have computed for pointers.
2432         (get_pointer_alignment): Likewise.  Make conservative, return
2433         and unsigned value.
2434         (expand_builtin_strlen): Adjust.
2435         (expand_builtin_memcmp): Likewise.
2436         (expand_builtin_strcmp): Likewise.
2437         (expand_builtin_strncmp): Likewise.
2438         (get_builtin_sync_mem): Use at least mode alignment.
2439         (fold_builtin_memset): Adjust.
2440         (fold_builtin_memory_op): Likewise.
2441         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
2442         information also dump pointer alignment knowledge.
2443         (dump_gimple_stmt): Likewise.
2444
2445 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
2446
2447         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
2448         (EMPTY_FIELD_BOUNDARY): Remove.
2449         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
2450
2451 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
2452
2453         PR debug/45259
2454         * caller-save.c (save_call_clobbered_regs): Only swap notes with
2455         DEBUG_INSNs if n_regs_saved.
2456
2457 2010-08-12  Wei Guozhi  <carrot@google.com>
2458
2459         PR target/44999
2460         * config/arm/arm.md (andsi3): Change to zero extension if possible.
2461         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
2462
2463 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
2464
2465         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
2466
2467         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
2468
2469 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2470
2471         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
2472         the case removed in the previous patch, when the only phi argument
2473         is defined in the same loop as the phi node itself.  Handle it
2474         separately from the invariant case by both propagating it outside
2475         the region and replacing the phi node with an assign.
2476
2477 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2478
2479         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
2480         constant phi nodes with one argument are is_gimple_min_invariant
2481         and SSA_NAME_IS_DEFAULT_DEF.
2482
2483 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2484
2485         * graphite-cloog-util.c (oppose_constraint):
2486         Extend loop counter's value range (CLOOG_ORG).
2487         (cloog_matrix_to_ppl_constraint): Same.
2488         (new_Constraint_System_from_Cloog_matrix): Same.
2489         * graphite-cloog-compat.h (matrix_num_type): New.
2490
2491 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2492
2493         * graphite.c (graphite_initialize): Do not initialize
2494         CLooG and initialize the Parma Polyhedra Library
2495         manually when using CLOOG_ORG.
2496         (graphite_finalize): Do not finalize CLooG and finalize
2497         the Parma Polyhedra Library manually when using CLOOG_ORG.
2498         * graphite-cloog-compat.h (cloog_initialize): Hide function
2499         when using CLOOG_ORG.
2500         (cloog_finalize): Same.
2501
2502 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2503
2504         * graphite-clast-to-gimple.c (free_scattering): Change
2505         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
2506         (CLOOG_ORG).
2507         (build_cloog_prog): Same.
2508         * graphite-cloog-compat.h (cloog_domain): Removed.
2509         (cloog_scattering): New.
2510         (cloog_set_domain): Removed.
2511         (cloog_set_scattering): New.
2512         (cloog_next_domain): Removed.
2513         (cloog_next_scattering): New.
2514         (cloog_set_next_domain): Removed.
2515         (cloog_set_next_scattering): New.
2516         (CloogScatteringList): New.
2517         (CloogScattering): New.
2518         (cloog_scattering_free): New.
2519         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
2520         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
2521         New.
2522
2523 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2524
2525         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
2526         CloogState.
2527         (set_cloog_options): Same.
2528         (print_clast_stmt): Same.
2529         (scop_to_clast): Same.
2530         (print_generated_program): Same.
2531         (gloog): Same.
2532         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
2533         (scop_to_clast): Extend with CloogState.
2534         * graphite-cloog-util.c: Include graphite-cloog-compat.h
2535         (new_Cloog_Domain_from_ppl_Polyhedron):
2536         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
2537         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
2538         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2539         * graphite-cloog-util.h (build_cloog_prog): Same.
2540         * graphite-cloog-copat.h (build_cloog_prog): New.
2541         (CloogState): New.
2542         (cloog_state_malloc): New.
2543         (cloog_state_free): New.
2544         (cloog_loop_malloc): New.
2545         (cloog_options_malloc): New.
2546         (cloog_statement_alloc): New.
2547         (cloog_domain_from_cloog_matrix): New.
2548         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
2549         (new_Cloog_Domain_from_ppl_Polyhedron): New.
2550
2551 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2552
2553         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
2554         type of NAME now depends on used CLooG version.
2555         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
2556         (gcc_type_for_clast_expr): Same.
2557         (print_clast_stmt): Replace pprint with clast_pprint.
2558         * graphite-cloog-compat.h: Provide compatibility macros for
2559         CLooG Legacy.
2560         (clast_name_p): New.
2561         (clast_expr_term): New.
2562         (clast_expr_red): New.
2563         (clast_expr_bin): New.
2564         (clast_pprint): New.
2565
2566 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2567
2568         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
2569         compatible to newer CLooG releases (CLOOG_ORG).
2570         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
2571         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
2572         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
2573         (build_cloog_prog) : New.
2574         (cloog_program_extract_scalars): New.
2575         (cloog_program_scatter): New.
2576
2577 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2578
2579         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
2580         conditionally (CLOOG_ORG).
2581         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
2582         (cloog_statement_usr): New.
2583         (cloog_domain): Same.
2584         (cloog_set_domain): Same.
2585         (cloog_next_domain): Same.
2586         (cloog_set_next_domain): Same.
2587         (cloog_program_nb_scattdims): Same.
2588         (cloog_program_set_nb_scattdims): Same.
2589         (cloog_program_names): Same.
2590         (cloog_program_set_names): Same.
2591         (cloog_program_set_context): Same.
2592         (cloog_program_set_loop): Same.
2593         (cloog_program_blocklist): Same.
2594         (cloog_program_set_blocklist): Same.
2595         (cloog_program_scaldims): Same.
2596         (cloog_program_set_scaldims): Same.
2597         (cloog_names_nb_parameters): Same.
2598         (cloog_names_set_nb_parameters): Same.
2599         (cloog_names_parameters): Same.
2600         (cloog_names_set_parameters): Same.
2601         (cloog_names_set_nb_iterators): Same.
2602         (cloog_names_set_iterators): Same.
2603         (cloog_names_set_nb_scattering): Same.
2604         (cloog_names_set_scattering): Same.
2605         (cloog_statement_set_usr): Same.
2606         (cloog_loop_set_next): Same.
2607         (cloog_loop_set_domain): Same.
2608         (cloog_loop_set_block): Same.
2609         (cloog_block_list_next): Same.
2610         (cloog_block_list_set_next):
2611         (cloog_block_list_set_block): Same.
2612
2613 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2614
2615         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
2616         a bool.
2617         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
2618         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
2619         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
2620         when something has been changed.
2621         (rewrite_commutative_reductions_out_of_ssa): Same.
2622
2623 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2624
2625         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
2626         handle the case when def is in the sese region.
2627         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
2628         for invariant expressions.
2629         (rewrite_cross_bb_phi_deps): Removed.
2630         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
2631         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
2632         rewrite_cross_bb_phi_deps.
2633
2634 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2635
2636         * graphite-sese-to-poly.c
2637         (rewrite_commutative_reductions_out_of_ssa_loop): Call
2638         scev_analyzable_p only on is_gimple_reg
2639
2640 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2641
2642         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
2643         (rewrite_close_phi_out_of_ssa): Propagate constant values or
2644         parametric expressions outside the scop region.
2645         (rewrite_cross_bb_scalar_deps): Same.
2646         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
2647
2648 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2649
2650         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
2651         SSA_NAME_DEF_STMT only on SSA_NAMEs.
2652
2653 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2654
2655         * tree-scalar-evolution.c (instantiate_scev_name): Do not
2656         instantiate default definitions.
2657
2658 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
2659             Sebastian Pop  <sebastian.pop@amd.com>
2660
2661         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
2662         (loop_exits_from_bb_p): New.
2663         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
2664         (loop_exits_from_bb_p): Declared.
2665         * graphite-scop-detection.c (scopdet_basic_block_info): Call
2666         loop_exits_to_bb_p.
2667
2668 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2669
2670         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
2671         extra parameter for the region.  Call scev_analyzable_p.
2672         (rewrite_reductions_out_of_ssa): Update call to
2673         rewrite_close_phi_out_of_ssa.
2674         (rewrite_cross_bb_phi_deps): Same.
2675         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
2676         parameter for the region.  Call scev_analyzable_p.
2677         (rewrite_commutative_reductions_out_of_ssa): Update call to
2678         rewrite_commutative_reductions_out_of_ssa_loop.
2679
2680 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2681
2682         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
2683
2684 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2685
2686         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
2687         SSA scalar phi nodes that can be scev_analyzable_p.
2688
2689 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2690
2691         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
2692         handle SSA_NAME_IS_DEFAULT_DEF.
2693
2694 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2695
2696         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
2697
2698 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2699
2700         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
2701         case non close-phi nodes with one argument.
2702
2703 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2704
2705         * sese.h (scev_analyzable_p): Scevs could be expressions without
2706         chrecs and still be scev_analyzable_p.
2707
2708 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2709
2710         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
2711
2712 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2713
2714         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
2715         * cfgloop.h (struct loop): Remove single_iv field.
2716         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
2717         (scop_canonicalize_loops): Removed.
2718         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
2719         over all the loop phi nodes in loop->header.
2720         (build_poly_scop): Remove use of scop_canonicalize_loops.
2721
2722 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2723
2724         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
2725         handle GIMPLE_CALL.
2726
2727 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2728
2729         * tree-chrec.c (chrec_apply): Should only apply to the specified
2730         variable.  Also handle multivariate chains of recurrences that
2731         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
2732
2733 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2734
2735         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
2736         (debug_clast_name_indexes_1): Removed.
2737         (debug_clast_name_indexes): Removed.
2738         (pbb_to_depth_to_oldiv): Removed.
2739         (build_iv_mapping): Replace the use of rename_map with iv_map.
2740         (translate_clast_user): Remove uses of rename_map.  Allocate and
2741         free iv_map.
2742         (translate_clast_for_loop): Remove uses of rename_map.
2743         (translate_clast_for): Same.
2744         (translate_clast_guard): Same.
2745         (translate_clast): Same.
2746         (gloog): Same.
2747         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
2748         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
2749         * sese.c (set_rename): Now static.
2750         (rename_variables_in_stmt): Removed.
2751         (rename_uses): New.
2752         (is_parameter): Removed.
2753         (is_iv): Removed.
2754         (expand_scalar_variables_call): Removed.
2755         (expand_scalar_variables_ssa_name): Removed.
2756         (expand_scalar_variables_expr): Removed.
2757         (expand_scalar_variables_stmt): Removed.
2758         (expand_scalar_variables): Removed.
2759         (rename_variables): Removed.
2760         (remove_condition): Removed.
2761         (get_true_edge_from_guard_bb): Removed.
2762         (get_false_edge_from_guard_bb): Removed.
2763         (struct igp): Removed.
2764         (default_before_guard): Removed.
2765         (convert_for_phi_arg): Removed.
2766         (add_guard_exit_phis): Removed.
2767         (insert_guard_phis): Removed.
2768         (graphite_copy_stmts_from_block): Now also uses iv_map and a
2769         region.  Do not copy conditions.  Do not copy induction variables.
2770         Call rename_uses.
2771         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
2772         the translated statement.  Use the iv_map for the induction
2773         variable renaming.
2774         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2775         (set_rename): Removed declaration.
2776         (scev_analyzable_p): ...here.
2777         * tree-chrec.c (chrec_apply_map): New.
2778         * tree-chrec.h (chrec_apply_map): Declared.
2779
2780 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2781
2782         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
2783         insert_loop_close_phis.
2784         * sese.c (name_defined_in_loop_p): Removed.
2785         (expr_defined_in_loop_p): Removed.
2786         (alive_after_loop): Removed.
2787         (close_phi_not_yet_inserted_p): Removed.
2788         (struct alep): Removed.
2789         (add_loop_exit_phis): Removed.
2790         (insert_loop_close_phis): Removed.
2791
2792 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2793
2794         * graphite-cloog-util.c
2795         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
2796         * graphite-poly.c
2797         (psct_scattering_dim_for_loop_depth): Same.
2798
2799 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2800
2801         * graphite-cloog-util.h: Added cloog.h.
2802         * graphite-blocking.c: Removed cloog.h.
2803         * graphite-dependences.c: Same.
2804         * graphite-interchange.c: Same.
2805         * graphite-poly.c: Same.
2806         * graphite-ppl.c: Same.
2807         * graphite-scop-detection.c: Same.
2808         * graphite-sese-to-poly.c:
2809         Removed cloog.h.
2810         Removed graphite-clast-to-gimple.h.
2811         (check_poly_representation): Removed (unused).
2812         * graphite-sese-to-poly.h
2813         (check_poly_representation): Removed (unused).
2814
2815 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2816
2817         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
2818         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
2819         (graphite-cloog-util.o): New.
2820         (graphite-ppl.o): Added graphite-cloog-util.h.
2821         * graphite-clast-to-gimple.c:
2822         Added graphite-cloog-util.h to include statements.
2823         * graphite-cloog-util.c: New.
2824         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
2825         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2826         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2827         (new_C_Polyhedron_from_Cloog_Matrix): Same.
2828         (insert_constraint_into_matrix): Same.
2829         (ppl_Constrain_System_number_of_constraints): Same.
2830         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
2831         (oppose_constraint): Same.
2832         (cloog_matrix_to_ppl_constraint): Same.
2833         (new_Constraint_System_from_Cloog_Matrix): Same.
2834         * graphite-cloog-util.h: New.
2835         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
2836         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2837         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2838         (new_C_Polyhedron_from_Cloog_Matrix): Same.
2839         (insert_constraint_into_matrix): Same.
2840         * graphite-ppl.c:
2841         Added graphite-cloog-util.h to include statements.
2842         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
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         (ppl_Constrain_System_number_of_constraints): Same.
2848         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
2849         (oppose_constraint): Same.
2850         (cloog_matrix_to_ppl_constraint): Same.
2851         (new_Constraint_System_from_Cloog_Matrix): Same.
2852         * graphite-ppl.h:
2853         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
2854         graphite-cloog-util.h.
2855         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2856         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2857         (new_C_Polyhedron_from_Cloog_Matrix): Same.
2858         (insert_constraint_into_matrix): Same.
2859
2860 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2861
2862         * graphite-clast-to-gimple.c
2863         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
2864         (precision_for_interval): Same.
2865         (gcc_type_for_interval): Same.
2866         (compute_type_for_level): Same.
2867         * graphite-interchange.c
2868         (lst_interchange_profitable_p): Same.
2869         * graphite-poly.c
2870         (psct_scattering_dim_for_loop_depth): Same.
2871         * graphite-ppl.c
2872         (ppl_max_for_le_pointset): Same.
2873         (ppl_min_for_le_pointset): Same.
2874
2875 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2876
2877         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
2878         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
2879
2880 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2881
2882         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
2883         rewrite_close_phi_out_of_ssa.
2884
2885 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2886
2887         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
2888
2889 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2890
2891         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
2892         rename_map.
2893         * sese.c (debug_rename_map): Same.
2894         (get_rename): Same.
2895         (set_rename): Same.
2896         (rename_variables_in_stmt): Same.
2897         (expand_scalar_variables_call): Same.
2898         (expand_scalar_variables_ssa_name): Same.
2899         (expand_scalar_variables_expr): Same.
2900         (expand_scalar_variables_stmt): Same.
2901         (expand_scalar_variables): Same.
2902         (rename_variables): Same.
2903         (graphite_copy_stmts_from_block): Same.
2904         (copy_bb_and_scalar_dependences): Same.
2905
2906 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2907
2908         * graphite-clast-to-gimple.c (copy_renames): Removed.
2909         (translate_clast_for): Do not call copy_renames.
2910         (translate_clast_guard): Same.
2911
2912 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2913
2914         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
2915         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
2916         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
2917         before rewrite_cross_bb_scalar_deps.
2918
2919 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2920
2921         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
2922         Early return in when flag_associative_math is not set.
2923
2924 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2925
2926         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
2927         of SSA copies on edges except for loop->latch.
2928
2929 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2930
2931         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
2932         Split out of rewrite_reductions_out_of_ssa.
2933         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
2934         Declared.
2935         * graphite.c (graphite_transform_loops): Call it.
2936
2937 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2938
2939         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
2940
2941 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
2942
2943         * dbgcnt.def (graphite_scop): New counter.
2944         * graphite.c: Include dbgcnt.h.
2945         (graphite_transform_loops): Use new counter to limit transformations.
2946         * Makefile.in (graphite.o): Depend on DBGCNT_H.
2947
2948 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2949
2950         * passes.c (init_optimization_passes): Add pass_graphite.
2951         Schedule a pass_copy_prop before pass_graphite_transforms.
2952         * timevar.def (TV_GRAPHITE): Declared.
2953         * tree-pass.h (pass_graphite): Declared.
2954         * tree-ssa-loop.c (pass_graphite): New.
2955
2956 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2957
2958         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
2959         Remove calls to rename_nb_iterations and rename_sese_parameters.
2960         * graphite-clast-to-gimple.h (gloog): Update declaration.
2961         * graphite.c (graphite_transform_loops): Update call to gloog.
2962         * sese.c (rename_variables_in_expr): Removed.
2963         (rename_nb_iterations): Removed.
2964         (rename_sese_parameters): Removed.
2965         * sese.h (rename_nb_iterations): Removed.
2966         (rename_sese_parameters): Removed.
2967
2968 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2969
2970         * graphite-clast-to-gimple.c (gloog): Remove call to
2971         sese_adjust_liveout_phis.
2972         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
2973         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
2974         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
2975         rewrite_phi_out_of_ssa.
2976         * sese.c (get_vdef_before_sese): Removed.
2977         (sese_adjust_vphi): Removed.
2978         (sese_adjust_liveout_phis): Removed.
2979         * sese.h (sese_adjust_liveout_phis): Removed.
2980
2981 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2982
2983         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
2984         argument for the place after which to insert the out of SSA copy.
2985         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
2986         (rewrite_phi_out_of_ssa): Same.
2987         (rewrite_cross_bb_scalar_deps): Same.
2988         (insert_copyout): Removed.
2989         (insert_copyin): Removed.
2990         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
2991         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
2992         insert_copyin.
2993
2994 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2995
2996         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
2997         (rewrite_reductions_out_of_ssa): Same.
2998         (rewrite_commutative_reductions_out_of_ssa): Same.
2999         (build_poly_scop): Do not call these functions.
3000         * graphite-sese-to-poly.h (build_poly_scop): Declared.
3001         (rewrite_reductions_out_of_ssa): Declared.
3002         (rewrite_commutative_reductions_out_of_ssa): Declared.
3003         * graphite.c (graphite_transform_loops): Call on every scop
3004         rewrite_commutative_reductions_out_of_ssa before calling
3005         rewrite_reductions_out_of_ssa and build_scop_bbs.
3006
3007 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3008
3009         * graphite-dependences.c (dot_deps): Make system call to dotty run
3010         in background.
3011         (dot_deps_stmt): Same.
3012         * graphite-poly.c (dot_lst): Same.
3013
3014 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3015
3016         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
3017         phi_arg_in_outermost_loop.
3018         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
3019         (remove_invariant_phi): Same.
3020
3021 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
3022
3023         * target.def (output_addr_const_extra): New hook.
3024         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
3025         * doc/tm.texi: Regenerate.
3026         * targhooks.c (default_asm_output_addr_const_extra): New function.
3027         * targhooks.h (default_asm_output_addr_const_extra): Declare.
3028         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
3029         target hook.
3030
3031         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3032         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
3033         * config/i386/i386.h (output_addr_const_extra): Rename to...
3034         (i386_asm_output_addr_const_extra): ...this. Make static.
3035         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3036
3037 2010-08-11  Richard Henderson  <rth@redhat.com>
3038
3039         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
3040
3041 2010-08-11  Nick Clifton  <nickc@redhat.com>
3042
3043         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
3044         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
3045         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
3046         stormy16-lib2-cmpsi.c.
3047
3048         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
3049         -O2.
3050
3051 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
3052
3053         * opts.h (struct cl_option_handler_func): Make handler take
3054         cl_decoded_option structure as parameter, not individual elements.
3055         (struct cl_option_handlers): Make callbacks take cl_decoded_option
3056         structure as parameter, not individual elements.
3057         (handle_option): Take cl_decoded_option structure as parameter,
3058         not individual elements.
3059         (handle_generated_option): Declare.
3060         * opts-common.c (handle_option): Take cl_decoded_option structure
3061         as parameter, not individual elements.  Update calls to callback
3062         and handler functions.
3063         (handle_generated_option): New.
3064         (read_cmdline_option): Update calls to callback functions and
3065         handle_option.
3066         * opts.c (common_handle_option, complain_wrong_lang,
3067         unknown_option_callback, post_handling_callback,
3068         lang_handle_option, target_handle_option): Take cl_decoded_option
3069         structure as parameter, not individual elements.
3070         (lang_handle_option, target_handle_option, common_handle_option):
3071         Assert option has at most one argument.
3072         (enable_warning_as_error): Call handle_generated_option instead of
3073         handle_option.  Do not pass -Werror argument as argument of
3074         generated option.
3075
3076 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3077
3078         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
3079         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
3080         (SUBWORD_BOOL_CAS): Likewise.
3081         (SUBWORD_SYNC_OP): Likewise.
3082         (SUBWORD_TEST_AND_SET): Likewise.
3083         (FETCH_AND_OP_WORD): Parenthesise INF_OP
3084         (SUBWORD_SYNC_OP): Likewise.
3085         (OP_AND_FETCH_WORD): Likewise.
3086
3087 2010-08-10  Xinliang David Li  <davidxl@google.com>
3088
3089         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
3090         compute max/min offset in address.
3091
3092 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
3093
3094         * ira-live.c: Include sbitmap.h.
3095         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
3096         Compress live ranges even more.
3097
3098 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3099
3100         * coverage.c (ctr_labels): Delete.
3101
3102 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
3103
3104         PR bootstrap/45177
3105         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
3106         test here from arm_gen_load_multiple_1.
3107         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
3108         multiple_operation_profitable_p.
3109
3110 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3111
3112         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
3113         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
3114
3115 2010-08-10  Richard Henderson  <rth@redhat.com>
3116
3117         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
3118         after saving registers.  Assert that SSE registers are only saved
3119         with a sufficiently aligned frame.
3120         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
3121         remove stack_realign_fp handling.
3122         (ix86_expand_prologue): Save int registers before stack_realign_fp,
3123         and do not mark the stack alignment as frame related.
3124         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
3125
3126         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
3127         saves when re-aligning the stack.
3128
3129 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3130
3131         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
3132         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
3133         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
3134
3135 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3136
3137         * dwarf2out.c (struct die_struct): Move die_tag to the end.
3138
3139 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
3140
3141         * config/arm/iterators.md: New file.
3142         * config/arm/arm.md: Include iterators.md.
3143         (QHSI): Move to new file.
3144         (LTUGEU, cnb, optab, ior_xor): Likewise.
3145         * config/arm/iwmmxt.md (VMMX): Move to new file.
3146         (VSHFT, MMX_char): Likewise.
3147         * config/arm/neon.md (VD): Move to new file.
3148         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
3149         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
3150         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
3151         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
3152         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
3153         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
3154         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
3155         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
3156         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
3157         (Is_d_reg, V_mode_nunits): Likewise.
3158         * config/arm/vec-common.md (VALL): Move to new file.
3159         (VALLW, VINT, VINTW): Likewise.
3160
3161 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
3162
3163         PR middle-end/45182
3164         * combine.c (make_compound_operation): Don't try to convert
3165         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
3166
3167 2010-08-10  Richard Guenther  <rguenther@suse.de>
3168
3169         * tree.h (get_object_alignment): Adjust prototype.
3170         * builtins.c (get_object_alignment): Return unsigned int,
3171         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
3172         and TARGET_MEM_REF properly.
3173         (get_pointer_alignment): Adjust.
3174         * emit-rtl.c (get_mem_align_offset): Adjust comment.
3175         (set_mem_attributes_minus_bitpos): Adjust.
3176         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
3177
3178 2010-08-10  Richard Guenther  <rguenther@suse.de>
3179
3180         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
3181         (copy_prop_visit_assignment): Simplify.
3182         (copy_prop_visit_stmt): Also visit assignments from
3183         constants.
3184         (copy_prop_visit_phi_node): Use operand_equal_p.
3185
3186 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3187
3188         * ipa-split.c (find_split_points): Free stack.
3189
3190 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3191
3192         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
3193         * tree.c (tree_node_kind): Delete corresponding entries.
3194
3195 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
3196
3197         * alias.c (may_alias_p): Remove unused ret.
3198
3199 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
3200
3201         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
3202         alias_sets_conflict_p.
3203         (walk_mems_1): Moved from alias.c.
3204         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
3205         in alias.c.
3206         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
3207         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
3208         * alias.c (walk_mems_2): Moved to ddg.c.
3209         (walk_mems_1): Ditto.
3210         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
3211         to ddg.c.
3212         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
3213         disambiguation.
3214         *(may_alias_p): New function to check whether two memory expression
3215         may alias or not. Currently used in buidling inter-iteration memory
3216         dependence.
3217         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
3218         (insn_alias_sets_conflict_p): Removed
3219         *rtl.h (may_alias_p): New function prototype.
3220
3221 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3222
3223         * tree.c (nreverse): Assert that we don't have a BLOCK.
3224
3225 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3226
3227         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
3228         * config/arm/arm.c (arm_get_pcs_model): Likewise.
3229         * config/avr/avr.c (init_cumulative_args): Likewise.
3230         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
3231         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
3232         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
3233         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
3234         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
3235         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
3236         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
3237         * dwarf2out.c (gen_subprogram_die): Likewise.
3238         * function.c (allocate_struct_function): Likewise.
3239         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
3240         (deserves_ellipsis): Delete.
3241
3242 2010-08-09  Richard Guenther  <rguenther@suse.de>
3243
3244         * tree-ssa-copy.c (cached_last_copy_of): Remove.
3245         (valueize_val): New function.
3246         (get_last_copy_of): Remove.
3247         (set_copy_of_val): Simplify.
3248         (dump_copy_of): Likewise.
3249         (copy_prop_visit_cond_stmt): Use valueize_val.
3250         (copy_prop_visit_phi_node): Properly handle unvisited names.
3251         Drop code managing copy-of chains.
3252         (init_copy_prop): Adjust.
3253         (fini_copy_prop): Likewise.
3254         (execute_copy_prop): Remove obsolete comment.
3255
3256 2010-08-09  Richard Guenther  <rguenther@suse.de>
3257
3258         PR middle-end/44632
3259         * function.c (gimplify_parameters): Do not clear addressable
3260         bit of the original parameter.
3261
3262 2010-08-09  Richard Guenther  <rguenther@suse.de>
3263
3264         PR middle-end/45212
3265         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
3266         alignment from MEM_REF offset only if we took it from the
3267         base object.
3268
3269 2010-08-09  Eric Fisher <joefoxreal@gmail.com>
3270
3271         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
3272
3273 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
3274
3275         * c-tree.h (build_arg_info): Declare.
3276         * c-decl.c (build_arg_info): Define.
3277         (get_parm_info): Call it.  Delete initialization code.
3278         * c-parser.c (c_parser_parms_declarator): Likewise.
3279         (c_parser_parms_list_declaractor): Likewise.
3280
3281 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
3282
3283         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
3284         (struct c_arg_info): Change type of tags field.
3285         * c-decl.c (grokdeclarator): Update for changed type of tags field.
3286         (get_parm_info): Likewise.
3287         (store_parm_decls_newstyle): Likewise.
3288
3289 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
3290
3291         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
3292         (branch_island_list): Delete.
3293         (branch_islands): Declare.
3294         (add_compiler_branch_island): Adjust for branch_islands instead of
3295         branch_island_list.
3296         (macho_branch_islands): Likewise.
3297         (no_previous_def): Likewise.
3298         (get_prev_label): Likewise.
3299
3300 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3301
3302         PR boehm-gc/34544
3303         * gthr-posix.h (__gthread_start): Delete.
3304         (__gthread_active_init): Use pthread_default_stacksize_np instead of
3305         pthread_create to determine if hpux pthreads are active.
3306         * gthr-posix95.h (__gthread_start): Delete.
3307         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
3308
3309 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
3310
3311         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
3312         _WIN64 not expanded.
3313
3314 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
3315             H.J. Lu  <hongjiu.lu@intel.com>
3316
3317         PR target/45213
3318         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
3319         to output 32bit SFmode immediate as 8 byte sign extended value.
3320
3321 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3322
3323         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
3324         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
3325         (SUBWORD_BOOL_CAS): Likewise.
3326         (SUBWORD_SYNC_OP): Likewise.
3327         (SUBWORD_TEST_AND_SET): Likewise.
3328         (FETCH_AND_OP_WORD): Parenthesise INF_OP
3329         (SUBWORD_SYNC_OP): Likewise.
3330         (OP_AND_FETCH_WORD): Likewise.
3331
3332 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3333
3334         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
3335         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
3336         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
3337         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
3338         generic part.
3339         (cortex_a9_sched_adjust_cost): New function.
3340         (xscale_sched_adjust_cost): New function.
3341         * config/arm/arm-protos.h (struct tune_params): New field
3342         sched_adjust_cost.
3343         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
3344
3345 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
3346
3347         PR target/44942
3348         * config/sparc/sparc.c (function_arg_advance): Always take into account
3349         the padding, if any.
3350
3351 2010-08-06  Richard Guenther  <rguenther@suse.de>
3352
3353         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
3354         (dump_lattice_value): Dump it.
3355         (get_default_value): Adjust.
3356         (get_constant_value): Likewise.
3357         (set_value_varying): Likewise.
3358         (set_lattice_value): Make sure to not go up the lattice
3359         with bitwise constant values.
3360         (get_value_for_expr): Handle ADDR_EXPRs.
3361         (value_to_double_int): New function.
3362         (get_value_from_alignment): Likewise.
3363         (do_dbg_cnt): Adjust.
3364         (ccp_lattice_meet): Handle partially constant values.
3365         (bit_value_unop_1): New function.
3366         (bit_value_binop_1): Likewise.
3367         (bit_value_unop): Likewise.
3368         (bit_value_binop): Likewise.
3369         (evaluate_stmt): Track partially constant values if
3370         flag_tree_bit_ccp is set.
3371         (ccp_fold_stmt): Dump if we folded a predicate.
3372         (ccp_visit_stmt): Adjust.
3373         * common.opt (ftree-bit-ccp): New flag.
3374         * doc/invoke.texi (ftree-bit-ccp): Document.
3375         * opts.c (decode_options): Enable bit-CCP at -O1.
3376
3377 2010-08-06  Alan Modra  <amodra@gmail.com>
3378
3379         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
3380         and -mrelocatable-lib description.
3381
3382 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
3383
3384         From Martin Thuresson  <martint@google.com>
3385         * postreload.c (reload_cse_simplify_operands): Use
3386         SET_REGNO_RAW instead of SET_REGNO.
3387         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
3388         SET_REGNO.
3389         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
3390         instead of SET_REGNO.
3391         * rtl.h (SET_REGNO_RAW): New macro.
3392
3393 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
3394
3395         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
3396         computations.  Fix formatting issues.
3397         (num_sign_bit_copies1): Likewise.
3398         (canonicalize_condition): Likewise.
3399
3400 2010-08-05  Richard Henderson  <rth@redhat.com>
3401
3402         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
3403         (floor_log2): Use clz_hwi.
3404         (exact_log2): Use ctz_hwi.
3405         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
3406         * builtins.c (fold_builtin_bitop): Use them.
3407         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3408         * combine.c (get_pos_from_mask): Use ctz_hwi.
3409         * double-int.c (double_int_ctz): Likewise.
3410         * explow.c (force_reg): Likewise.
3411         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
3412
3413 2010-08-05  Richard Henderson  <rth@redhat.com>
3414
3415         PR target/45189
3416         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
3417         the alignment constant is properly sign-extended.
3418
3419 2010-08-05  Richard Guenther  <rguenther@suse.de>
3420
3421         * expr.c (store_expr): Use emit_block_move only if both
3422         source and target are MEMs.  Use store_bit_field if only
3423         the target is a MEM.
3424
3425 2010-08-05  Richard Henderson  <rth@redhat.com>
3426
3427         PR debug/45188
3428         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
3429         (INCOMING_RETURN_ADDR_RTX): Likewise.
3430         (dwarf2out_do_frame): Remove conditional compilation.
3431         (dwarf2out_frame_init): Likewise.
3432
3433 2010-08-05  Nicolas Setton  <setton@adacore.com>
3434
3435         * gcov.c (flag_display_progress): New static variable.
3436         (main): Display progress info on standard output if requested.
3437         (options): Add -d/--display-progress.
3438         (print_usage): Print them.
3439         (process_args): Handle them.
3440         * doc/gcov.texi: Document them.
3441
3442 2010-08-05  Martin Jambor  <mjambor@suse.cz>
3443
3444         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
3445         (ipcp_insert_stage): Redirect only edges not flagged with
3446         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
3447         discovered constants.
3448
3449 2010-08-05  Martin Jambor  <mjambor@suse.cz>
3450
3451         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
3452         (struct ipa_param_descriptor): New fields types and
3453         cannot_devirtualize.
3454         (ipa_param_cannot_devirtualize_p): New function.
3455         (ipa_param_types_vec_empty): Likewise.
3456         (ipa_make_edge_direct_to_target): Declare.
3457         * ipa-cp.c: Fixed first stage driver name in initial comment,
3458         described devirtualization there too.
3459         (ipcp_analyze_node): Call ipa_analyze_params_uses.
3460         (ipcp_print_all_lattices): Print devirtualization info.
3461         (ipa_set_param_cannot_devirtualize): New function.
3462         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
3463         lattice to BOTTOM.
3464         (ipcp_init_stage): Merged into...
3465         (ipcp_generate_summary): ...its caller.
3466         (ipcp_change_tops_to_bottom): Also process type lists.
3467         (ipcp_add_param_type): New function.
3468         (ipcp_copy_types): Likewise.
3469         (ipcp_propagate_types): Likewise.
3470         (ipcp_propagate_stage): Also propagate types.
3471         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
3472         Also return true if propagated types require it.
3473         (ipcp_update_callgraph): Dump redirection info.
3474         (ipcp_process_devirtualization_opportunities): New function.
3475         (ipcp_const_param_count): Include known type information.
3476         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
3477         on new node.  Fixed formatting.
3478         * ipa-prop.c (make_edge_direct_to_target): Renamed to
3479         ipa_make_edge_direct_to_target and changed all callers.  Made
3480         externally visible.
3481         (ipa_node_duplication_hook): Duplicate types vector.
3482         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
3483         redirect outgoing calls for which we can't get a decl from the
3484         statement.  Check that we can get a decl from the call statement.
3485         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3486         ipa_analyze_params_uses only when ipa-cp is disabled.
3487         * tree-inline.c (get_indirect_callee_fndecl): Removed.
3488         (expand_call_inline): Do not call get_indirect_callee_fndecl.
3489         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
3490         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
3491
3492 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
3493
3494         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
3495         temporary. Emit move from temporary to accum, so REG_EQUAL note will
3496         be attached to this insn in correct mode.
3497
3498 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
3499
3500         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
3501         using REGNO of base_reg directly.
3502
3503 2010-08-05  Jie Zhang  <jie@codesourcery.com>
3504
3505         PR tree-optimization/45144
3506         * tree-sra.c (type_consists_of_records_p): Return false
3507         if the record contains bit-field.
3508
3509 2010-08-04  Richard Henderson  <rth@redhat.com>
3510
3511         * config/i386/i386.c (struct ix86_frame): Remove padding and
3512         to_allocate members.
3513         (ix86_compute_frame_layout): Don't store them.
3514         (ix86_can_use_return_insn_p): Use a more direct and more obviously
3515         correct condition for the position of the stack pointer.
3516         (ix86_expand_prologue): Compute remaining stack allocation based
3517         on the ultimate stack pointer offset.
3518         (ix86_expand_epilogue): Use more obvious expressions testing for
3519         the stack pointer already pointing to the saved registers.
3520
3521         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
3522         duplication deconstructing the frame pointer.  Simplify
3523         deallocation of the local stack frame.
3524
3525         * reg-notes.def (CFA_EXPRESSION): New.
3526         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3527         (dwarf2out_frame_debug_cfa_expression): New.
3528         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
3529
3530         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
3531         * config/i386/i386.c (ix86_expand_prologue): Set it.
3532         (ix86_expand_epilogue): Clear it.
3533         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
3534         context, add REG_CFA_EXPRESSION notes.
3535
3536         * config/i386/i386.h (struct machine_frame_state): Rename from
3537         machine_cfa_state.  Add members tracking SP and FP regardless
3538         of the current CFA register.
3539         (ix86_cfa_state): Remove.
3540         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
3541         and sse_reg_save_offset members.
3542         (ix86_compute_frame_layout): Set them.
3543         (gen_push): Increment sp_offset too.
3544         (choose_baseaddr_len, choose_baseaddr): New.
3545         (ix86_emit_save_reg_using_mov): New.
3546         (ix86_emit_save_regs_using_mov): Use it.
3547         (ix86_emit_save_sse_regs_using_mov): Likewise.
3548         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
3549         compare vs the saved red_zone_offset.
3550         (pro_epilogue_adjust_stack): Adjust sp_offset.
3551         (ix86_adjust_stack_and_probe): Likewise.
3552         (ix86_expand_prologue): Set up, use, and validate the new
3553         frame_state_info members.  Use gen_frame_mem.
3554         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
3555         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
3556         new frame_state_info members.
3557         (ix86_emit_leave): Likewise.
3558         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
3559         out-of-range stack pointer offsets here.
3560         (ix86_emit_restore_sse_regs_using_mov): Likewise.
3561         (ix86_expand_epilogue): Use and validate the new frame_state_info
3562         members.  Break up and simplify the logic selecting the
3563         restore_regs_via_mov code path.  Ensure that there will be no
3564         out-of-range stack pointer offsets.
3565
3566         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
3567
3568         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
3569         argument name to reflect the expected tree; fix indentation.
3570         (ix86_asm_output_function_label): Output the entire 32-bit
3571         ms_hook here as bytes ...
3572         (ix86_expand_prologue): ... not here as insns.  Attach the
3573         unwind info for the ms_hook to a blockage insn.
3574         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
3575         (ix86_ms_bitfield_layout_p): Fix indentation.
3576         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
3577
3578         * config/i386/i386.c (ix86_using_red_zone): New.
3579         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
3580         ix86_expand_prologue, ix86_force_to_memory): Use it.
3581
3582         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
3583         saving the int registers.
3584
3585         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
3586         and DWARF2_UNWIND_INFO conditional compilation.
3587
3588 2010-08-04  Richard Henderson  <rth@redhat.com>
3589
3590         PR debug/45171
3591         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
3592         an is_naming_typedef_decl.
3593
3594 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
3595
3596         PR rtl-optimization/45162
3597         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
3598         * dce.c (word_dce_process_block): Likewise.
3599
3600 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
3601
3602         PR target/44583
3603         * config/ia64/constraints.md (Z): New.
3604         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
3605         (xfreg_or_signed_fp01_operand): New.
3606         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
3607         with fr_reg_or_signed_fp01_operand and constraint G with Z.
3608         (subsf3): Ditto.
3609         (*maddsf4): Ditto.
3610         (*msubsf4): Ditto.
3611         (adddf3): Ditto.
3612         (adddf3_trunc): Ditto.
3613         (subdf3): Ditto.
3614         (*subdf3_trunc): Ditto.
3615         (*madddf4): Ditto.
3616         (*madddf4_trunc): Ditto.
3617         (*msubdf4): Ditto.
3618         (*msubdf4_trunc): Ditto.
3619         (addxf3): Replace xfreg_or_fp01_operand with
3620         xfreg_or_signed_fp01_operand and constraint G with Z.
3621         (*addxf3_truncsf): Ditto.
3622         (*addxf3_truncdf): Ditto.
3623         (subxf3): Ditto.
3624         (*subxf3_truncsf): Ditto.
3625         (*subxf3_truncdf): Ditto.
3626         (*maddxf4): Ditto.
3627         (*maddxf4_truncsf): Ditto.
3628         (*maddxf4_truncdf): Ditto.
3629         (*msubxf4): Ditto.
3630         (*msubxf4_truncsf): Ditto.
3631         (*msubxf4_truncdf): Ditto.
3632
3633 2010-08-04  Richard Guenther  <rguenther@suse.de>
3634
3635         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
3636         if either alias-set is zero.
3637
3638 2010-08-04  Richard Guenther  <rguenther@suse.de>
3639
3640         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
3641         * tree-ssa-ccp.c: ... here.
3642         * tree-ssa-copy.c: ... and here.
3643         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
3644         value_range_t): Move ...
3645         * tree-vrp.c: ... here.
3646         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
3647         (substitute_and_fold): Adjust prototype.
3648         * tree-ssa-propagate.c (replace_uses_in): Adjust.
3649         (replace_phi_args_in): Likewise.
3650         (substitute_and_fold): Take callback to query lattice instead
3651         of pointer to lattice.  Replace SSA name defs with lattice
3652         values first.
3653         * tree-ssa-ccp.c (ccp_finalize): Adjust.
3654         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
3655         (get_value): New function.
3656         (fini_copy_prop): Adjust.
3657         * tree-vrp.c (vrp_finalize): Adjust.
3658
3659 2010-08-04  Richard Guenther  <rguenther@suse.de>
3660
3661         PR middle-end/45176
3662         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
3663         points-to set for original MEM_REF.
3664
3665 2010-08-04  Richard Guenther  <rguenther@suse.de>
3666
3667         * tree-ssa-ccp.c (get_constant_value): New function.
3668         (get_rhs_assign_op_for_ccp): Remove.
3669         (valueize_op): New function.
3670         (ccp_fold): Use get_constant_value and valueize_op.
3671         (fold_const_aggregate_ref): Likewise.
3672         (ccp_fold_stmt): Likewise.
3673         (visit_assignment): Simplify.
3674
3675 2010-08-04  Richard Guenther  <rguenther@suse.de>
3676
3677         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
3678         * double-int.h (double_int_ctz): Declare.
3679         * double-int.c (double_int_ctz): New function.
3680
3681 2010-08-04  Hariharan Sandanagobalane <hariharan@picochip.com>
3682
3683         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
3684         Define.
3685         picochip_expand_movmemhi : Expand movmem pattern.
3686         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
3687         Declare.
3688         * config/picochip/picochip.md (movmemhi) : New pattern.
3689
3690 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
3691
3692         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
3693
3694 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
3695
3696         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
3697         NEG as operand of a MULT by merging it with the other operand.
3698         * combine.c (make_compound_operation): Use trunc_int_for_mode when
3699         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
3700         MULT.
3701         * config/arm/constraints.md (M): Examine only 32 bits of a
3702         HOST_WIDE_INT.
3703         * config/arm/predicates.md (power_of_two_operand): Likewise.
3704
3705 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3706
3707         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
3708         non-NOTE insns.
3709
3710 2010-08-03  Jan Hubicka  <jh@suse.cz>
3711
3712         * ipa-split.c (struct split_point): Add split_part_set_retval.
3713         (find_retval): Forward declare.
3714         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
3715         (consider_split): Compute current->split_part_set_retval.
3716         (visit_bb): Do not look into return value.
3717         (split_function): Handle !split_part_set_retval
3718
3719 2010-08-03  Martin Jambor  <mjambor@suse.cz>
3720
3721         * tree-sra.c (completely_scalarize_record): New parameter REF, create
3722         its own access->expr intead of using build_ref_for_offset.
3723
3724 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
3725
3726         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
3727         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
3728         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
3729         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
3730         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
3731         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
3732         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
3733         DEFAULT_SWITCH_TAKES_ARG.
3734         * config/rx/rx.opt (-patch=): Remove option.
3735         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
3736         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
3737         * doc/invoke.texi (RX Options): Remove -patch=.
3738         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
3739         (option_map): Remove --profile-blocks, --quiet and --silent.
3740
3741 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
3742
3743         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
3744         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
3745         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
3746         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
3747         Update calls to ix86_expand_compare and ix86_expand_branch.
3748         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
3749         ix86_expand_compare.
3750         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
3751         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
3752         Make static.
3753         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
3754         and ix86_compare_op1.  Update calls to ix86_expand_compare.
3755         (ix86_expand_int_movcc): Ditto.
3756         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
3757         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
3758         (ix86_expand_setcc): Ditto.
3759         (ix86_expand_compare): Remove prototype.
3760         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
3761         ix86_compare_op0 and ix86_compare_op1.  Update calls
3762         to ix86_expand_branch to directly pass operands[1] and operands[2].
3763         (cbranchxf4): Ditto.
3764         (cbranch<MODEF:mode>4): Ditto.
3765         (cbranchcc4): Ditto.
3766         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
3767         Update calls to ix86_expand_setcc to directly pass operands[2] and
3768         operands[3].
3769         (cstorexf4): Ditto.
3770         (cstore<MODEF:mode>4): Ditto.
3771         (cstorecc4): Ditto.
3772
3773 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
3774
3775         PR target/45063
3776         * caller-save.c (save_call_clobbered_regs): Remove regs from
3777         hard_regs_saved when they are set.
3778
3779 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
3780
3781         PR target/41089
3782         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
3783         as volatile.
3784
3785 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
3786
3787         * common.opt (ftree-loop-distribute-patterns): New.
3788         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
3789         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
3790         at -O3.
3791         * tree-data-ref.c (stores_zero_from_loop): New.
3792         * tree-data-ref.h (stores_zero_from_loop): Declared.
3793         * tree-loop-distribution.c (tree_loop_distribution): Call
3794         stores_zero_from_loop.
3795         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
3796
3797 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
3798
3799         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
3800         into account.
3801
3802         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
3803         * config/arm/arm.c (thumb1_code): New variable.
3804         (arm_override_options): Set it.
3805         (thumb1_final_prescan_insn): Keep track of condition code status.
3806         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
3807         jumps that depend on them.
3808         * config/arm/arm.h (thumb1_code): Declare variable.
3809         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
3810         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
3811         thumb1_cc_mode.
3812         (CC_STATUS_INIT): New macro.
3813         * config/arm/constraints.md (Pd): New constraint.
3814         * config/arm/predicates.md (noov_comparison_operator): New predicate.
3815         * config/arm/arm.md (is_thumb1): New define_attr.
3816         (conds): Set default to "clob" when generating Thumb1 code.
3817         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
3818         code are set.  Use two-operand assembly syntax.
3819         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
3820         pattern.
3821         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
3822         codes are set.  Use two-operand assembly syntax.
3823         (zero_extendhisi splitter): Remove constraints.
3824         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
3825         thumb1_movsf_insn): Set conds attribute as appropriate.
3826         (cbranchsi4_insn): Use condition code status from struct
3827         machine_function to determine whether the comparison can be eliminated.
3828         Discourage the alternative using high registers.
3829         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
3830         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
3831         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
3832         subsi3_cbranch): Delete.
3833         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
3834         one subtract and one cbranch insn.
3835
3836         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
3837         thumb2_movdf_soft_insn): Delete patterns.
3838         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
3839         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
3840         (pool_range, neg_pool_range): Use them to define defaults.
3841         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
3842         and allow for TARGET_32BIT.
3843
3844         PR target/40457
3845         * config/arm/arm.h (arm_regs_in_sequence): Declare.
3846         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
3847         load_multiple_sequence, store_multiple_sequence): Delete
3848         declarations.
3849         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
3850         declarations.
3851         * config/arm/ldmstm.md: New file.
3852         * config/arm/arm.c (arm_regs_in_sequence): New array.
3853         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
3854         CHECK_REGS.  All callers changed.
3855         If SAVED_ORDER is nonnull, copy the computed order into it.
3856         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
3857         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
3858         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
3859         If SAVED_ORDER is nonnull, copy the computed order into it.
3860         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
3861         like REGS.  Handle Thumb mode.
3862         (arm_gen_load_multiple_1): New function, broken out of
3863         arm_gen_load_multiple.
3864         (arm_gen_store_multiple_1): New function, broken out of
3865         arm_gen_store_multiple.
3866         (arm_gen_multiple_op): New function, with code from
3867         arm_gen_load_multiple and arm_gen_store_multiple moved here.
3868         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
3869         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
3870         changed.
3871         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
3872         * config/arm/predicates.md (commutative_binary_operator): New.
3873         (load_multiple_operation, store_multiple_operation): Handle more
3874         variants of these patterns with different starting offsets.  Handle
3875         Thumb-1.
3876         * config/arm/arm.md: Include "ldmstm.md".
3877         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
3878         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
3879         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
3880         peepholes): Delete.
3881         * config/arm/ldmstm.md: New file.
3882         * config/arm/arm-ldmstm.ml: New file.
3883
3884         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
3885         if statement which adds extra costs to frame-related expressions.
3886
3887 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3888
3889         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
3890
3891 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
3892
3893         PR target/45142
3894         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
3895         alternative 2.
3896         (vec_set<moode>_0 splitter): Use SSEMODE4S mode iterator to also
3897         split V4SI operands.
3898
3899 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
3900
3901         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
3902         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
3903         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
3904         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
3905
3906 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
3907
3908         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
3909         LOCAL_INCLUDE_DIR.
3910
3911 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
3912
3913         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
3914         used in the call to optab_for_tree_code.  Fix the second
3915         is_widening_mult_p call.  Check that both unwidened operands
3916         have the same sign.
3917
3918 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
3919
3920         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
3921
3922 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
3923
3924         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
3925
3926 2010-07-30  DJ Delorie  <dj@redhat.com>
3927
3928         * config/rx/predicates.md (rx_constshift_operand): New.
3929         * config/rx/rx.md (zs_cond): New.
3930         (cbranchsi4): Remove mode.
3931         (*cbranchsi4_<code>): Likewise.
3932         (*tstbranchsi4_<code>): New.
3933         (*tstbranchsi4r_<code>): New.
3934         (*tstbranchsi4m_eq): New.
3935         (*tstbranchsi4m_ne): New.
3936         (cbranchsf4): Remove mode.
3937         (*cbranchsf4_<code>): Likewise.
3938
3939 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
3940
3941         * rtlanal.c (simplify_subreg_regno): Don't treat
3942         HARD_FRAME_POINTER_REGNUM specially.
3943
3944 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
3945
3946         * common.opt (-G): Don't define option here.
3947         * config/g.opt: New.
3948         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
3949         rs6000/powerpc and score targets.
3950         * opts.c (common_handle_option): Don't handle -G here.
3951         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
3952         * config/frv/frv.c (frv_handle_option): Handle -G.
3953         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
3954         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
3955         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
3956         * config/mips/mips.c (mips_handle_option): Handle -G.
3957         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
3958         * config/score/score.c (score_handle_option): Handle -G.
3959
3960 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
3961
3962         * config/mmix/mmix.c: Include basic-block.h.
3963
3964 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
3965
3966         PR debug/45055
3967         PR rtl-optimization/45137
3968         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
3969         prototypes.
3970         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
3971         New functions.
3972         * combine.c (next_nonnote_nondebug_insn): Removed.
3973         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
3974         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
3975         * sched-deps.c (sched_analyze_insn): Likewise.
3976         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
3977         * rtlanal.c (canonicalize_condition): Likewise.
3978         * postreload.c (reload_combine_recognize_pattern): Likewise.
3979         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
3980
3981 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
3982
3983         * config/i386/i386.md (int_cond): Remove code iterator.
3984         (fp_cond): Ditto.
3985         (cbranch<mode>4): Use ordered_comparison_operator predicate
3986         for operator0.
3987         (cstore<mode>4): Ditto for operator1.
3988         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
3989         (add<mode>cc): ditto.
3990
3991 2010-07-30  Richard Guenther  <rguenther@suse.de>
3992
3993         PR middle-end/45141
3994         * expr.c