OSDN Git Service

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