OSDN Git Service

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