OSDN Git Service

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