OSDN Git Service

* config/pdp11/pdp11.md: Correct length attribute for float
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-28  Paul Koning  <ni1d@arrl.net>
2
3         * config/pdp11/pdp11.md: Correct length attribute for float
4         literal case.
5
6 2010-12-28  Jie Zhang  <jie@codesourcery.com>
7
8         * builtins.c (SLOW_UNALIGNED_ACCESS): Remove.
9
10 2010-12-27  Joseph Myers  <joseph@codesourcery.com>
11
12         * config/freebsd.opt (assert=, defsym=, profile, pthread,
13         rpath-link=, rpath=, soname=): New Driver options.
14
15 2010-12-26  Martin Jambor  <mjambor@suse.cz>
16
17         * tree.c (get_binfo_at_offset): Use BINFO_TYPE instead of TREE_TYPE,
18         compare TYPE_MAIN_VARIANTs of types.
19
20 2010-12-26  Andreas Schwab  <schwab@linux-m68k.org>
21
22         * config/m68k/t-linux (M68K_MLIB_CPU): Only include 680x0 CPUs.
23
24 2010-12-24  Alexander Monakov  <amonakov@ispras.ru>
25
26         PR rtl-optimization/47036
27         * sel-sched-ir.c (fallthru_bb_of_jump): Remove special support for
28         unconditional jumps.
29         * sel-sched.c (moveup_expr): Ditto.
30
31 2010-12-23  Sebastian Pop  <sebastian.pop@amd.com>
32             Richard Guenther  <rguenther@suse.de>
33
34         PR tree-optimization/46758
35         * graphite-sese-to-poly.c (scan_tree_for_params_right_scev): Use
36         tree_int_to_gmp instead of int_cst_value.
37         (scan_tree_for_params_int): Same.
38         (scan_tree_for_params): Same.
39         (pdr_add_data_dimensions): Use ppl_set_inhomogeneous_tree.
40
41 2010-12-23  Sebastian Pop  <sebastian.pop@amd.com>
42
43         PR tree-optimization/47002
44         * tree-data-ref.c (compute_data_dependences_for_loop): Pass in a
45         pointer to the loop_nest.
46         (analyze_all_data_dependences): Initialize and free the loop_nest.
47         (free_dependence_relations): Do not free loop_nest.
48         (build_rdg): Pass in the loop_nest, datarefs, and dependence_relations.
49         (free_rdg): Also free the data on edges.
50         * tree-data-ref.h (build_rdg): Update declaration.
51         (compute_data_dependences_for_loop): Same.
52         * tree-if-conv.c (if_convertible_loop_p_1): Pass in the loop_nest.
53         (if_convertible_loop_p): Allocate and free loop_nest.
54         * tree-loop-distribution.c (rdg_flag_loop_exits): Free conds.
55         (free_rdg_components): VEC_free components.
56         (distribute_loop): Update call to build_rdg.  Allocate and free
57         loop_nest, datarefs, and dependence_relations.
58         * tree-loop-linear.c (linear_transform_loops): Allocate and free
59         loop_nest.
60         * tree-parloops.c (loop_parallel_p): Same.
61         * tree-predcom.c (tree_predictive_commoning_loop): Same.
62         * tree-vect-data-refs.c (vect_analyze_data_refs): Pass to
63         compute_data_dependences_for_loop a pointer to LOOP_VINFO_LOOP_NEST.
64         * tree-vect-loop.c (new_loop_vec_info): Initialize LOOP_VINFO_LOOP_NEST.
65         (destroy_loop_vec_info): Free LOOP_VINFO_MAY_ALIAS_DDRS and
66         LOOP_VINFO_LOOP_NEST.
67         * tree-vect-slp.c (destroy_bb_vec_info): Call free_data_refs and
68         free_dependence_relations.
69         * tree-vectorizer.h (struct _loop_vec_info): Add a field loop_nest.
70         (LOOP_VINFO_LOOP_NEST): New.
71
72 2010-12-23  Martin Jambor  <mjambor@suse.cz>
73
74         * ipa.c (cgraph_remove_unreachable_nodes): Update former_clone_of even
75         when not checking.
76
77 2010-12-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
78
79         * configure.ac (gcc_cv_ld_eh_frame_hdr): Only check GNU ld for
80         --eh-frame-hdr.  Check for working Sun ld version.
81         (HAVE_LD_EH_FRAME_HDR): Adapt comment.
82         (glibc_header_dir): Set only once.  Rename to ...
83         (target_header_dir): ... this.  Adapt users.
84         (gcc_cv_target_dl_iterate_frame_hdr): Check on *-*-solaris2*.
85         (TARGET_DL_ITERATE_PHDR): Define if present.
86         * configure: Regenerate.
87         * config.in: Likewise.
88         * config/t-sol2 (LIB2ADDEH, LIB2ADDEHDEP): Define.
89         * crtstuff.c (USE_PT_GNU_EH_FRAME): Define for recent Solaris 11
90         with linker support and dl_iterate_phdr.
91         * unwind-dw2-fde-glibc.c (USE_PT_GNU_EH_FRAME): Likewise.
92         (_Unwind_IteratePhdrCallback) [PT_SUNW_UNWIND]: Also accept
93         PT_SUNW_UNWIND .eh_frame_hdr sections.
94         [CRT_GET_RFIB_DATA && __i386__ && __sun__ && __svr4__]: Add
95         load_base to data->dbase.
96         [CRT_GET_RFIB_DATA && __x86_64__ && __sun__ && __svr4__]: Handle
97         64-bit Solaris 10+/x86.
98         * config/sol2-gld.h [TARGET_DL_ITERATE_PHDR && HAVE_LD_EH_FRAME_HDR]
99         (LINK_EH_SPEC): Define.
100
101 2010-12-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
102
103         * doc/extend.texi (Function Attributes, Volatiles): Fix typos.
104         * doc/install.texi (Prerequisites, Specific): Likewise.
105         * doc/invoke.texi (C Dialect Options, Debugging Options)
106         (Optimize Options, MicroBlaze Options)
107         (RS/6000 and PowerPC Options, RX Options, Code Gen Options): Likewise.
108         * doc/objc.texi (Method signatures)
109         (Fast enumeration protocol): Likewise.
110         * doc/tm.texi.in (Run-time Target, Register Arguments)
111         (Scheduling, Macros for Initialization, Misc): Likewise.
112         * doc/tm.texi: Renerate.
113
114 2010-12-23  Nicola Pero  <nicola.pero@meta-innovation.com>
115
116         * doc/objc.texi (Modern GNU Objective-C runtime API): Mention that
117         reference documentation for functions in the API is in the header
118         files.
119         (Messaging with the GNU Objective-C runtime, Dynamically
120         registering methods, Forwarding hook): New sections.
121
122 2010-12-22  Sebastian Pop  <sebastian.pop@amd.com>
123
124         PR tree-optimization/47019
125         * sese.h (scev_analyzable_p): Parameters of a SCoP are SCEV analyzable.
126
127 2010-12-22  Nathan Froyd  <froydnj@codesourcery.com>
128
129         * c-aux-info.c (gen_formal_list_for_type): Use prototype_p.
130         * c-decl.c (diagnose_arglist_conflict): Likewise.
131         (diagnose_mismatched_decls, merge_decls): Likewise.
132         (c_builtin_function, c_builtin_function_ext_scope): Likewise.
133         (start_decl, start_function): Likewise.
134         * c-tree.h (C_DECL_ISNT_PROTOTYPED): Likewise.
135         * config/ia64/ia64.h (INIT_CUMULATIVE_ARGS): Likewise.
136         * config/mep/mep.c (mep_validate_interrupt): Likewise.
137         * config/pa/pa.h (INIT_CUMULATIVE_ARGS): Likewise.
138         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
139         * config/sh/sh.c (sh_init_cumulative_args): Likewise.
140         * config/sparc/sparc.c (init_cumulative_args): Likewise.
141         * dwarf2out.c (add_prototyped_attribute): Likewise.
142         (gen_subprogram_die): Likewise.
143         * ipa-type-escape.c (check_function_parameter_and_return_types):
144         Likewise.
145         (check_call): Likewise.
146         * tree-ssa.c (useless_type_conversion_p): Likewise.
147
148 2010-12-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
149
150         * config/spu/spu.md ("mov<mode>"): Use nonimmediate_operand
151         predicate for destination operand.
152         * config/spu/spu.c (spu_expand_mov): If move destination is an
153         invalid subreg, perform move in the subreg's inner mode instead.
154
155 2010-12-22  Martin Jambor  <mjambor@suse.cz>
156
157         PR tree-optimization/45934
158         PR tree-optimization/46302
159         PR tree-optimization/46987
160         * gimple-fold.c (get_base_binfo_for_type): Removed.
161         (gimple_get_relevant_ref_binfo): Likewise.
162         (gimple_fold_obj_type_ref_call): Dumb down to 4.5 functionality,
163         removed parameter inplace, updated the caller.
164         * gimple.h (gimple_get_relevant_ref_binfo): Remove declaration.
165         * ipa-cp.c (ipcp_propagate_types): Do not derive types from constants.
166         (ipcp_discover_new_direct_edges): Do not do devirtualization based on
167         constants.
168         * ipa-prop.c (compute_known_type_jump_func): Use
169         get_ref_base_and_extent and get_binfo_at_offset instead of
170         gimple_get_relevant_ref_binfo.
171         (compute_known_type_jump_func): Likewise.
172         (update_jump_functions_after_inlining): Do not derive types from
173         constants.
174         (try_make_edge_direct_virtual_call): Likewise.
175         * tree.c (get_binfo_at_offset): Get type from non-artificial fields.
176
177 2010-12-22  Joseph Myers  <joseph@codesourcery.com>
178
179         * config/svr4.h: Remove.
180         * system.h (USING_SVR4_H, SVR4_ASM_SPEC): Poison.
181         * config.gcc, config/bfin/bfin.h, config/cris/cris.h,
182         config/fr30/fr30.h, config/frv/frv.h, config/i386/openbsdelf.h,
183         config/i386/vx-common.h, config/ia64/elf.h, config/ia64/ia64.h,
184         config/ia64/sysv4.h, config/iq2000/iq2000.h, config/m68k/linux.h,
185         config/m68k/m68kelf.h, config/mips/mips.h, config/mips/vxworks.h,
186         config/moxie/moxie.h, config/netbsd-aout.h, config/openbsd.h,
187         config/rs6000/sysv4.h, config/sh/elf.h, config/sh/sh.h,
188         config/sol2.h, config/sparc/sysv4.h, config/stormy16/stormy16.h,
189         config/v850/v850.h, config/vxworks.h: Remove or update comments
190         referring to svr4.h.
191
192 2010-12-22  Andrey Belevantsev  <abel@ispras.ru>
193
194         PR rtl-optimization/45352
195         PR rtl-optimization/46521
196         PR rtl-optimization/46522
197         * sel-sched.c (reset_sched_cycles_in_current_ebb): Recheck the
198         DFA state on the last iteration of the advancing loop.
199         (sel_sched_region_1): Propagate the rescheduling bit to the next
200         block also for empty blocks.
201
202 2010-12-22  Alexandre Oliva  <aoliva@redhat.com>
203
204         PR debug/46724
205         * function.c (assign_parms_augmented_arg_list): Name and mark
206         DECL of result address as NAMELESS rather than IGNORED.
207         (assign_parms): Set DECL_VALUE_EXPR for indirect result.
208         * tree.h (tree_decl_common::decl_flag_2): Document RESULT_DECL.
209         (DECL_HAS_VALUE_EXPR_P): Accept RESULT_DECL.
210         * dwarf2out.c (loc_list_from_tree) <RESULT_DECL>: Use
211         DECL_VALUE_EXPR.
212         * dbxout.c (dbxout_expand_expr) <RESULT_DECL>: Likewise.
213         * var-tracking.c (vt_add_function_parameter): New, split out of...
214         (vt_add_function_parameters): ... this.  Handle incoming
215         pointer to hold result.
216
217 2010-12-22  Jie Zhang  <jie@codesourcery.com>
218
219         * config/arm/arm.c (output_move_double): Update the comment
220         above the function to reflect the current implementation.
221
222 2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>
223
224         De-hookize profile infrastructure.
225         * value-prof.c (value_prof_hooks): Remove.
226         (struct value_prof_hooks): Remove.
227         (gimple_value_prof_hooks): Remove.
228         (gimple_register_value_prof_hooks): Remove.
229         (find_values_to_profile): Remove.
230         (value_profile_transformations): Remove.
231         (gimple_value_profile_transformations): No longer static.
232         (gimple_find_values_to_profile): Likewise.
233         * value-prof.h (gimple_register_value_prof_hooks): Remove prototype.
234         (find_values_to_profile): Likewise.
235         (value_profile_transformations): Likewise.
236         (tree_register_profile_hooks): Likewise.
237         (struct profile_hooks): Remove.
238         (tree_profile_hooks): Remove.
239         (gimple_find_values_to_profile): New protoype.
240         (gimple_value_profile_transformations): Likewise.
241         (gimple_init_edge_profiler): Likewise.
242         (gimple_gen_edge_profiler): Likewise.
243         (gimple_gen_interval_profiler): Likewise.
244         (gimple_gen_pow2_profiler): Likewise.
245         (gimple_gen_one_value_profiler): Likewise.
246         (gimple_gen_ic_profiler): Likewise.
247         (gimple_gen_ic_func_profiler): Likewise.
248         (gimple_gen_const_delta_profiler): Likewise.
249         (gimple_gen_average_profiler): Likewise.
250         (gimple_gen_ior_profiler): Likewise.
251         * profile.c (profile_hooks): Remove.
252         (instrument_edges): Call profiling functions directly instead
253         of through removed profile_hooks.
254         (instrument_values): Likewise.
255         (branch_prob): Call gimple_find_values_to_profile instead of
256         removed find_values_to_profile.
257         Call gimple_init_edge_profiler instead of removed hook.
258         (tree_register_profile_hooks): Remove.
259         * tree-profile.c (tree_init_ic_make_global_vars): Rename to
260         init_ic_make_global_vars.
261         (tree_init_edge_profiler): Rename to gimple_init_edge_profiler
262         and no longer static.
263         (tree_gen_edge_profiler, tree_gen_interval_profiler,
264         tree_gen_pow2_profiler, tree_gen_one_value_profiler,
265         tree_gen_ic_profiler, tree_gen_ic_func_profiler,
266         tree_gen_const_delta_profiler, tree_gen_average_profiler,
267         tree_gen_ior_profiler): Similarly renamed and no longer static.
268         (tree_profiling): Do not initialize tree profiling hooks.
269         (tree_profile_hooks): Remove.
270
271 2010-12-21  Jakub Jelinek  <jakub@redhat.com>
272
273         PR target/46880
274         * config/i386/sse.md (sse2_loadlpd, sse2_movsd): Fix shufpd source
275         operand.
276
277 2010-12-21  Ira Rosen  <irar@il.ibm.com>
278
279         PR tree-optimization/47001
280         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
281         the loads in reduction are different and there are no gaps between
282         them.
283
284 2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>
285
286         PR middle-end/45310
287         * tree-ssa-phiprop.c (propagate_with_phi): Remove statement
288         completely from the function, including EH traces.
289
290 2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>
291
292         PR rtl-optimization/46755
293         * ira.c (ira): If some dead edges were removed, find and delete
294         any blocks that might have become unreachable.
295
296 2010-12-21  Jakub Jelinek  <jakub@redhat.com>
297
298         PR rtl-optimization/47008
299         * postreload.c (reload_combine_note_store): Also handle
300         PRE_MODIFY and POST_MODIFY.
301
302 2010-12-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
303
304         * config/arm/arm.c (require_pic_register): Set INSN_LOCATOR for all
305         instructions injected into the prologue to prologue_locator.
306
307 2010-12-21  Jan Hubicka   <jh@suse.cz>
308
309         PR middle-end/47000
310         * tree-inline.c (estimate_operator_cost): Handle VIEW_CONVERT_EXPR.
311
312 2010-12-21  Jie Zhang  <jie@codesourcery.com>
313
314         * config/arm/arm-ldmstm.ml: Fix a typo in comment.
315
316 2010-12-21  Jakub Jelinek  <jakub@redhat.com>
317
318         PR middle-end/45852
319         * expr.c (store_expr): Ignore alt_rtl if equal to target,
320         but has side-effects.
321
322 2010-12-21  Anatoly Sokolov  <aesok@post.ru>
323
324         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Remove.
325         * config/sh/sh-protos.h (secondary_reload_info, sh_secondary_reload):
326         Remove forward declaration.
327         * config/sh/sh.c (sh_preferred_reload_class): New function.
328         (sh_secondary_reload): Make static.
329         (TARGET_PREFERRED_RELOAD_CLASS): Define.
330
331 2010-12-20  Joseph Myers  <joseph@codesourcery.com>
332
333         * config/alpha/linux.h (OPTION_GLIBC): Define differently if
334         SINGLE_LIBC.
335         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC):
336         Define differently if SINGLE_LIBC.
337         * config/rs6000/linux.h (OPTION_GLIBC): Define differently if
338         SINGLE_LIBC.
339         * config/rs6000/linux64.h (OPTION_GLIBC): Define differently if
340         SINGLE_LIBC.
341         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
342         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu): Define
343         SINGLE_LIBC instead of OPTION_GLIBC.
344         (*-*-uclinux*): Define DEFAULT_LIBC and SINGLE_LIBC.
345         (bfin*-uclinux*, moxie-*-uclinux*, m68k-*-uclinux*): Don't define
346         DEFAULT_LIBC or use linux.opt.
347
348 2010-12-20  Richard Henderson  <rth@redhat.com>
349
350         * config/mn10300/mn10300.c (mn10300_legitimize_pic_address): Generate
351         UNSPEC patterns by hand, with the proper mode; use gen_const_mem.
352         * config/mn10300/mn10300.md (call, call_value): Generate UNSPEC_PLT
353         by hand, with the proper mode.
354         (symGOT2reg, symGOT2reg_i, symGOTOFF2reg): Remove.
355         (symGOTOFF2reg_i, sym2PIC, sym2PLT): Remove.
356
357 2010-12-20  Sanjin Liu  <scliu@faraday-tech.com>
358             Mingfeng Wu  <mingfeng@faraday-tech.com>
359
360         * config/arm/arm-cores.def: Add Faraday CPU support -
361         fa526/fa626/fa606te/fa626te/fmp626/fa726te.
362         * config/arm/arm-tune.md: Regenerate.
363         * config/arm/arm.c (arm_fa726te_tune): New tune_params for fa726te
364         (fa726te_sched_adjust_cost): New cost function for fa726te.
365         (arm_issue_rate): Add fa726te.
366         * config/arm/arm.md (generic_sched): Add Faraday cores to generic_sched
367         and include machine description files.
368         * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Add fa526 and fa626.
369         * config/arm/t-arm (MD_INCLUDES): Include machine description files for
370         Faraday cores.
371         * config/arm/t-arm-elf: Add multilib option for Faraday cores.
372         * config/arm/t-linux-eabi: Add multilib option for Faraday cores except
373         fa526 and fa626.
374         * doc/invoke.texi: Document -mcpu for Faraday cores.
375         * config/arm/fa526.md: New file.
376         * config/arm/fa606te.md: New file.
377         * config/arm/fa626te.md: New file.
378         * config/arm/fmp626.md: New file.
379         * config/arm/fa726te.md: New file.
380
381 2010-12-20  Yvan Roux  <yvan.roux@st.com>
382
383         * config/arm/lib1funcs.asm (ARM_DIV_BODY case __OPTIMIZE_SIZE__): Fix
384         condition on IT instruction for early termination.
385
386 2010-12-20  Joseph Myers  <joseph@codesourcery.com>
387
388         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't define.
389         (DBX_REGISTER_NUMBER): Define.
390         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Define.
391         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Define.
392         * config/rs6000/sysv4.h (SIZE_TYPE): Define.
393         (ASM_SPEC): Define without using SVR4_ASM_SPEC.
394         (DBX_REGISTER_NUMBER): Undefine.
395         * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
396         powerpc-*-eabisim*, powerpc-*-elf*, powerpc-*-eabialtivec*,
397         powerpc-xilinx-eabi*, powerpc-*-eabi*, powerpc-*-rtems*,
398         powerpc-*-linux* | powerpc64-*-linux*, powerpc64-*-gnu*,
399         powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
400         powerpc-wrs-vxworks|powerpc-wrs-vxworksae, powerpcle-*-elf*,
401         powerpcle-*-eabisim*, powerpcle-*-eabi*): Don't use svr4.h.
402
403 2010-12-20  Iain Sandoe  <iains@gcc.gnu.org>
404             Jan Hubicka  <jh@suse.cz>
405
406         PR middle-end/46916
407         * opts.c (finish_options): Enable -freorder-functions
408         when -freorder-blocks-and-partition is active.
409
410 2010-12-20  Iain Sandoe  <iains@gcc.gnu.org>
411
412         PR c++/46904
413         PR middle-end/46916
414         PR target/46950
415         * config/darwin.c (generating_for_darwin_version): New var.
416         (darwin_text_section): Remove.
417         (darwin_rodata_section): Do not check function section here.
418         (darwin_emit_unwind_label): Do not emit for Darwin >= 9.
419         Emit distinct labels for successive calls for the same decl.
420         (darwin_override_options): Set generating_for_darwin_version.
421         Add FIXME and disable -freorder-blocks-and-partition.
422         Suppress automatic asynchronous unwind tables for m32.
423         Switch off -freorder-blocks-and-partition when unwind tables
424         will be generated.  Update to use generating_for_darwin_version.
425         (darwin_function_section): Check for cases that need to be placed
426         in coalesced sections.
427         * config/darwin-sections.def: Define hot, cold, startup and
428         exit sections for both coalesced and regular code.
429         * config/darwin.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Delete.
430         * config/darwin10.h (TARGET_ASM_EMIT_UNWIND_LABEL): Delete.
431
432 2010-12-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
433
434         * doc/cppopts.texi: Use @var when appropriate.
435         * doc/extend.texi (Structure-Packing Pragmas): Likewise.
436         * doc/gimple.texi (Logical Operators)
437         (Adding a new GIMPLE statement code): Likewise.
438         * doc/invoke.texi (Target Options, Precompiled Headers): Likewise.
439         * doc/plugins.texi (Plugins): Likewise.
440
441         * doc/install.texi (Configuration, Building, Testing, Specific):
442         Remove leading whitespace from examples.
443
444 2010-12-19  Andi Kleen  <ak@linux.intel.com>
445
446         PR lto/46905
447         * collect2.c (main): Handle -fno-lto.
448         * opts.c (common_handle_option): Handle -fno-lto.
449
450 2010-12-19  Eric Botcazou  <ebotcazou@adacore.com>
451
452         PR target/46729
453         * config/sparc/sparc.h (GLOBAL_OFFSET_TABLE_REGNUM): New macro.
454         (PIC_OFFSET_TABLE_REGNUM): Rewrite in terms of above macro.
455         * config/sparc/sparc.c (pic_helper_needed): Delete.
456         (global_offset_table): Likewise.
457         (pic_helper_symbol): Rename to...
458         (got_helper_rtx): ...this.
459         (global_offset_table_rtx): New global variable.
460         (sparc_got_symbol): Likewise.
461         (sparc_got): New static function.
462         (check_pic): Use local variable and call sparc_got.
463         (sparc_tls_symbol): Initialize to NULL_RTX.
464         (sparc_tls_got): In non-PIC mode, reload the GOT register for Sun TLS
465         and 32-bit ABI and copy the GOT symbol to a new register otherwise.
466         (get_pc_thunk_name): Rename local variable.
467         (gen_load_pcrel_sym): New wrapper around load_pcrel_sym{si,di}.
468         (load_pic_register): Rename to...
469         (load_got_register): ...this.  Adjust and call gen_load_pcrel_sym.
470         (sparc_expand_prologue): Do not test flag_pic.
471         (sparc_output_mi_thunk): Use pic_offset_table_rtx directly.
472         (sparc_file_end): Test got_helper_rtx instead of pic_helper_needed.
473         Rename local variable and do not call get_pc_thunk_name again.
474         * config/sparc/sparc.md (load_pcrel_sym): Add operand #3.
475
476 2010-12-19  Dave Korn  <dave.korn.cygwin@gmail.com>
477
478         PR middle-end/46674
479         PR middle-end/46221
480         * varasm.c (symbol_alias_set_t): New typedef for derived pointer_set
481         wrapper class.
482         (symbol_alias_set_create): New wrapper function.
483         (symbol_alias_set_destroy): Likewise.
484         (symbol_alias_set_contains): Likewise.
485         (symbol_alias_set_insert): Likewise.
486         (compute_visible_aliases): Use the above and return symbol_alias_set_t,
487         not a pointer_set.
488         (remove_unreachable_alias_pairs): Adjust likewise to match.
489         (finish_aliases_1): Likewise.
490
491 2010-12-19  Chung-Lin Tang  <cltang@codesourcery.com>
492
493         * config/arm/arm.c (arm_legitimate_index_p): Add VFP load/store
494         index range case. Change to SF/DFmode tests to avoid capturing HFmode.
495         (thumb2_legitimate_index_p): Same.
496
497 2010-12-18  Jakub Jelinek  <jakub@redhat.com>
498
499         PR tree-optimization/46969
500         * tree-parloops.c (struct reduction_info): Add reduc_version.
501         (reduction_info_hash): Return reduc_version field.
502         (reduction_phi): Set reduc_version to gimple_uid (phi).
503         (build_new_reduction): Set reduc_version to SSA_NAME_VERSION of
504         phi result.
505         (set_reduc_phi_uids): New function.
506         (gather_scalar_reductions): Call it at the end through htab_traverse.
507
508 2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
509
510         * c-parser.c (c_parser_objc_try_catch_finally_statement): Call
511         objc_maybe_warn_exceptions.
512         (c_parser_objc_synchronized_statement): Call
513         objc_maybe_warn_exceptions.
514
515 2010-12-18  Jakub Jelinek  <jakub@redhat.com>
516
517         PR tree-optimization/46985
518         * tree-scalar-evolution.c (instantiate_scev_r): If chrec is NULL,
519         return it immediately.
520
521 2010-12-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
522
523         PR target/46915
524         * config/pa/pa.c (branch_to_delay_slot_p): Use next_active_insn instead
525         of next_real_insn.  Search forward checking for both ASM_INPUT and
526         ASM_OPERANDS asms until exit condition is found.
527         (branch_needs_nop_p): Likewise.
528         (use_skip_p): New function.
529         (output_cbranch): Use use_skip_p.
530         (output_bb, output_bvb): Likewise.
531
532 2010-12-18  Kai Tietz  <kai.tietz@onevision.com>
533
534         PR target/36834
535         * config/i386/i386.c (ix86_keep_aggregate_return_pointer):
536         New local function.
537         (ix86_return_pops_args): Use ix86_keep_aggregate_return_pointer
538         function instead of KEEP_AGGREGATE_RETURN_POINTER.
539         (ix86_handle_callee_pop_aggregate_return): New handler.
540         (ix86_attribute_table): Add new attribute
541         callee_pop_aggregate_return.
542         * doc/extend.texi (callee_pop_aggregate_return): Add
543         attribute documentation.
544
545 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
546
547         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS):
548         Only set sjlj exceptions for NeXT/m32.
549
550 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
551
552         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION):
553         Only expose when not building for target.
554
555 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
556
557         * config/netbsd.opt, config/netbsd-elf.opt: New files.
558         * config.gcc (alpha*-*-netbsd*, arm*-*-netbsdelf*, arm*-*-netbsd*,
559         i[34567]86-*-netbsdelf*, i[34567]86-*-netbsd*, x86_64-*-netbsd*,
560         m68k*-*-netbsdelf*, mips*-*-netbsd*, powerpc-*-netbsd*,
561         sh*-*-netbsd*, sparc-*-netbsdelf*, sparc64-*-netbsd*,
562         vax-*-netbsdelf*, vax-*-netbsd*): Use these .opt files.
563
564 2010-12-17  Richard Henderson  <rth@redhat.com>
565
566         * regcprop.c (find_oldest_value_reg): Continue search instead of
567         failing if an element in the copy chain is of the wrong regclass.
568
569 2010-12-17  Paolo Bonzini  <bonzini@gnu.org>
570
571         PR c/20385
572         * function.c (used_types_insert): Handle ERROR_MARK.
573         * c-decl.c (grokdeclarator): Handle ERROR_MARK.
574         (declspecs_add_type): Leave error_mark_node in specs->type.
575         (finish_declspecs): Change it to integer_type_node here.
576         * c-parser.c (c_parser_peek_2nd_token): Move earlier.
577         (enum c_lookahead_kind): New.
578         (c_parser_next_token_starts_typename): New name of
579         c_parser_next_tokens_start_typename.  Accept lookahead enum
580         and handle it here instead of...
581         (c_parser_next_tokens_start_declaration): ... here.  Call it.
582         (c_parser_declspecs): Accept another argument.  Do not exit
583         on C_ID_ID if it is guessed to be an unknown typename.
584         (c_parser_parms_declarator): Use 2nd token to distinguish a K&R
585         declaration from an ANSI declaration starting with an unknown
586         typename.
587         (c_parser_struct_declaration, c_parser_objc_type_name,
588         c_parser_typeof_specifier, c_parser_declarator,
589         c_parser_direct_declarator_inner): Adjust calls.
590         (c_parser_parameter_declaration): Likewise.
591         (c_parser_type_name): Pass back an error_mark_node to the caller.
592         (c_parser_postfix_expression): Do error recovery when
593         c_parser_type_name returns NULL.
594
595 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
596
597         * config/i386/netware.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE): Define.
598         * config/i386/nto.h (LIB_SPEC, ASM_SPEC): Define.
599         (DBX_REGISTER_NUMBER): Undefine.
600         * config/i386/sol2.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
601         * config/i386/vxworksae.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE):
602         Define.
603         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
604         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
605         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
606         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
607         i[3456x]86-*-netware*, i[34567]86-*-nto-qnx*,
608         i[34567]86-*-solaris2*,
609         i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae): Don't use svr4.h.
610
611 2010-12-17  H.J. Lu  <hongjiu.lu@intel.com>
612
613         * config/i386/i386.c (move_or_delete_vzeroupper_2): Replace
614         "BB [%i]" with "[bb %i]" in dump.
615         (move_or_delete_vzeroupper_1): Likewise.
616         (rescan_move_or_delete_vzeroupper): Likewise.  Always dump
617         upper 128bit state at exit.
618
619 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
620
621         * config/interix.opt: New.
622         * config/interix.h (LINK_SPEC): Don't handle -soname*.
623         * config.gcc (i[34567]86-*-interix3*): Use interix.opt.
624
625 2010-12-17  Andrew Stubbs  <ams@codesourcery.com>
626
627         * config/arm/arm.md (maddhisi4, *maddhidi4): Use the canonical
628         operand order for plus.
629         Drop redundant % from constraints.
630
631 2010-12-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
632
633         * config/spu/t-spu-elf (LIB2FUNCS_EXCLUDE): Add _floattisf and
634         _floatunstisf.
635         * config/spu/spu.md ("floattisf2"): New expander.
636         ("floatunstisf2"): New insn pattern and splitter.
637         ("cgt_ti_m1"): New insn pattern.
638
639 2010-12-17  Bernd Schmidt  <bernds@codesourcery.com>
640
641         * config/arm/arm.c (arm_select_cc_mode): Before calling
642         arm_select_dominance_cc_mode for AND or IOR operations, ensure
643         that op is NE or EQ.
644
645 2010-12-17  Alexander Monakov  <amonakov@ispras.ru>
646
647         PR middle-end/46761
648         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Prefer
649         to use unadjusted UB.
650
651 2010-12-17  Dodji Seketeli  <dodji@redhat.com>
652
653         * dwarf2out.c (gen_type_die_with_usage): Do not try to emit debug
654         info for a redundant typedef that has DECL_ORIGINAL_TYPE set. Use
655         that underlying type instead.
656
657 2010-12-16  Jan Hubicka  <jh@suse.cz>
658
659         PR middle-end/44563
660         * ipa-inline.c: Update doplevel comment.
661         (cgraph_estimate_size_after_inlining): Remove times attribute.
662         (cgraph_mark_inline_edge): Update.
663         (cgraph_mark_inline): Remove.
664         (cgraph_estimate_growth): Update.
665         (cgraph_check_inline_limits): Remove one only argument.
666         (cgraph_edge_badness): Update.
667         (cgraph_decide_recursive_inlining): Update.
668         (cgraph_decide_inlining_of_small_function): Fix handling of
669         tree_can_inline_p  and call_stmt_cannot_inline_p.
670         (cgraph_flatten): Likewise.
671         (cgraph_decide_inlining): Update.
672         (cgraph_decide_inlining_incrementally): Fix handling of
673         call_stmt_cannot_inline_p.
674
675 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
676
677         * config/darwin.opt (dylinker, headerpad_max_install_names,
678         keep_private_externs, nofixprebinding, nomultidefs, noprebind,
679         noseglinkedit, object, prebind, prebind_all_twolevel_modules,
680         preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
681         twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
682         Driver options.
683         * config/darwin.h (LINK_SPEC): Remove '*' after
684         headerpad_max_install_names.
685
686 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
687
688         PR tree-optimization/46924
689         * graphite-sese-to-poly.c (detect_commutative_reduction): Do not
690         detect reductions outside the current SESE region.
691         * sese.h (stmt_in_sese_p): New.
692         (defined_in_sese_p): Call stmt_in_sese_p.
693
694 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
695
696         PR tree-optimization/46966
697         * graphite-sese-to-poly.c (build_scop_drs): Call free_gimple_bb for
698         for bbs that are removed from SCOP_BBS vector.
699
700 2010-12-16  Eric Botcazou  <ebotcazou@adacore.com>
701
702         * tree-ssa-sccvn.c (vn_reference_lookup_3): Always punt if the call to
703         get_ref_base_and_extent returns -1 as the max size.
704
705 2010-12-16  Konrad Eisele  <konrad@gaisler.com>
706             Eric Botcazou  <ebotcazou@adacore.com>
707
708         Support for LEON processor
709         * config.gcc (sparc-*-elf*): Deal with sparc-leon specifically.
710         (sparc-*-linux*): Likewise.
711         (sparc-*-rtems*): Remove Solaris left-overs.
712         (sparc*-*-*): Remove obsolete sparc86x setting.
713         (sparc-leon*): Default to --with-cpu=v8 and --with-tune=leon.
714         * doc/invoke.texi (SPARC Options): Document -mcpu/-mtune=leon.
715         * config/sparc/sparc.h (TARGET_CPU_leon): Define.
716         (TARGET_CPU_sparc86x): Delete.
717         (TARGET_CPU_cypress): Define as alias to TARGET_CPU_v7.
718         (TARGET_CPU_f930): Define as alias to TARGET_CPU_sparclite.
719         (TARGET_CPU_f934): Likewise.
720         (TARGET_CPU_tsc701): Define as alias to TARGET_CPU_sparclet.
721         (CPP_CPU_SPEC): Add entry for -mcpu=leon.
722         (enum processor_type): Add PROCESSOR_LEON.  Reorganize.
723         * config/sparc/sparc.c (leon_costs): New cost array.
724         (sparc_option_override): Add entry for TARGET_CPU_leon and -mcpu=leon.
725         Initialize cost array to leon_costs if -mtune=leon.
726         * config/sparc/sparc.md (cpu attribute): Add leon.  Reorganize.
727         Include leon.md scheduling description.
728         * config/sparc/leon.md: New file.
729         * config/sparc/t-elf: Do not assemble Solaris startup files.
730         * config/sparc/t-leon: New file.
731         * config/sparc/t-leon3: Likewise.
732
733 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
734
735         PR tree-optimization/43655
736         * tree-ssa-ter.c (is_replaceable_p): Don't use
737         gimple_references_memory_p for -O0, instead check for load
738         by looking at rhs.
739
740 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
741
742         PR tree-optimization/46404
743         * graphite-clast-to-gimple.c (gloog): Call scev_reset.
744
745 2010-12-16  Anatoly Sokolov  <aesok@post.ru>
746
747         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
748         * config/sh/sh.c (sh_asm_output_addr_const_extra): New function.
749         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
750
751 2010-12-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
752
753         * config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
754         * config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define.
755         (LIBGCC2_UNITS_PER_WORD): Define if not already defined.
756
757 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
758
759         PR debug/46893
760         * cfgexpand.c (expand_debug_expr): If GET_MODE (op0) is VOIDmode,
761         use TYPE_MODE (TREE_TYPE (tem)) instead of mode1.
762
763 2010-12-16  Chung-Lin Tang  <cltang@codesourcery.com>
764
765         PR target/46883
766         * config/arm/arm.md
767         (zero_extendhisi2 for register input splitter): Change
768         "register_operand" to "s_register_operand".
769         (zero_extendqisi2 for register input splitter): Same.
770
771 2010-12-16  Jan Hubicka  <jh@suse.cz>
772
773         PR middle-end/46939
774         * predic.c (predict_paths_leading_to_edge): New function.
775         (apply_return_prediction): Use it.
776         (predict_paths_for_bb): Do not special case abnormals.
777
778 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
779
780         * config.gcc (powerpc-*-lynxos*): Don't add lynx.opt to
781         extra_options twice.
782
783 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
784
785         * doc/tm.texi.in (US_SOFTWARE_GOFAST): Don't document.
786         * doc/tm.texi: Regenerate.
787         * system.h (US_SOFTWARE_GOFAST): Poison.
788         * config.gcc (enable_gofast): Don't handle.
789         * config/gofast.h: Remove.
790         * config/mips/t-gofast: Remove.
791         * config/fp-bit.c (US_SOFTWARE_GOFAST): Don't handle.
792         * config/fp-bit.h (US_SOFTWARE_GOFAST): Don't handle.
793         * config/mips/elforion.h: Don't mention GOFAST in comment.
794         * config/mips/mips.c: Don't include gofast.h.
795         (mips_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
796         * config/mips/t-sr71k (dp-bit.c, fp-bit.c): Don't define
797         US_SOFTWARE_GOFAST.
798         * config/sparc/sparc.c: Don't include gofast.h.
799         (sparc_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
800         * config/spu/t-spu-elf (dp-bit.c, fp-bit.c): Don't undefine
801         US_SOFTWARE_GOFAST.
802
803 2010-12-14  Jan Hubicka  <jh@suse.cz>
804
805         * config/darwin.opt (dylinker, headerpad_max_install_names,
806         keep_private_externs, nofixprebinding, nomultidefs, noprebind,
807         noseglinkedit, object, prebind, prebind_all_twolevel_modules,
808         preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
809         twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
810         Driver options.
811         * config/darwin.h (LINK_SPEC): Remove '*' after
812         headerpad_max_install_names.
813
814 2010-12-14  Jan Hubicka  <jh@suse.cz>
815
816         * tree.c (get_file_function_name): Avoid using random seed on
817         GLOBAL_sub_I and GLOBAL_sub_D.
818
819 2010-12-15  Martin Jambor  <mjambor@suse.cz>
820
821         PR tree-optimization/46053
822         PR middle-end/46287
823         PR middle-end/46242
824         * cgraph.h (cgraph_indirect_call_info): New field thunk_delta.
825         * gimple.h (gimple_fold_obj_type_ref): Declaration removed.
826         (gimple_fold_call): Declare.
827         (gimple_adjust_this_by_delta): Likewise.
828         * cgraph.c (cgraph_make_edge_direct): New parameter delta.  Updated
829         all users.
830         (cgraph_clone_edge): Create a copy of indirect_info also for direct
831         edges.
832         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Adjust this
833         parameters.
834         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Renamed to
835         gimple_get_virt_mehtod_for_binfo, new parameter delta.  Do not search
836         through thunks, in fact bail out if we encounter one, check that
837         BINFO_VIRTUALS is not NULL.
838         (gimple_adjust_this_by_delta): New function.
839         (gimple_fold_obj_type_ref): Removed.
840         (gimple_fold_obj_type_ref_call): New function.
841         (fold_gimple_call): Renamed to gimple_fold_call, made external.
842         Updated users.  Call gimple_fold_obj_type_ref_call instead of
843         gimple_fold_obj_type_ref.
844         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Process
845         thunk deltas.
846         (ipcp_discover_new_direct_edges): Likewise.
847         * ipa-prop.c (ipa_make_edge_direct_to_target): New parameter delta.
848         Updated callers.
849         (ipa_write_indirect_edge_info): Stream thunk_delta.
850         (ipa_read_indirect_edge_info): Likewise.
851         * tree-ssa-ccp.c (ccp_fold_stmt): Use gimple_fold_call instead of
852         gimple_fold_obj_type_ref.
853
854 2010-12-15  Alexander Monakov  <amonakov@ispras.ru>
855
856         PR rtl-optimization/46649
857         * sel-sched-ir.c (purge_empty_blocks): Unconditionally skip the first
858         basic block in the region.
859
860 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
861
862         * config/stormy16/stormy16.h (LINK_SPEC, WCHAR_TYPE): Define.
863         * config.gcc (xstormy16-*-elf): Don't use svr4.h.
864
865 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
866
867         * config/rx/rx.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
868         * config.gcc (rx-*-elf*): Don't use svr4.h.
869
870 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
871
872         PR tree-optimization/46845
873         * sese.c (scalar_evolution_in_region): Handle scop parameters
874         before scev analysis.
875
876 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
877
878         PR tree-optimization/46928
879         * tree-data-ref.c (analyze_overlapping_iterations): Handle A[p] == A[p]
880         in data dependence analysis with p a parameter of the loop.
881
882 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
883
884         PR tree-optimization/45948
885         * tree-loop-distribution.c (ssa_name_has_uses_outside_loop_p): New.
886         (stmt_has_scalar_dependences_outside_loop): New.
887         (stmt_generated_in_another_partition): New.
888         (add_scalar_computations_to_partition): New.
889         (rdg_build_partitions): Call add_scalar_computations_to_partition.
890
891 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
892
893         * config/arc/arc.h (LIB_SPEC): Define.
894         * config.gcc (arc-*-elf*): Don't use svr4.h.
895
896 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
897
898         * config/sh/elf.h (LIB_SPEC): Define.
899         * config.gcc (sh-*-elf* | sh[12346l]*-*-elf* | sh-*-symbianelf* |
900         sh[12346l]*-*-symbianelf* | sh-*-linux* | sh[2346lbe]*-*-linux* |
901         sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* |
902         sh5l*-*-netbsd* | sh64-*-netbsd* | sh64l*-*-netbsd*, sh-*-rtems*,
903         sh-wrs-vxworks): Don't use svr4.h.
904
905 2010-12-14  Jan Hubicka  <jh@suse.cz>
906
907         PR lto/46940
908         PR lto/44463
909         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Construct nodes
910         for aliases when they are used.
911
912 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
913
914         * config.gcc (sparc-*-elf*, sparc-*-rtems*, sparc-*-linux*,
915         sparc-*-netbsdelf*, sparc*-*-solaris2*, sparc-wrs-vxworks,
916         sparc64-*-elf*, sparc64-*-rtems*, sparc64-*-linux*,
917         sparc64-*-netbsd*, sparc64-*-openbsd*): Don't use svr4.h.
918
919 2010-12-14  Thomas Klein  <th.r.klein@web.de>
920
921         * config/arm/arm.c (arm_expand_prologue): Report the static stack
922         size if -fstack-usage is used.
923         (thumb1_expand_prologue): Likewise.
924
925 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
926
927         PR debug/46885
928         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Use gsi_last_bb
929         instead of gsi_last_nondebug_bb if bump_in_latch.
930
931         PR tree-optimization/46909
932         * gimple-fold.c (and_var_with_comparison_1): Save partial
933         result even in the is_and case, if both partial results
934         are the same, return it.
935         (or_var_with_comparison_1): Use is_or predicate instead of
936         innercode == TRUTH_OR_EXPR test.  Save partial result
937         even in the is_or case, if both partial results are the
938         same, return it.  In the !is_or case when both partial
939         results are the same, return the partial result instead
940         of boolean_true_node.
941
942 2010-12-14  Jan Hubicka  <jh@suse.cz>
943
944         PR middle-end/46667
945         * varasm.c (assemble_start_function): Do not call
946         resolve_unique_section.
947         * cfgexpand.c (gimple_expand_cfg): Resolve it here.
948
949 2010-12-14  Alexander Monakov  <amonakov@ispras.ru>
950
951         PR rtl-optimization/46875
952         * sched-vis.c (print_pattern): Dump "sequence" for ADDR_VECs.
953         * sel-sched-ir.c (bb_has_removable_jump_to_p): Forbid table jumps.
954
955 2010-12-14  Kaushik Phatak <kaushik.phatak@kpitcummins.com>
956
957         * config/h8300/h8300.md (define_split) : Add condition for
958         "and with single_zero" splitter to handle 16-bit const operands.
959         * config/h8300/h8300.md (define_split) : Add condition for
960         "ior with single_one" splitter to handle 16-bit const operands.
961         * config/h8300/h8300.md (define_split) : Add condition for
962         "xor with single_one" splitter to handle 16-bit const operands.
963         * testsuite/gcc.dg/h8300-bit-insn-ice.c: New.
964
965 2010-12-13  Jan Hubicka  <jh@suse.cz>
966
967         PR middle-end/45388
968         * ipa.c (cgraph_build_static_cdtor_1): Break out from ...  Add FINAL
969         parameter.
970         (cgraph_build_static_cdtor): ... here.
971         (build_cdtor): Use cgraph_build_static_cdtor_1.
972
973 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
974
975         * config/m32c/m32c.h (ENDFILE_SPEC, LINK_SPEC, SIZE_TYPE,
976         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
977         * config.gcc (m32c-*-rtems*, m32c-*-elf*): Don't use svr4.h.
978
979 2010-12-14  Bernd Schmidt  <bernds@codesourcery.com>
980
981         PR rtl-optimization/44374
982         Reapply patch with fixes.
983         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
984         * df-core.c (df_set_bb_dirty): Set it.
985         * ifcvt.c (find_memory): Remove function.
986         (dead_or_predicable): Use can_move_insns_across.
987         * df.h (can_move_insns_across): Declare function.
988         * cfgcleanup.c (block_was_dirty): New static variable.
989         (flow_find_head_matching_sequence): Test for epilogue notes.
990         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
991         than df_get_bb_dirty.
992         (try_head_merge_bb): New static function.
993         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
994         is set.
995         * df-problems.c: Include "target.h"
996         (df_simulate_find_uses): New static function.
997         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
998         (find_memory, find_memory_store): New static functions.
999         (can_move_insns_across): New function.
1000         * Makefile.in (df-problems.o): Update dependencies.
1001
1002 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1003
1004         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
1005         (DBX_REGISTER_NUMBER): Undefine.
1006         * config/xtensa/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
1007         (DBX_REGISTER_NUMBER): Undefine.
1008         * config.gcc (xtensa*-*-elf*, xtensa*-*-linux*): Don't use svr4.h.
1009
1010 2010-12-13  Jack Howarth <howarth@bromo.med.uc.edu>
1011             Joseph Myers <joseph@codesourcery.com>
1012
1013         PR bootstrap/46650
1014         * system.h: Include cstring for cxx bootstrap.
1015
1016 2010-12-13  Jakub Jelinek  <jakub@redhat.com>
1017
1018         PR lto/46879
1019         * lto-streamer-out.c (output_gimple_stmt): Never replace first
1020         GIMPLE_DEBUG argument with MEM_REF.
1021
1022         PR debug/46867
1023         * var-tracking.c (emitted_notes, string_pointer_flags): Removed.
1024         (emit_note_insn_var_location): Remove ENABLE_RTL_CHECKING verification.
1025         (vt_emit_notes): Don't initialize and destroy emitted_notes.
1026
1027 2010-12-13  Nathan Froyd  <froydnj@codesourcery.com>
1028
1029         PR target/46040
1030         * config.gcc (arm*-*-linux-*eabi): Use bpabi-lib.h.
1031         (arm*-*-uclinux*eabi, arm*-*-eabi*): Likewise.
1032
1033 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1034
1035         * config/v850/v850.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1036         WCHAR_TYPE_SIZE): Define.
1037         * config.gcc (v850e1-*-*, v850e-*-*, v850-*-*): Don't use svr4.h.
1038
1039 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1040
1041         * config.gcc (s390-*-linux*, s390x-*-linux*, s390x-ibm-tpf*):
1042         Don't use svr4.h.
1043
1044 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1045
1046         * config/mn10300/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1047         WCHAR_TYPE_SIZE): Undefine.
1048         * config/mn10300/mn10300.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1049         WCHAR_TYPE_SIZE): Define.
1050         * config.gcc (mn10300-*-*): Don't use svr4.h.
1051
1052 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1053
1054         * config/m68k/linux.h (DBX_REGISTER_NUMBER): Undefine and redefine.
1055         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1056         * config.gcc (m68k-*-uclinux*, m68k-*-linux*): Don't use svr4.h.
1057
1058 2010-12-13  Alexandre Oliva  <aoliva@redhat.com>
1059
1060         PR debug/46756
1061         * jump.c (mark_all_labels): Skip debug insns.
1062
1063 2010-12-13  Alexandre Oliva  <aoliva@redhat.com>
1064
1065         PR debug/46782
1066         * cfgcleanup.c (try_forward_edges): Skip debug insns.
1067
1068 2010-12-12  Jan Hubicka  <jh@suse.cz>
1069             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1070
1071         * varasm.c (default_function_section): Check flag_reorder_functions
1072         and targetm.have_named_sections.
1073         * config/darwin.c (darwin_function_section): Check
1074         flag_reorder_functions.
1075
1076 2010-12-12  Finn Thain  <fthain@telegraphics.com.au>
1077
1078         PR target/46179
1079         * config/m68k/m68k.c (handle_move_double): Insert calls to
1080         m68k_final_prescan_insn to clean up @TLS operand syntax.
1081
1082 2010-12-10  Sebastian Pop  <sebastian.pop@amd.com>
1083
1084         PR tree-optimization/43023
1085         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p):
1086         Removed.
1087         (stores_zero_from_loop): Call stmt_stores_zero.
1088         * tree-data-ref.h (stmt_stores_zero): New.
1089         * tree-loop-distribution.c (generate_memset_zero): Do not return a
1090         boolean.  Call gcc_assert on stride_of_unit_type_p.
1091         (generate_builtin): Call stmt_stores_zero.
1092         (rdg_flag_all_uses): Removed.
1093         (rdg_flag_similar_memory_accesses): Removed.
1094         (build_rdg_partition_for_component): Removed parameter
1095         other_stores.  Removed call to rdg_flag_similar_memory_accesses.
1096         (can_generate_builtin): New.
1097         (similar_memory_accesses): New.
1098         (fuse_partitions_with_similar_memory_accesses): New.
1099         (rdg_build_partitions): Call
1100         fuse_partitions_with_similar_memory_accesses.
1101
1102 2010-12-10  Jakub Jelinek  <jakub@redhat.com>
1103
1104         PR rtl-optimization/46804
1105         * regmove.c (optimize_reg_copy_3): Look for REG_EQUAL note
1106         on the setter of src_reg rather than on insn.  If it is
1107         equal to the setter's original SET_SRC, replace it with its
1108         zero or sign extension instead of dropping it.
1109
1110 2010-12-10  Richard Guenther  <rguenther@suse.de>
1111
1112         PR lto/46808
1113         * lto-symtab.c (lto_symtab_merge_decls_2): Avoid type warnings
1114         after errors.
1115         (lto_symtab_merge_decls_1): Adjust.
1116
1117 2010-12-10  Dave Korn  <dave.korn.cygwin@gmail.com>
1118
1119         PR middle-end/46674
1120         PR lto/43157
1121         * target.def (mangle_assembler_name): New target asm_out hook.
1122         * targhooks.c (default_mangle_assembler_name): Add default hook
1123         implementation.
1124         * targhooks.h (default_mangle_assembler_name): Add prototype.
1125         * lto-symtab.c (lto_symtab_register_decl): Use new hook when
1126         processing DECL_ASSEMBLER_NAMEs for lto symtabs.
1127         (lto_symtab_get_resolution): Likewise.
1128         (lto_cgraph_replace_node): Likewise.
1129         (lto_symtab_prevailing_decl): Likewise.
1130         * lto-streamer-out.c (write_symbol): Likewise.
1131         * doc/tm.texi.in (TARGET_MANGLE_ASSEMBLER_NAME): Add @hook directive.
1132         * doc/tm.texi: Regenerate.
1133         * config/i386/cygming.h (TARGET_MANGLE_ASSEMBLER_NAME): Define to
1134         point at i386_pe_mangle_assembler_name.
1135         * config/i386/winnt.c (i386_pe_mangle_assembler_name): New function.
1136         * config/i386/i386-protos.h (i386_pe_mangle_assembler_name): Add
1137         prototype.
1138
1139 2010-12-10  Nathan Froyd  <froydnj@codesourcery.com>
1140
1141         * c-typeck.c (readonly_error): Delete.
1142
1143 2010-12-10  Jakub Jelinek  <jakub@redhat.com>
1144
1145         PR rtl-optimization/46865
1146         * rtl.c (rtx_equal_p_cb, rtx_equal_p): For last operand of
1147         ASM_OPERANDS and ASM_INPUT if integers are different, call locator_eq.
1148         * jump.c (rtx_renumbered_equal_p): Likewise.
1149
1150         PR tree-optimization/46864
1151         * tree-ssa-loop-im.c (loop_suitable_for_sm): Return false even
1152         when there are EDGE_EH exit edges.
1153
1154 2010-12-10  Tobias Burnus  <burnus@net-b.de>
1155
1156         PR fortran/46540
1157         * configure.ac: Handle --disable-libquadmath-support.
1158         * doc/install.texi: Document --disable-libquadmath and
1159         --disable-libquadmath-support
1160         * configure: Regenerate.
1161         * config.in: Regenerate.
1162
1163 2010-12-10  Jack Howarth  <howarth@bromo.med.uc.edu>
1164             Iain Sandoe  <iains@gcc.gnu.org>
1165
1166         PR 43751/target
1167         * config/darwin9.h (DSYMUTIL_SPEC): Add fortran source types.
1168
1169 2010-12-10  Iain Sandoe <iains@gcc.gnu.org>
1170
1171         * config/rs6000/rs6000.c
1172         (rs6000_darwin64_record_arg_advance_recurse): Name register increment
1173         explicitly.  (rs6000_darwin64_record_arg_recurse): Make sure we split
1174         long doubles when we run out of regs.   Also flag that this requires
1175         stack and therefore cannot be returned by value.
1176         (rs6000_darwin64_record_arg): Update comment.
1177         (rs6000_function_value): Likewise.
1178
1179 2010-12-10  Nicola Pero  <nicola.pero@meta-innovation.com>
1180
1181         * c-parser.c (c_parser_objc_class_definition): Recognize
1182         Objective-C 2.0 class extensions.
1183
1184 2010-12-10  Iain Sandoe <iains@gcc.gnu.org>
1185
1186         * config/darwin.c: Remove c-tree.h and c-lang.h
1187         * config/t-darwin: Remove dependencies on c-tree.h and c-lang.h.
1188
1189 2010-12-10  Joern Rennecke  <amylaar@spamcop.net>
1190
1191         PR target/46881
1192         * doc/tm.texi: Regenerate.
1193         * target.def: Fix "preferred" spelling.  Refer to rclass by its
1194         exact name.
1195         * config/arm/arm.c (arm_preferred_rename_class): Rename parameter class
1196         to rclass.
1197
1198 2010-12-09  Paul Koning  <ni1d@arrl.net>
1199
1200         * config/pdp11/pdp11-protos.h (output_move_double,
1201         output_move_quad): Delete.
1202         (output_move_multiple, pdp11_expand_operands): New functions.
1203         (pdp11_action, pdp11_partorder): New enums.
1204         * config/pdp11/pdp11.md (movdi, movsi, movdf, movsf): Use
1205         output_move_multiple.
1206         (adddi3, subdi3, negdi2): New patterns.
1207         (addsi3, subsi3, negsi2): Use pdp11_expand_operands.
1208         (abshi2): Delete.
1209         (neghi2, negqi2): Use PDPint iterator.
1210         * config/pdp11/pdp11.c (find_addr_reg, output_move_double,
1211         output_move_quad): Delete.
1212         (pdp11_expand_operands, output_move_multiple): New functions.
1213
1214 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1215
1216         * config/vax/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1217         * config.gcc (vax-*-linux*): Don't use svr4.h.
1218
1219 2010-12-09  Nathan Froyd  <froydnj@codesourcery.com>
1220
1221         * c-typeck.c (build_indirect_ref): Call invalid_indirection_error.
1222
1223 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1224
1225         * doc/extend.texi (Attribute Syntax): Correct description of
1226         attributes in pointer declarators.
1227
1228 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1229
1230         * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Undefine.
1231         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux*,
1232         mips*-*-linux*, mips-wrs-vxworks): Don't use svr4.h.
1233
1234 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1235
1236         * config/mep/mep.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1237         WCHAR_TYPE_SIZE): Define.
1238         * config.gcc (mep-*-*): Don't use svr4.h.
1239
1240 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1241
1242         * config/mcore/mcore.h (PTRDIFF_TYPE, WCHAR_TYPE,
1243         WCHAR_TYPE_SIZE): Define.
1244         * config/svr3.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1245         WCHAR_TYPE_SIZE): Don't define.
1246         * config.gcc (mcore-*-elf): Don't use svr4.h.
1247
1248 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1249
1250         * config.gcc (m32r-*-elf*, m32rle-*-elf*, m32r-*-rtems*,
1251         m32r-*-linux*, m32rle-*-linux*): Don't use svr4.h.
1252
1253 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1254
1255         * config/iq2000/iq2000.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
1256         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1257         * config.gcc (iq2000*-*-elf*): Don't use svr4.h.
1258
1259 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1260
1261         * config.gcc (ia64*-*-linux*, ia64*-*-hpux*): Don't use svr4.h.
1262
1263 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1264
1265         * config/pa/pa32-linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1266         * config.gcc (hppa*64*-*-linux*, hppa*-*-linux*): Don't use svr4.h.
1267
1268 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1269
1270         * config/moxie/moxie.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
1271         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1272         * config/moxie/rtems.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
1273         WCHAR_TYPE, WCHAR_TYPE_SIZE): Undefine.
1274         * config.gcc (moxie-*-elf, moxie-*-uclinux*): Don't use svr4.h.
1275
1276 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1277
1278         * config/frv/frv.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1279         WCHAR_TYPE_SIZE): Define.
1280         * config.gcc (frv-*-elf, frv-*-*linux*): Don't use svr4.h.
1281
1282 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1283
1284         * config/fr30/fr30.h (LIB_SPEC, LINK_SPEC, SIZE_TYPE,
1285         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1286         * config.gcc (fr30-*-elf): Don't use svr4.h.
1287
1288 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1289
1290         * config/cris/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
1291         * config.gcc (crisv32-*-linux* | cris-*-linux*): Don't use svr4.h.
1292
1293 2010-12-09  Richard Guenther  <rguenther@suse.de>
1294
1295         PR middle-end/46844
1296         * gimple-fold.c (canonicalize_constructor_val): Canonicalize addresses.
1297
1298 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1299
1300         * config/i386/netware.h (TARGET_POSIX_IO): Define.
1301         * config/i386/nto.h (TARGET_POSIX_IO): Define.
1302         * config/ia64/hpux.h (TARGET_POSIX_IO): Define.
1303         * config/moxie/moxie.h (TARGET_POSIX_IO): Don't undefine.
1304         * config/openbsd.h (TARGET_POSIX_IO): Define.
1305         * config/rtems.h (TARGET_POSIX_IO): Define.
1306         * config/sh/embed-elf.h (TARGET_POSIX_IO): Don't undefine.
1307         * config/sol2.h (TARGET_POSIX_IO): Define.
1308         * config/svr4.h (TARGET_POSIX_IO): Don't define.
1309         * config/vxworksae.h (TARGET_POSIX_IO): Define.
1310
1311 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1312
1313         * config/i386/nto.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
1314         * config/ia64/hpux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
1315         * config/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1316         undefine.
1317         * config/mips/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1318         undefine.
1319         * config/mips/netbsd.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1320         Don't undefine.
1321         * config/rs6000/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1322         Don't undefine.
1323         * config/rs6000/linux64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1324         Don't undefine.
1325         * config/sol2.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
1326         * config/sparc/netbsd-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1327         Don't undefine.
1328         * config/sparc/openbsd64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1329         Don't undefine.
1330         * config/sparc/sp64-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1331         Don't undefine.
1332         * config/svr4.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't define.
1333         * config/xtensa/elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1334         undefine.
1335
1336 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1337
1338         * config/ia64/hpux.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
1339         non-GNU assembler.
1340         * config/m68k/netbsd-elf.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1341         * config/m68k/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1342         * config/mips/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1343         * config/sol2.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
1344         non-GNU assembler.
1345         * config/sparc/sparc.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1346         * config/svr4.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1347
1348 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1349
1350         * ipa-prop.c (compute_complex_ancestor_jump_func): Work also if the
1351         zero is the first phi parameter.
1352
1353 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1354
1355         * ipa-prop.h (struct ipa_parm_adjustment): New field alias_ptr_type.
1356         * ipa-prop.c (ipa_modify_call_arguments): Use it.
1357         * tree-sra.c (splice_param_accesses): Test that all accesses have the
1358         same alias reference type.
1359         (turn_representatives_into_adjustments): Set alias_ptr_type of the
1360         adjustment.
1361
1362 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1363
1364         PR middle-end/46734
1365         * tree-sra.c (splice_param_accesses): Check that there are not
1366         multiple ADDRESSABLE types.
1367
1368 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1369
1370         * config/arc/arc.h (ASM_SPEC): Remove %{v}.
1371         * config/bfin/bfin.h (ASM_SPEC): Remove %{v}.
1372         * config/cris/cris.h (ASM_SPEC): Remove %{v:-v}.
1373         * config/fr30/fr30.h (ASM_SPEC): Remove %{v}.
1374         * config/frv/frv.h (ASM_SPEC): Remove %{v}.
1375         * config/i386/linux.h (ASM_SPEC): Remove %{v}.
1376         * config/i386/linux64.h (ASM_SPEC): Remove %{v}.
1377         * config/i386/mingw-w64.h (ASM_SPEC): Remove %{v}.
1378         * config/i386/sol2-10.h (ASM_SPEC): Remove %{v}.
1379         * config/i386/vxworks.h (ASM_SPEC): Remove %{v}.
1380         * config/i386/x86-64.h (ASM_SPEC): Remove %{v}.
1381         * config/lm32/lm32.h (ASM_SPEC): Remove %{v}.
1382         * config/m32r/m32r.h (ASM_SPEC): Remove %{v}.
1383         * config/m68k/linux.h (ASM_SPEC): Remove %{v:-V}.
1384         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{v}.
1385         * config/mips/mips.h (ASM_SPEC): Remove %{v}.
1386         * config/mips/vxworks.h (ASM_SPEC): Remove %{v}.
1387         * config/pa/pa-linux.h (ASM_SPEC): Remove %{v:-V}.
1388         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Remove %{v}.
1389         * config/rs6000/linux64.h (ASM_SPEC): Remove %{v:-V}.
1390         * config/rs6000/vxworks.h (ASM_SPEC): Remove %{v:-v}.
1391         * config/sparc/openbsd64.h (ASM_SPEC): Remove %{v:-V}.
1392         * config/svr4.h (SVR4_ASM_SPEC): Remove %{v:-V}.
1393         * config/xtensa/elf.h (ASM_SPEC): Remove %{v}.
1394         * config/xtensa/linux.h (ASM_SPEC): Remove %{v}.
1395
1396 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1397
1398         * config/i386/openbsdelf.h (LINK_SPEC): Use %{r:} not %{r*:}.
1399         * config/mips/openbsd.h (LINK_SPEC): Use %{r:} not %{r*:}.
1400         * config/netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): Use %{r:} not %{r*:}.
1401         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Use %{r:} not %{r*:}.
1402         * config/sparc/openbsd64.h (LINK_SPEC): Use %{r:} not %{r*:}.
1403         * config/vax/netbsd-elf.h (LINK_SPEC): Use %{r:} not %{r*:}.
1404
1405 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1406
1407         * config/alpha/freebsd.h (LINK_SPEC): Don't use %{!dynamic-linker:}.
1408         * config/alpha/linux-elf.h (LINK_SPEC): Likewise.
1409         * config/arm/freebsd.h (LINK_SPEC): Likewise.
1410         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Likewise.
1411         * config/bfin/linux.h (LINK_SPEC): Likewise.
1412         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Likewise.
1413         * config/frv/linux.h (LINK_SPEC): Likewise.
1414         * config/i386/freebsd.h (LINK_SPEC): Likewise.
1415         * config/i386/freebsd64.h (LINK_SPEC): Likewise.
1416         * config/i386/linux.h (LINK_SPEC): Likewise.
1417         * config/i386/linux64.h (LINK_SPEC): Likewise.
1418         * config/i386/openbsdelf.h (LINK_SPEC): Likewise.
1419         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
1420         * config/ia64/linux.h (LINK_SPEC): Likewise.
1421         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
1422         * config/m32r/linux.h (LINK_SPEC): Likewise.
1423         * config/m68k/linux.h (LINK_SPEC): Likewise.
1424         * config/microblaze/linux.h (LINK_SPEC): Likewise.
1425         * config/mips/linux.h (LINK_SPEC): Likewise.
1426         * config/mips/linux64.h (LINK_SPEC): Likewise.
1427         * config/mips/openbsd.h (LINK_SPEC): Likewise.
1428         * config/mn10300/linux.h (LINK_SPEC): Likewise.
1429         * config/netbsd-elf.h (LINK_SPEC): Likewise.
1430         * config/pa/pa-linux.h (LINK_SPEC): Likewise.
1431         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
1432         LINK_OS_LINUX_SPEC64): Likewise.
1433         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC,
1434         LINK_OS_LINUX_SPEC, LINK_OS_GNU_SPEC, LINK_OS_NETBSD_SPEC): Likewise.
1435         * config/s390/linux.h (LINK_SPEC): Likewise.
1436         * config/sh/linux.h (SUBTARGET_LINK_SPEC): Likewise.
1437         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
1438         * config/sparc/linux.h (LINK_SPEC): Likewise.
1439         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
1440         LINK_SPEC): Likewise.
1441         * config/sparc/openbsd64.h (LINK_SPEC): Likewise.
1442         * config/vax/linux.h (LINK_SPEC): Likewise.
1443         * config/xtensa/linux.h (LINK_SPEC): Likewise.
1444
1445 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1446
1447         * config/bfin/bfin.h (ASM_SPEC): Remove %{n} and %{T}.
1448         * config/frv/frv.h (ASM_SPEC): Likewise.
1449         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
1450         * config/i386/sol2.h (ASM_SPEC): Likewise.
1451         * config/m68k/linux.h (ASM_SPEC): Likewise.
1452         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
1453         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
1454         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
1455         * config/sol2.h (ASM_SPEC): Likewise.
1456         * config/sparc/linux.h (ASM_SPEC): Likewise.
1457         * config/sparc/linux64.h (ASM_SPEC): Likewise.
1458         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
1459         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
1460         * config/svr4.h (SVR4_ASM_SPEC): Likewise.
1461
1462 2010-12-09  Richard Guenther  <rguenther@suse.de>
1463
1464         * reginfo.c (struct subregs_of_mode_node): Remove.
1465         (subregs_of_mode): Likewise.
1466         (som_hash): Likewise.
1467         (som_eq): Likewise.
1468         (invalid_mode_changes): New bitmap.
1469         (record_subregs_of_mode): Get subregs_of_mode argument.
1470         Fill in invalid_mode_changes bitmap.
1471         (find_subregs_of_mode): Get subregs_of_mode argument and pass
1472         it through.
1473         (init_subregs_of_mode): Adjust.
1474         (finish_subregs_of_mode): Likewise.
1475         (invalid_mode_change_p): Query invalid_mode_changes bitmap.
1476
1477 2010-12-09  Richard Guenther  <rguenther@suse.de>
1478
1479         * ira.c (ira): Do not call finish_subregs_of_mode.
1480         * ira-costs.c (finish_costs): Call finish_subregs_of_mode.
1481
1482 2010-12-09  Richard Guenther  <rguenther@suse.de>
1483
1484         * rtl.h (invalid_mode_change_p): Adjust prototype.
1485         * reginfo.c (invalid_mode_change_p): Remove from argument.
1486         * ira-costs.c (print_allocno_costs): Adjust callers.
1487         (find_costs_and_classes): Likewise.
1488
1489 2010-12-09  Jakub Jelinek  <jakub@redhat.com>
1490
1491         * config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc to
1492         locg and stocg even in comment.
1493         (sync_old_<atomic><mode>): Give mode to UNSPEC_VOLATILE.
1494
1495         PR target/41082
1496         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Use stvx
1497         instead of stve*x.
1498         (altivec_expand_stv_builtin): For op0 use mode of operand 1 instead
1499         of operand 0.
1500         * config/rs6000/altivec.md (VI_scalar): New mode attr.
1501         (altivec_stve<VI_char>x, *altivec_stvesfx): Use scalar instead of
1502         vector mode for operand 0, put operand 1 into UNSPEC.
1503
1504 2010-12-09  Yao Qi  <yao@codesourcery.com>
1505
1506         * config/arm/arm.c (arm_preferred_rename_class): Implement targethook
1507         PREFERRED_RENAME_CLASS.
1508
1509 2010-12-08  Ian Lance Taylor  <iant@google.com>
1510
1511         * doc/sourcebuild.texi (Front End): Remove reference to
1512         snapshot-README and snapshot-index.html.
1513
1514 2010-12-08  Ian Lance Taylor  <iant@google.com>
1515
1516         * doc/sourcebuild.texi (Texinfo Manuals): Change update_web_docs
1517         to update_web_docs_svn.
1518         (Front End): Likewise.
1519
1520 2010-12-08  Iain Sandoe <iains@gcc.gnu.org>
1521
1522         * gcc/config.gcc (with_cpu): Default i[34567]86-*-darwin* and
1523         x86_64-*-darwin* to with_cpu:-core2.
1524         * gcc/config/i386/mmx.md (*mov<mode>_internal_rex64): Replace movq
1525         with movd for darwin assembler.
1526         * gcc/config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1527         (*vec_concatv2di_rex64_sse): Ditto.
1528
1529 2010-12-08  Richard Guenther  <rguenther@suse.de>
1530             Sebastian Pop  <sebastian.pop@amd.com>
1531
1532         PR tree-optimization/45230
1533         PR tree-optimization/45231
1534         PR tree-optimization/45370
1535         * sese.c (rename_uses): Returns a bool.  Call
1536         recompute_tree_invariant_for_addr_expr only on the RHS of a
1537         GIMPLE_ASSIGN.
1538         (graphite_copy_stmts_from_block): Call fold_stmt_inplace when
1539         rename_uses returns true.
1540         * tree-ssa-copy.c (replace_exp): Add a comment about calling
1541         fold_stmt_inplace after replace_exp.
1542
1543 2010-12-08  Mike Stump  <mikestump@comcast.net>
1544
1545         PR debug/46749
1546         * config/darwin.h (COLLECT_RUN_DSYMUTIL): Add.
1547         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
1548         * config/darwin9.h (COLLECT_RUN_DSYMUTIL): Add.
1549         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
1550         * collect2.c (post_ld_pass): Add.
1551         (process_args): Add.
1552         (maybe_run_lto_and_relink): Call post_ld_pass after ld.
1553         (main): Likewise.  Call process_args.
1554
1555 2010-12-08  Jakub Jelinek  <jakub@redhat.com>
1556
1557         PR middle-end/46844
1558         * regrename.c (check_new_reg_p): Add ATTRIBUTE_UNUSED to reg parameter.
1559
1560 2010-12-08  Richard Earnshaw  <rearnsha@arm.com>
1561
1562         PR target/46631
1563         * arm.c (thumb2_reorg): Also try to reduce <commutative_op> Rd, Rn, Rd
1564         into a 16-bit instruction.
1565
1566 2010-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1567
1568         PR middle-end/42694
1569         * builtins.c (expand_builtin_pow_root): Don't optimize pow(x,y)
1570         where y is 0.25, 1./6., or 0.75 if the target does not have a sqrt
1571         instruction, but do optimize if y is 0.5 or 1./3. since that
1572         changes an expensive call into a cheaper one.
1573
1574 2010-12-08  Richard Guenther  <rguenther@suse.de>
1575
1576         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use a shift
1577         instead of a division to divide by BITS_PER_UNIT.
1578
1579 2010-12-08  Richard Guenther  <rguenther@suse.de>
1580
1581         * gimplify.c (gimple_tree_eq): Assert hashes are equal only
1582         when checking is enabled.
1583
1584 2010-12-07  Andrey Belevantsev  <abel@ispras.ru>
1585
1586         PR target/43603
1587         * haifa-sched.c (sched_create_recovery_edges): Update
1588         dominator info.
1589         * sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
1590         after deleting an empty block.
1591         (tidy_control_flow): Also verify dominators.
1592         (sel_remove_bb): Update dominator info after removing a block.
1593         (sel_redirect_edge_and_branch_force): Assert that no unreachable
1594         blocks will be created. Update dominator info.
1595         (sel_redirect_edge_and_branch): Update dominator info when
1596         basic blocks do not become unreachable.
1597         (sel_remove_loop_preheader): Update dominator info.
1598
1599 2010-12-07  Richard Guenther  <rguenther@suse.de>
1600
1601         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
1602         Reset alignment information.
1603         (bump_vector_ptr): Likewise.
1604
1605 2010-12-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1606
1607         PR middle-end/46671
1608         PR target/46685
1609         * config/pa/pa.c (pa_function_section): New function.
1610         (TARGET_ASM_FUNCTION_SECTION): Define.
1611
1612 2010-12-07  Ian Lance Taylor  <iant@google.com>
1613             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1614
1615         PR bootstrap/46810
1616         * configure.ac: Disable AC_MSG_ERROR while looking for the C++
1617         preprocessor.
1618         * configure: Rebuild.
1619
1620 2010-12-07  Paul Koning  <ni1d@arrl.net>
1621
1622         * config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
1623         values with sign rather than as unsigned.
1624
1625 2010-12-07  Paul Koning  <ni1d@arrl.net>
1626
1627         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_SECTION): Define.
1628         (pdp11_function_section): New function.
1629
1630 2010-12-07  Joseph Myers  <joseph@codesourcery.com>
1631
1632         * config/mcore/mcore.c Don't include assert.h.
1633         (layout_mcore_frame, handle_structs_in_regs): Use gcc_assert.
1634         * config/spu/spu.c: Don't include assert.h.
1635         (spu_sms_res_mii): Use gcc_assert.
1636
1637 2010-12-07  Sebastian Pop  <sebastian.pop@amd.com>
1638
1639         PR tree-optimization/42327
1640         * tree-data-ref.c (omega_setup_subscript): Call build_int_cst
1641         instead of using integer_minus_one_node.
1642
1643 2010-12-07  Nathan Froyd  <froydnj@codesourcery.com>
1644
1645         PR c++/45330
1646         * params.def (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP): New parameter.
1647         * doc/invoke.texi (cxx-max-namespaces-for-diagnostic-help): Document.
1648
1649 2010-12-07  Richard Guenther  <rguenther@suse.de>
1650
1651         PR tree-optimization/46832
1652         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Check
1653         that the call has a lhs.
1654
1655 2010-12-07  Yao Qi  <yao@codesourcery.com>
1656
1657         * Makefile.in: Add $(TARGET_H) to the regrename.o rule.
1658         * regrename.c (struct du_head): Add new element length.
1659         (sort_du_head, get_element, merge, merge_sort_comparison):
1660         New functions of merge sort implementation to du_head list.
1661         (regrename_optimize): Sort du_head linked list by length.
1662         Iterate registers in a preferred-register-first order.
1663         Move some code to ...
1664         (check_new_reg_p): here.  New function.
1665         (create_new_chain):  Initialize length.
1666         (scan_rtx_reg): Increase length for non-debug insns.
1667         * target.def: New hook preferred_rename_class.
1668         * targhook.c (default_preferred_rename_class): New.
1669         * targhook.h: Declare it.
1670         * doc/tm.texi.in: New hook TARGET_PREFERRED_RENAME_CLASS.
1671         * doc/tm.texi: Regenerate.
1672
1673 2010-12-07  Jakub Jelinek  <jakub@redhat.com>
1674
1675         PR debug/46799
1676         * tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
1677         instead of BUILTINS_LOCATION.
1678         (create_loop_fn): Add LOC argument, pass it to build_decl instead of
1679         BUILTINS_LOCATION.
1680         (create_parallel_loop): Add LOC argument, use it for OMP clauses
1681         and GIMPLE_*OMP* statements.
1682         (gen_parallel_loop): Determine locus for the parallel loop, pass it
1683         to create_loop_fn and create_parallel_loop.
1684         * cfgexpand.c (gimple_expand_cfg): For builtin functions, call
1685         set_curr_insn_source_location (UNKNOWN_LOCATION).
1686
1687 2010-12-07  Joern Rennecke  <amylaar@spamcop.net>
1688             Richard Guenther  <rguenther@suse.de>
1689
1690         PR target/46737
1691         * config/bfin/bfin.c (BB_AUX_INDEX): Cast to intptr_t.
1692         (bfin_reorder_loops): Change type of index to intptr_t.
1693
1694 2010-12-07  Richard Guenther  <rguenther@suse.de>
1695
1696         PR tree-optimization/46726
1697         * tree-inline.c (estimate_num_insns): Special case pow (x, 2.0).
1698
1699 2010-12-07  Richard Guenther  <rguenther@suse.de>
1700
1701         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Unlink
1702         virtual operands.
1703
1704 2010-12-07  Nicola Pero  <nicola.pero@meta-innovation.com>
1705
1706         * c-parser.c (c_parser_typeof_specifier): Removed special
1707         treatment of objc_volatilized attribute for Objective-C.
1708
1709 2010-12-06  Vladimir Makarov  <vmakarov@redhat.com>
1710
1711         * ira.c (update_equiv_regs): Prohibit move insns if
1712         pressure-sensitive scheduling was done.
1713
1714 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1715
1716         * c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
1717         of c_process_expr_stmt() for the iterating and collection
1718         expressions of an Objective-C fast enumeration loop.
1719
1720 2010-12-06  Jakub Jelinek  <jakub@redhat.com>
1721
1722         PR debug/45997
1723         * dwarf2out.c (modified_type_die): If both is_const_type and
1724         is_volatile_type is set, start with DW_TAG_const_type or
1725         DW_TAG_volatile_type depending on where we get qualified type
1726         in the recursive call.
1727
1728         PR target/43897
1729         * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
1730         as a store into that register.
1731
1732         PR tree-optimization/46528
1733         PR debug/46338
1734         * profile.c (branch_prob): Make sure last is never set to a debug
1735         stmt.
1736
1737         PR debug/46771
1738         * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
1739         on DEBUG_INSNs.
1740
1741         PR rtl-optimization/46777
1742         * cfglayout.c (duplicate_insn_chain): Avoid duplicating
1743         also barrier after tablejump.
1744
1745 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
1746             Richard Henderson  <rth@redhat.com>
1747
1748         PR target/46740
1749         * config/vax/vax.c (vax_output_int_move): Fold #if into if.
1750
1751 2010-12-06  Eric Botcazou  <ebotcazou@adacore.com>
1752
1753         * config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
1754         * config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
1755
1756 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
1757
1758         PR target/46735
1759         * config/frv/predicates.md (gpr_or_int12_operand): Use IN_RANGE.
1760         (gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
1761         (int12_operand, int_2word_operand, uint16_operand): Likewise.
1762         (fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
1763         (uint5_operand, uint4_operand): Likewise.
1764         * config/frv/frv.h (IN_RANGE_P): Delete.
1765         (GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
1766         (ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
1767         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
1768         (CONST_OK_FOR_P): Likewise.
1769         * config/frv/frv.md (*movqicc_internal2_int): Likewise.
1770         (*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
1771         (*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
1772         (*movsicc_internal2_float, casesi): Likewise.
1773         * config/frv/frv.c (frv_frame_offset_rtx): Likewise.
1774         (frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
1775         (frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
1776         (frv_split_cond_move, frv_rtx_costs): Likewise.
1777
1778         PR target/46739
1779         * config/mmix/mmix.c (mmix_intval): Split shift count.
1780
1781 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1782
1783         * config/i386/i386.c (m_COREI7): New.
1784         (initial_ix86_tune_features): Turn on
1785         X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
1786         X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.
1787
1788 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1789
1790         * config.gcc: Allow corei7-avx for --with-arch/--with-cpu.
1791
1792         * config/i386/driver-i386.c (host_detect_local_cpu): Support
1793         Sandy Bridge.
1794
1795         * config/i386/i386.c (override_options): Handle "corei7-avx".
1796
1797         * doc/invoke.texi: Document corei7-avx.
1798
1799 2010-12-06  Richard Guenther  <rguenther@suse.de>
1800
1801         PR tree-optimization/46806
1802         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
1803         coalesce different types.
1804
1805 2010-12-06  Richard Guenther  <rguenther@suse.de>
1806
1807         PR tree-optimization/46785
1808         * tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
1809         call statements as operand definition.
1810
1811 2010-12-06  Mingjie Xing  <mingjie.xing@gmail.com>
1812
1813         * doc/tm.texi.in: Fix typo.
1814         * doc/tm.texi: Regenerate.
1815
1816 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1817
1818         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
1819         last change.
1820
1821 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1822
1823         * c-family/c-common.h: Removed the declarations of all the objc_
1824         callbacks, and moved them into c-objc.h.  Removed
1825         objc_ivar_visibility_kind and moved it into c-objc.h.
1826         * c-family/c-objc.h: New file.
1827         * c-family/c-common.c: Include c-objc.h.
1828         * c-family/c-format.c: Same change.
1829         * c-family/stub-objc.c: Same change.
1830         * c-decl.c: Include c-family/c-objc.h.
1831         * c-parser.c: Same change.
1832         * c-typeck.c: Same change.
1833         * c-config-lang.in (gtfiles): Added c-family/c-objc.h.
1834         * Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
1835         (c-parser.o): same change.
1836         (c-typeck.o): Same change.
1837         (c-family/c-format.o): Same change.
1838         (c-family/stub-objc.o): Same change.
1839         (c-family/c-common.o): Same change.
1840         (PLUGIN_HEADERS): Added c-family/c-objc.h.
1841
1842 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1843
1844         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]:  Ignore
1845         --with-dwarf2 option.
1846
1847 2010-12-03  Jan Hubicka  <jh@suse.cz>
1848
1849         * lto-streamer-in.c (input_cfg): Fix pasto.
1850
1851 2010-12-03  Jan Hubicka  <jh@suse.cz>
1852
1853         * ipa.c (cgraph_externally_visible_p): Do not localize builtins
1854         and functions with user asm defined names.
1855         (varpool_externally_visible_p): Do not localize vars with user
1856         asm defined names.
1857
1858 2010-12-03  Jan Hubicka  <jh@suse.cz>
1859
1860         * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
1861         to prevent mangling with lto frontend.
1862
1863 2010-12-03  Jan Hubicka  <jh@suse.cz>
1864
1865         * Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
1866         * lto-cgraph.c (merge_profile_summaries): Fix thinko.
1867
1868 2010-12-03  Jan Hubicka  <jh@suse.cz>
1869
1870         PR tree-optimization/46760
1871         * cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
1872         * cgraph.h (struct cgraph_node): Add count_materialization_scale.
1873         * lto-cgraph.c (lto_output_edge): Fix assert.
1874         (lto_output_node): Output count_materialization_scale.
1875         (output_profile_summary): Output only runs and sum_max.
1876         (input_node): Input count_materialization_scale.
1877         (input_profile_summary): Read data into file specific gcov summary.
1878         (merge_profile_summaries): New function.
1879         (input_cgraph): Update call of input_profile_summary;
1880         call merge_profile_summaries.
1881         * lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
1882         rescale counts at read in.
1883         (intput_bb): Likewise.
1884         (input_function): Update call of input_bb.
1885         (lto_read_body): Update call of input_cfg.
1886         * lto-streamer.h: Inlclude gcov-io.h
1887         (lto_file_decl_data): Add gcov_ctr_summary.
1888
1889 2010-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
1890
1891         * doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
1892         (Cond Exec Macros): ... to this.
1893         * doc/tm.texi: Regenerate.
1894
1895 2010-12-03  Jason Merrill  <jason@redhat.com>
1896
1897         PR debug/46123
1898         * dwarf2out.c (gen_tagged_type_die): Don't put local types in
1899         a declaration DIE.
1900
1901 2010-12-03  Nathan Froyd  <froydnj@codesourcery.com>
1902
1903         * config/arm/arm.c (arm_legitimate_index_p): Split
1904         VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases.  Permit
1905         slightly larger constants in the latter case.
1906         (thumb2_legitimate_index_p): Likewise.
1907
1908 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
1909
1910         * common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
1911         * gcc.c (cc1_options): Add %{Qy:}.
1912
1913 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
1914
1915         * gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
1916         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
1917         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
1918
1919 2010-12-03  Alexander Monakov  <amonakov@ispras.ru>
1920
1921         PR rtl-optimization/45354
1922         * sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
1923         (bb_has_removable_jump_to_p): This.  Update all callers. Make static.
1924         Allow BBs ending with a conditional jump.  Forbid EDGE_CROSSING jumps.
1925         * sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.
1926
1927 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1928
1929         * basic-block.h (struct edge_prediction): Remove forward declaration.
1930         * tree-flow.h (struct edge_prediction): Move from here...
1931         * predict.c (struct edge_prediction): ...to here.
1932         * cselib.h (struct elt_list): Move from here...
1933         * cselib.c (struct elt_list): ...to here.
1934
1935 2010-12-02  Ian Lance Taylor  <iant@google.com>
1936
1937         * gcc.c (default_compilers): Add entry for ".go".
1938         * common.opt: Add -static-libgo as a driver option.
1939         * doc/install.texi (Configuration): Mention libgo as an option for
1940         --enable-shared.  Mention go as an option for --enable-languages.
1941         * doc/invoke.texi (Overall Options): Mention .go as a file name
1942         suffix.  Mention go as a -x option.
1943         * doc/frontends.texi (G++ and GCC): Mention Go as a supported language.
1944         * doc/sourcebuild.texi (Top Level): Mention libgo.
1945         * doc/standards.texi (Standards): Add section on Go language.
1946         Move references for other languages into their own section.
1947         * doc/contrib.texi (Contributors): Mention that I contributed the
1948         Go frontend.
1949
1950 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1951
1952         * tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
1953         (const_call_expr_arg_iterator_d): Likewise.
1954         (expanded_location): Likewise.
1955         * c-tree.h (struct c_arg_tag_d): Likewise.
1956         * dwarf2out.c (struct cfa_loc): Likewise.
1957         (struct skeleton_chain_struct): Likewise.
1958         * except.c (struct ttypes_filter): Likewise.
1959         * cselib.h (struct cselib_val_struct): Likewise.
1960         (elt_loc_list): Likewise.
1961         (elt_list): Likewise.
1962         * varasm.c (struct addr_const): Likewise.
1963         * tree-flow.h (struct edge_prediction): Likewise.
1964         (struct int_tree_map): Likewise.
1965         (struct _edge_var_map): Likewise.
1966
1967 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1968
1969         PR target/46768
1970         * config/i386/i386.c (initial_ix86_tune_features): Turn on
1971         X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.
1972
1973 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1974
1975         * config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
1976
1977 2010-12-02  Ian Lance Taylor  <iant@google.com>
1978
1979         * configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX.  Check for C++
1980         header files unordered_map, tr1/unordered_map, and ext/hash_map.
1981         * configure, config.in: Rebuild.
1982
1983 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
1984
1985         PR target/46685
1986         * config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
1987         (sparc_expand_move): Call it to decide whether to emit the special
1988         mov{si,di}_pic_label_ref patterns.
1989         (sparc_legitimize_pic_address): Call it to decide whether to emit
1990         the regular PIC sequence for labels.  Fix long line.
1991         (sparc_file_end): Set is_thunk for the PIC helper.
1992
1993 2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>
1994
1995         * tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
1996         for a non-shared type.
1997
1998 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
1999
2000         PR middle-end/45297
2001         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
2002         with MEM_REFs as POINTER_PLUS_EXPR.
2003
2004 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2005
2006         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
2007         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
2008         mentioning /lib/elf.
2009
2010 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2011
2012         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
2013         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
2014         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
2015         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
2016         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
2017         * config/sol2.h (LINK_SPEC): Remove %{b}.
2018         * config/svr4.h (LINK_SPEC): Remove %{b}.
2019
2020 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2021
2022         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
2023         * config/i386/linux.h (LINK_SPEC): Cut long comment.
2024         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
2025         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
2026         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
2027         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
2028         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
2029         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
2030         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
2031         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
2032
2033 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2034
2035         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
2036         -ftraditional.
2037
2038 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2039
2040         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
2041         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
2042         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
2043         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
2044         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
2045         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
2046         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
2047         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
2048         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
2049         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
2050         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
2051         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
2052         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
2053         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
2054         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
2055         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
2056         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
2057         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
2058
2059 2010-12-02  Paul Koning  <ni1d@arrl.net>
2060
2061         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
2062         opcodes if CC_NO_OVERFLOW is set.
2063         (notice_update_cc_on_set): Correct setting of CC0 as a side
2064         effect; set CC_NO_OVERFLOW for cases where C flag is not meaningful.
2065
2066 2010-12-02  Ian Lance Taylor  <iant@google.com>
2067
2068         * doc/install.texi (Configuration): Update default for
2069         --with-boot-ldflags.
2070
2071 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
2072
2073         PR c/45062
2074         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
2075         !funcdef_flag.
2076
2077 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
2078
2079         PR tree-optimization/45199
2080         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
2081         (stores_zero_from_loop): Call
2082         mem_write_stride_of_same_size_as_unit_type_p.
2083         * tree-data-ref.h (stride_of_unit_type_p): New.
2084         * tree-loop-distribution.c (generate_memset_zero): Simplified.
2085         Call stride_of_unit_type_p.
2086         (build_rdg_partition_for_component): Do not call
2087         rdg_flag_similar_memory_accesses when
2088         flag_tree_loop_distribute_patterns is set.
2089
2090 2010-12-02  Richard Guenther  <rguenther@suse.de>
2091
2092         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
2093         sign-changing conversions for induction detection.
2094
2095 2010-12-02  Richard Guenther  <rguenther@suse.de>
2096
2097         PR tree-optimization/46723
2098         * tree-vect-loop.c (get_initial_def_for_induction): Strip
2099         conversions from the induction evolution and apply it to
2100         the result instead.
2101         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
2102         assigns for induction defs.
2103
2104 2010-12-02  Richard Guenther  <rguenther@suse.de>
2105
2106         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
2107         the case we need to split the edge and not the block.
2108
2109 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
2110
2111         DFA model for Core 2 and Core i7 scheduling.
2112
2113         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
2114         * config/i386/i386.c (ix86_option_override_internal): Update entries
2115         for Core 2 and Core i7.
2116         (ix86_issue_rate): Set issue rate to 3 [be realistic].
2117         * config/i386/i386.md: Include "core2.md".
2118         (define_attr cpu): Add "corei7".
2119
2120 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
2121
2122         Define tuning for Core 2 and Core i7.
2123
2124         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
2125         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
2126         (m_CORE2): Replace with m_CORE2_{32,64}.
2127         (m_CORE2I7{,_32,_64}): New macros.
2128         (m_GENERIC32, m_GENERIC64): Update.
2129         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
2130         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
2131         set m_CORE2I7_64 iff m_GENERIC64.
2132         (processor_target_table): Use generic costs for Core 2 and Core i7.
2133         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
2134         (ix86_issue_rate): Remove entry for Core 2.
2135         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
2136         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
2137         (TARGET_CORE2): Update.
2138         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
2139         (PROCESSOR_CORE2): Remove.
2140
2141 2010-12-02  Richard Guenther  <rguenther@suse.de>
2142
2143         * lto-streamer.h (LTO_major_version): Bump to 2.
2144
2145 2010-12-02  Richard Guenther  <rguenther@suse.de>
2146
2147         PR lto/44871
2148         * gimple.c (canonical_type_hash_cache): New hashtable.
2149         (gimple_type_hash): Make a wrapper around ...
2150         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
2151         (gimple_canonical_type_hash): Likewise.
2152         (gtc_visit): Take a gtc_mode argument.
2153         (gimple_types_compatible_p_1): Likewise. Do not compare struct
2154         tag names or field names when computing canonical types.
2155         (gimple_types_compatible_p): Adjust.
2156         (visit): Take a gtc_mode argument.
2157         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
2158         names or field names when computing hashes of canonical types.
2159         (gimple_register_canonical_type): Use gimple_canonical_type_hash
2160         for the hash.
2161         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
2162         (free_gimple_type_tables): Free canonical_type_hash_cache.
2163
2164 2010-12-02  Richard Guenther  <rguenther@suse.de>
2165             Ira Rosen  <irar@il.ibm.com>
2166
2167         PR tree-optimization/46663
2168         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
2169         FUNCTION_DECL exists and that it's a builtin.
2170
2171 2010-12-02  Jie Zhang  <jie@codesourcery.com>
2172
2173         PR middle-end/46674
2174         * varasm.c (compute_visible_aliases): Handle user set assembler name.
2175
2176 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
2177
2178         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
2179         thinko regarding setting -mno-<xxx> debug switches.
2180         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
2181
2182 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2183
2184         * intl.c: Don't include tm.h.
2185         * Makefile.in (intl.o): Don't depend on $(TM_H).
2186
2187 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2188
2189         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
2190         unused warning.
2191         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2192
2193 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2194
2195         * graphite-sese-to-poly.c (analyze_drs): Removed.
2196         (build_scop_drs): Do not call analyze_drs.
2197         (analyze_drs_in_stmts): New.
2198         (insert_stmts): New.
2199         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
2200         (insert_out_of_ssa_copy_on_edge): Same.
2201         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
2202         (rewrite_phi_out_of_ssa): Same.
2203         (rewrite_cross_bb_scalar_dependence): Same.
2204         (split_reduction_stmt): Move data references in the new basic blocks.
2205         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
2206
2207 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2208
2209         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
2210
2211 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2212
2213         PR middle-end/45297
2214         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
2215         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
2216         * graphite-poly.h (new_poly_bb): Update declaration.
2217         (gbb_from_bb): Moved here...
2218         (pbb_from_bb): New.
2219         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
2220         Removed.
2221         (graphite_stmt_p): Removed.
2222         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
2223         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
2224         new_poly_bb.
2225         (build_scop_bbs_1): Do not pass in sbitmap reductions.
2226         (build_scop_bbs): Same.
2227         (gbb_from_bb): ... from here.
2228         (add_conditions_to_constraints): Moved up.
2229         (analyze_drs): New.
2230         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
2231         not contain data references.
2232         (new_pbb_from_pbb): New.
2233         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
2234         block is split.
2235         (rewrite_close_phi_out_of_ssa): Update call to
2236         insert_out_of_ssa_copy_on_edge.
2237         (rewrite_reductions_out_of_ssa): Now static.
2238         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2239         (split_pbb): New.
2240         (split_reduction_stmt): Call split_pbb.
2241         (translate_scalar_reduction_to_array): Pass in the scop, do not
2242         pass in the sbitmap reductions.
2243         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
2244         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
2245         (rewrite_commutative_reductions_out_of_ssa): Same.
2246         (build_poly_scop): Call build_scop_bbs,
2247         rewrite_commutative_reductions_out_of_ssa,
2248         rewrite_reductions_out_of_ssa, and
2249         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
2250         before scop_to_lst.
2251         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
2252         Removed declaration.
2253         (rewrite_reductions_out_of_ssa): Same.
2254         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2255         (build_scop_bbs): Same.
2256         * graphite.c (graphite_transform_loops): Do not initialize reductions.
2257         Do not call build_scop_bbs,
2258         rewrite_commutative_reductions_out_of_ssa,
2259         rewrite_reductions_out_of_ssa, and
2260         rewrite_cross_bb_scalar_deps_out_of_ssa.
2261         * sese.h (struct gimple_bb): Add field pbb.
2262         (GBB_PBB): New.
2263
2264 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2265
2266         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
2267         New.
2268         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
2269         handle_scalar_deps_crossing_scop_limits.
2270         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
2271         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
2272
2273 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2274
2275         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
2276         when replacing a constant in an ADDR_EXPR.
2277
2278 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2279
2280         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
2281         for the stride.
2282         (lst_do_strip_mine): Same.
2283         (scop_do_strip_mine): Same.
2284         * graphite-poly.c (apply_poly_transforms): Update call to
2285         scop_do_strip_mine.
2286         * graphite-poly.h (scop_do_strip_mine): Update declaration.
2287
2288 2010-12-01  Jan Hubicka  <jh@suse.cz>
2289
2290         * tree.c (build_common_builtin_nodes): Do not initialize
2291         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
2292         * builtins.c (expand_builtin_profile_func): Remove.
2293         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
2294         BUILT_IN_PROFILE_FUNC_EXIT.
2295         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
2296         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
2297         * gimplify.c (gimplify_function_tree): Reorganize code calling
2298         profiling functions.
2299
2300 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2301
2302         * opts.c: Expand comment on tm.h include.
2303
2304 2010-12-01  Yao Qi  <yao@codesourcery.com>
2305
2306         * config/arm/predicates.md ("vfp_register_operand"): Return true for
2307         VFP_D0_D7_REGS classes.
2308
2309 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2310
2311         * common.opt (flag_stack_check): New Variable entry.
2312         (fcompare-debug-second): Use Var.
2313         * flags.h (flag_compare_debug, flag_stack_check): Remove.
2314         * opts.c (flag_compare_debug): Remove.
2315         (common_handle_option): Don't handle OPT_fcompare_debug_second.
2316         Set opts->x_flag_stack_check for OPT_fstack_check_.
2317         * toplev.c (flag_stack_check): Remove.
2318
2319 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2320
2321         * common.opt (main_input_filename, main_input_basename,
2322         main_input_baselength): New Variable entries.  From toplev.c.
2323         * final.c (output_quoted_string): Move from toplev.c.
2324         * output.h (output_quoted_string): Move from toplev.h.
2325         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
2326         access main_input_filename, main_input_baselength and
2327         main_input_basename.
2328         * targhooks.c: Include intl.h and opts.h.
2329         (option_affects_pch_p, default_get_pch_validity): Move from toplev.c.
2330         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
2331         Move from toplev.h.
2332         * toplev.c (main_input_filename, main_input_basename,
2333         main_input_baselength): Move to common.opt.
2334         (output_quoted_string): Move to final.c.
2335         (warn_deprecated_use): Move to tree.c.
2336         (option_affects_pch_p, default_get_pch_validity,
2337         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
2338         * toplev.h (skip_leading_substring): Move to tree-dump.c.
2339         (warn_deprecated_use): Move to tree.h.
2340         (output_quoted_string): Move to output.h.
2341         (main_input_filename, main_input_basename, main_input_baselength):
2342         Move to common.opt.
2343         (default_get_pch_validity, default_pch_valid_p): Move to targhooks.c.
2344         * tree-dump.c (skip_leading_substring): Move from toplev.h.
2345         * tree.c (warn_deprecated_use): Move from toplev.c.
2346         * tree.h (warn_deprecated_use): Move from toplev.h.
2347         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
2348         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
2349         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
2350         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
2351         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
2352         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
2353         config/mcore/mcore.c, config/mep/mep.c,
2354         config/microblaze/microblaze.c, config/mips/mips.c,
2355         config/mmix/mmix.c, config/mn10300/mn10300.c,
2356         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
2357         config/picochip/picochip.c, config/s390/s390.c,
2358         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
2359         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
2360         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
2361         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
2362         varasm.c, xcoffout.c: Don't include toplev.h.
2363         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
2364         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
2365         varasm.o, xcoffout.o): Update dependencies.
2366         * config/arm/t-arm (arm.o): Update dependencies.
2367         * config/spu/t-spu-elf (spu.o): Update dependencies.
2368
2369 2010-12-01  Richard Guenther  <rguenther@suse.de>
2370
2371         PR tree-optimization/46730
2372         * value-prof.c (gimple_ic): Always generate a separate merge BB.
2373
2374 2010-11-30  Ian Lance Taylor  <iant@google.com>
2375
2376         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
2377         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
2378         * config/i386/linux64.h (ASM_SPEC): Likewise.
2379         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
2380         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
2381         * config/i386/vxworks.h (ASM_SPEC): Likewise.
2382         * config/i386/x86-64.h (ASM_SPEC): Likewise.
2383         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
2384         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
2385
2386 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
2387
2388         * c-decl.c (finish_function): Call objc_finish_function in
2389         Objective-C.
2390         * c-typeck.c (convert_for_assignment): Do not call
2391         objc_type_quals_match().
2392
2393 2010-11-30  Richard Guenther  <rguenther@suse.de>
2394
2395         PR tree-optimization/46722
2396         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
2397         operands as arguments.
2398         (execute_optimize_widening_mul): Also handle power of two as
2399         multiplication.
2400
2401 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
2402
2403         PR middle-end/46709
2404         * cgraphunit.c (process_function_and_variable_attributes): Fix
2405         cut'n'pasteo.
2406
2407 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
2408
2409         * hwint.c:  New.  Extracted from toplev.c.
2410         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2411         Move from toplev.h.
2412         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2413         Move to hwint.c.
2414         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2415         Move to hwint.h.
2416         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
2417         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
2418         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
2419         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
2420         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
2421         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
2422         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
2423         tree-vrp.c: Don't include toplev.h.
2424         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
2425         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
2426         toplev.h in generated output.
2427         * Makefile.in (OBJS-common): Add hwint.o.
2428         Dependencies for above files changed to remove toplev.h.
2429         (hwint.o): New.
2430         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
2431         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on toplev.h.
2432         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
2433         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
2434
2435 2010-11-30  Richard Guenther  <rguenther@suse.de>
2436
2437         PR tree-optimization/46717
2438         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
2439         call.  Manually create EH edges for the direct call and update
2440         target PHI nodes.
2441
2442 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
2443
2444         * diagnostic-core.h: Include bversion.h.
2445         * toplev.h: Don't include input.h or bversion.h.
2446         (parse_optimize_options): Don't declare here.
2447         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
2448         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
2449         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
2450         config/host-darwin.c, config/i386/host-cygwin.c,
2451         config/i386/host-mingw32.c, config/i386/msformat-c.c,
2452         config/i386/netware.c, config/i386/nwld.c,
2453         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
2454         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
2455         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
2456         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
2457         config/score/score3.c, config/score/score7.c,
2458         config/sh/symbian-base.c, config/sh/symbian-c.c,
2459         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
2460         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
2461         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
2462         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
2463         graphite-blocking.c, graphite-clast-to-gimple.c,
2464         graphite-dependences.c, graphite-flattening.c,
2465         graphite-interchange.c, graphite-poly.c,
2466         graphite-scop-detection.c, graphite.c, haifa-sched.c,
2467         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
2468         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
2469         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
2470         lto-opts.c, lto-section-in.c, lto-section-out.c,
2471         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
2472         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
2473         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
2474         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
2475         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
2476         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
2477         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
2478         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
2479         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
2480         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
2481         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
2482         include toplev.h.
2483         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
2484         toplev.h.  Dependencies for above files and c-family files changed
2485         to remove $(TOPLEV_H) or toplev.h.
2486         (C_TREE_H): Don't include $(TOPLEV_H).
2487         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
2488         bversion.h.
2489         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
2490         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
2491         config/t-darwin, config/t-sol2,
2492         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
2493         Dependencies for above files changed to remove $(TOPLEV_H) or
2494         toplev.h.
2495
2496 2010-11-30  Richard Guenther  <rguenther@suse.de>
2497
2498         PR lto/44986
2499         * gcc.c (main): Use the first input with a compiler as infile
2500         for link spec processing.
2501
2502 2010-11-30  Richard Guenther  <rguenther@suse.de>
2503
2504         PR lto/45949
2505         * cgraphunit.c (ipa_passes): Stop after errors from small IPA passes.
2506
2507 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
2508
2509         * gcc-plugin.h: Include coretypes.h.
2510         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
2511
2512 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2513
2514         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
2515         * ggc-none.c (ggc_internal_alloc_zone_stat)
2516         (ggc_internal_cleared_alloc_zone_stat): New.
2517
2518 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2519
2520         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
2521         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
2522         (rs6000_emit_prologue): Don't set PIC register if
2523         TARGET_SINGLE_PIC_BASE.
2524         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
2525         * doc/invoke.texi (msingle-pic-base): Document.
2526
2527 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
2528
2529         PR driver/46712
2530         * exec-tool.in (id): New.
2531         Check and export LT_RCU_$id instead of LT_RCU.
2532
2533 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
2534
2535         PR tree-optimization/46675
2536         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
2537         in offset calculation.
2538
2539 2010-11-29  Jan Hubicka  <jh@suse.cz>
2540
2541         * collect2.c (main): Do not imply verbose output with
2542         LTO and linker plugin.
2543
2544 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
2545
2546         * dwarf2out.c (print_die): Print the address of the current DIE or
2547         of any DIE referenced by the current one.
2548
2549 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
2550
2551         PR debug/46101
2552         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New function.
2553         (scope_die_for, gen_type_die_for_member): Replace uses of
2554         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
2555
2556 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
2557
2558         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
2559         (darwin_asm_declare_object_name): Correct spelling.
2560         (darwin_output_aligned_bss): Likewise.
2561
2562 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
2563             Mike Stump  <mrs@gcc.gnu.org>
2564
2565         PR target/26427
2566         PR target/33120
2567         PR testsuite/35710
2568         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
2569         (ASM_OUTPUT_LOCAL): Likewise.
2570         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
2571         (darwin_output_aligned_bss): Likewise.
2572         (darwin_asm_output_aligned_decl_local): Likewise.
2573         (darwin_asm_output_aligned_decl_common): Likewise.
2574         (darwin_use_anchors_for_symbol_p): Likewise.
2575         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
2576         (TARGET_ASM_OUTPUT_ANCHOR): Define.
2577         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
2578         (DARWIN_SECTION_ANCHORS): Set to 1.
2579         * config/darwin.c (emit_aligned_common): New var.
2580         (darwin_init_sections): Check that the Darwin private zero-size section
2581         marker is in range.
2582         (darwin_text_section): Check for zero-sized objects.
2583         (darwin_mergeable_string_section): Likewise.
2584         (darwin_mergeable_constant_section): Likewise.
2585         (machopic_select_section): Adjust to check for zero-sized objects.
2586         Assert that OBJC meta data are non-zero sized.
2587         (darwin_asm_declare_object_name): New.
2588         (darwin_asm_declare_constant_name): Adjust for zero-sized
2589         object sections.
2590         (BYTES_ZFILL): Define.
2591         (darwin_emit_weak_or_comdat): New.
2592         (darwin_emit_local_bss): New.
2593         (darwin_emit_common): New.
2594         (darwin_output_aligned_bss): New.
2595         (darwin_asm_output_aligned_decl_common): New.
2596         (darwin_asm_output_aligned_decl_local): New.
2597         (darwin_file_end): Disable subsections_via_symbols when section
2598         anchoring is active.
2599         (darwin_asm_output_anchor): Re-enable.
2600         (darwin_use_anchors_for_symbol_p): New.
2601         (darwin_override_options): Check for versions that can emit
2602         aligned common.  Update usage of flags to current.
2603         * config/darwin-sections.def: Update comments and flags for
2604         non-anchor sections.  zobj_const_section, zobj_data_section,
2605         zobj_bss_section, zobj_const_data_section: New.
2606         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
2607         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
2608         (L2_MAX_OFILE_ALIGNMENT): Define.
2609         (ASM_OUTPUT_ALIGNED_BSS): Define.
2610         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
2611         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
2612         (SECTION_NO_ANCHOR): Define.
2613         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
2614         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
2615
2616 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
2617
2618         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
2619         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
2620         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
2621         Conditionally define.
2622         (GET_ENVIRONMENT): Poison.
2623         * configure.ac: Don't test for mincore.
2624         * configure: Regenerate.
2625         * config.in: Regenerate.
2626         * collect2-aix.c: Don't include <sys/mman.h>.
2627         * collect2.c: Don't include <signal.h>.
2628         (SIGCHLD): Don't define.
2629         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
2630         * config/alpha/alpha.c: Include "splay-tree.h" instead of
2631         <splay-tree.h>.
2632         * config/arm/arm.c (arm_target_help): Use getenv instead of
2633         GET_ENVIRONMENT.
2634         * config/avr/driver-avr.c: Don't include <stdlib.h>.
2635         * config/frv/frv.c: Don't include <ctype.h>.
2636         * config/host-darwin.c: Don't include <sys/mman.h>.
2637         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
2638         (MAP_FAILED): Don't define.
2639         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
2640         * config/host-solaris.c: Don't include <sys/mman.h>.
2641         * config/i386/cygming.h: Don't include <stdio.h>.
2642         * config/i386/driver-i386.c: Don't include <stdlib.h>.
2643         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
2644         * config/iq2000/iq2000.c: Don't include <signal.h>.
2645         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
2646         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
2647         * config/mep/mep-pragma.c: Don't include <stdio.h>.
2648         * config/microblaze/microblaze.c: Don't include <signal.h>.
2649         * config/mips/mips.c: Don't include <signal.h>.
2650         * config/rs6000/host-darwin.c: Don't include <signal.h>.
2651         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
2652         * defaults.h (GET_ENVIRONMENT): Don't define.
2653         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
2654         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
2655         (SIGCHLD, MAP_FAILED, kill): Don't define.
2656         (process_command): Use getenv instead of GET_ENVIRONMENT.
2657         * genhooks.c: Don't include <string.h>.
2658         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
2659         <sys/types.h>.
2660         (MAP_FAILED): Don't define.
2661         * ggc-page.c Don't include <sys/mman.h>.
2662         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
2663         * ggc-zone.c: Don't include <sys/mman.h>.
2664         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
2665         * graph.c: Include "config.h" instead of <config.h>.
2666         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
2667         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
2668         (SIGCHLD, kill): Don't define.
2669         * mips-tfile.c: Don't include <signal.h>.
2670         * opts.c: Don't include <signal.h> or <sys/resource.h>.
2671         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
2672         * passes.c: Don't include <signal.h>, <sys/resource.h> or
2673         <sys/times.h>.
2674         * sparseset.h: Don't include <assert.h>.
2675         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
2676         * tlink.c: Don't include "libiberty.h".
2677         * toplev.c: Don't include <signal.h> or <sys/times.h>.
2678         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
2679         * tree-switch-conversion.c: Don't include <signal.h>.
2680         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
2681
2682 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2683
2684         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
2685         c_parser_objc_try_catch_finally_statement for consistency with the
2686         C++ parser.  Parse @catch(...) and pass NULL_TREE to
2687         objc_begin_catch_clause() in that case.  Improved error recovery.
2688         Reorganized code to be almost identical to
2689         cp_parser_objc_try_catch_finally_statement.
2690
2691 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
2692
2693         PR tree-optimization/46621
2694         * gimple.h: Don't include tm.h or hard-reg-set.h .
2695         * Makefile.in (GIMPLE_H): Remove $(TM_H).
2696
2697         PR bootstrap/44756
2698         * cppbuiltin.c: Include target.h .
2699         (define_builtin_macros_for_type_sizes):
2700         Use targetm.float_words_big_endian.
2701
2702 2010-11-27  Jan Hubicka  <jh@suse.cz>
2703
2704         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
2705         and output cold_text_section_label.
2706         (dwarf2out_init): Don't do that there.
2707         (dwarf2out_finish): Handle cold section end label only if cold
2708         section was used.
2709
2710 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
2711
2712         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
2713         VLA variables.
2714
2715 2010-11-27  Richard Guenther  <rguenther@suse.de>
2716
2717         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
2718         (gimple_assign_ssa_name_copy_p): Likewise.
2719         (gimple_assign_unary_nop_p): Use is_gimple_assign.
2720         (is_gimple_cast): Remove.
2721         (gimple_assign_single_p): Move ...
2722         * gimple.h (gimple_assign_single_p): ... here.
2723         (is_gimple_cast): Remove.
2724         (gimple_assign_rhs_code): Simplify.
2725         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
2726         instead of is_gimple_cast.
2727         * ipa-type-escape.c (look_for_casts): Likewise.
2728
2729 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
2730
2731         * doc/options.texi (Enum, EnumValue): Document new record types.
2732         (Enum): Document new option flag.
2733         * opt-functions.awk
2734         * optc-gen.awk: Handle enumerated option arguments.
2735         * opth-gen.awk: Handle enumerated option arguments.
2736         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
2737         enum_value_to_arg): New.
2738         (decode_cmdline_option): Handle enumerated arguments.
2739         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
2740         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
2741         * opts.c (print_filtered_help, print_specific_help): Take
2742         lang_mask arguments.
2743         (print_filtered_help): Handle printing values of enumerated
2744         options.  Print possible arguments for enumerated options.
2745         (print_specific_help): Update call to print_filtered_help.
2746         (common_handle_option): Update calls to print_specific_help.  Use
2747         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
2748         handle OPT_ffp_contract_, OPT_fexcess_precision_,
2749         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
2750         OPT_fira_region_ here.
2751         * opts.h (enum cl_var_type): Add CLVC_ENUM.
2752         (struct cl_option): Add var_enum.
2753         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
2754         struct cl_enum, cl_enums, cl_enums_count): New.
2755         (CL_ERR_ENUM_ARG): Define.
2756         (CL_ERR_NEGATIVE): Update value.
2757         (enum_value_to_arg): Declare.
2758         * common.opt (flag_ira_algorithm, flag_ira_region,
2759         flag_fp_contract_mode, flag_excess_precision_cmdline,
2760         default_visibility, flag_tls_default): Remove Variable entries.
2761         (help_enum_printed): New Variable.
2762         (fdiagnostics-show-location=): Use Enum.  Add associated
2763         SourceInclude, Enum and EnumValue entries.
2764         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
2765         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
2766         associated Enum and EnumValue entries.
2767
2768 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
2769
2770         PR target/46623
2771         * config/microblaze/microblaze.c (microblaze_block_move_straight):
2772         Use XALLOCAVEC.
2773         (microblaze_option_override): Don't use C++ style comments.
2774         (save_restore_insns): Remove unused variable base_offset.
2775         (microblaze_expand_prologue): Remove unused variable insn.
2776         (microblaze_secondary_reload): Adjust type to match target.h .
2777         (microblaze_elf_in_small_data_p): Move declarations to start of block.
2778         (microblaze_expand_move): Likewise.
2779         * config/microblaze/microblaze.h (LARGE_INT):
2780         Avoid signed / unsigned comparisons.
2781         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2782         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
2783         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
2784
2785 2010-11-26  Michael Matz  <matz@suse.de>
2786
2787         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
2788
2789         * passes.c (init_optimization_passes): Remove superfluous
2790         copy-prop pass.
2791
2792 2010-11-26  Richard Guenther  <rguenther@suse.de>
2793
2794         PR lto/46648
2795         * gimple.c (gtc_visit): Do not return true for members of an
2796         SCC still being processed but the current lattice value of
2797         the member.  Treat SCC members comparison state as lattice,
2798         starting at equal, eventually dropping to unequal.
2799         (gimple_types_compatible_p_1): Likewise.
2800
2801 2010-11-26  Richard Guenther  <rguenther@suse.de>
2802
2803         PR middle-end/46559
2804         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
2805         for location list processing.
2806
2807 2010-11-26  Richard Guenther  <rguenther@suse.de>
2808
2809         PR lto/46560
2810         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
2811         flags manually.
2812
2813 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2814
2815         * config/s390/s390.c (print_operand_address): Replace assert with
2816         error message.
2817         (print_operand): Replace assertions, gcc_unreachable and
2818         fatal_insn with error messages.
2819
2820 2010-11-26  Richard Guenther  <rguenther@suse.de>
2821
2822         PR tree-optimization/46665
2823         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
2824
2825 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
2826
2827         * config/arm/arm.c (arm_option_override): enable loop array
2828         prefetching at -O3 for suitable targets, and configure params.
2829         * config/arm/arm-protos.h (struct tune_params): Add fields for
2830         configuring loop array prefetching.
2831
2832 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
2833
2834         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
2835
2836 2010-11-26  Richard Guenther  <rguenther@suse.de>
2837
2838         PR tree-optimization/46664
2839         * tree-affine.c (aff_combination_to_tree): Add rest last.
2840
2841 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
2842
2843         PR target/33637
2844         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
2845         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
2846         * configure: Regenerated.
2847         * exec-tool.in: Not quoting command, may have extra arguments.
2848
2849 2010-11-26  Richard Guenther  <rguenther@suse.de>
2850
2851         PR tree-optimization/46528
2852         PR debug/46338
2853         * profile.c (branch_prob): Do not split blocks based on locations
2854         from debug statements.
2855
2856 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
2857
2858         PR middle-end/46647
2859         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
2860         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
2861
2862         PR bootstrap/45700
2863         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
2864         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
2865         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
2866         build6_loc): Define.
2867         * fold-const.c (protected_set_expr_location_unshare): New inline.
2868         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
2869         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
2870         pedantic_omit_one_operand_loc, omit_two_operands_loc,
2871         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
2872         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
2873         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
2874         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
2875         instead of buildN followed by SET_EXPR_LOCATION or
2876         protected_set_expr_location.
2877         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
2878         Use buildN_stat_loc instead of buildN_stat followed by
2879         SET_EXPR_LOCATION.
2880
2881 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
2882
2883         * Makefile.in (s-tm-texi): Remove spurous tab.
2884
2885 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
2886
2887         PR debug/46258
2888         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
2889         debug stmts.
2890
2891 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
2892
2893         * toplev.c (finalize): Add no_backend parameter.  Don't finish
2894         passes when preprocessing only.  Adjust...
2895         (do_compile): ... caller.
2896
2897 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2898
2899         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
2900         flag_unsafe_math_optimizations.
2901         (negsf2): Likewise.
2902         Move fnegabs related patterns together.  Only use fmpynfadd instruction
2903         to negate a multiply if !flag_signed_zeros is true.
2904
2905 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
2906
2907         * gengtype-state.c (read_state_structures): Initialize "previous".
2908
2909 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
2910             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2911
2912         * gengtype-state.c: Add new file.
2913
2914         * gengtype.c (type count): New variable.
2915         (new_structure, find_param_structure, create_pointer)
2916         (create_array): Use it to set state_number in types.
2917         (dump_everything): Improve comment.
2918         (main): Call read_state and write_state. Print type_count.
2919
2920         * gengtype.h (type_lineloc): New function.
2921         (read_state, write_state): New declarations.
2922
2923         * Makefile.in (GENGTYPE_FLAGS): New variable.
2924         (s-gtype): Run gengtype twice and generate gtype.state.
2925         (build/gengtype-state.o): New rule.
2926         (build/gengtype$(build_exeext)): Link gengtype-state.o.
2927         (mostlyclean): Update comment.  Remove gtype.state.
2928
2929 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
2930
2931         PR middle-end/46637
2932         * combine.c (try_combine): When substing i2dest for i2src, pass
2933         1 as last argument even if
2934         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
2935
2936 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
2937
2938         PR middle-end/46647
2939         * builtins.c (target_char_cast): Check INTEGER_CST instead of
2940         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
2941
2942 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
2943
2944         * target.def (supports_split_stack, except_unwind_info): Take
2945         gcc_options parameters.
2946         * targhooks.c (default_except_unwind_info,
2947         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
2948         gcc_options parameters.
2949         * targhooks.h (default_except_unwind_info,
2950         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
2951         prototypes.
2952         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
2953         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
2954         Document that hooks must not be modified.
2955         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
2956         * doc/tm.texi: Regenerate.
2957         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
2958         &global_options to targetm.except_unwind_info.
2959         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
2960         dwarf2out_begin_prologue, dwarf2out_frame_init,
2961         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
2962         &global_options to targetm.except_unwind_info.
2963         * except.c (init_eh, finish_eh_generation,
2964         gate_convert_to_eh_region_ranges,
2965         output_one_function_exception_table): Pass &global_options to
2966         targetm.except_unwind_info.
2967         * expr.c (build_personality_function): Pass &global_options to
2968         targetm.except_unwind_info.
2969         * function.c (expand_function_end): Pass &global_options to
2970         targetm.except_unwind_info.
2971         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
2972         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
2973         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
2974         and targetm.supports_split_stack.  Remove assertions about opts
2975         and opts_set.
2976         (common_handle_option): Remove assertions about opts, opts_set and dc.
2977         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
2978         &global_options to targetm.except_unwind_info.
2979         * tree.c (build_common_builtin_nodes: Pass &global_options to
2980         targetm.except_unwind_info.
2981         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
2982         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
2983         thumb1_expand_prologue, thumb1_output_function_prologue,
2984         arm_unwind_emit, arm_output_fn_unwind): Update calls to
2985         arm_except_unwind_info.
2986         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
2987         parameter.
2988         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
2989         parameter.
2990         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
2991         ia64_reorg, ia64_asm_unwind_emit): Update calls to
2992         ia64_except_unwind_info.
2993         * config/pa/pa.c (pa_option_override): Pass &global_options to
2994         targetm.except_unwind_info.
2995         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
2996         Remove prototype.
2997
2998 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
2999
3000         * cgraphunit.c (process_function_and_variable_attributes):
3001         Mark dllexport-ed function/variables as needed.
3002         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
3003         as externally visible.
3004
3005 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
3006
3007         PR rtl-optimization/46585
3008         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
3009         (vinsn_init): Skip computation of dependencies for local NOPs.
3010         (vinsn_delete): Don't try to free regsets for local NOPs.
3011         (setup_nop_and_exit_insns): Change definition of nop_pattern.
3012
3013 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
3014
3015         PR rtl-optimization/46602
3016         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
3017         (tidy_control_flow): Here.
3018
3019 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
3020             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3021
3022         PR bootstrap/45888
3023         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
3024         Fix target.def pathname in timestamp comparison.
3025
3026 2010-11-24  Richard Henderson  <rth@redhat.com>
3027
3028         * config/ia64/predicates.md (pmpyshr_operand): New.
3029         * config/ia64/ia64.c (ia64_expand_unpack): New.
3030         (ia64_expand_widen_mul_v4hi): New.
3031         (ia64_expand_widen_sum): Update for pattern renames.
3032         (ia64_expand_dot_prod_v8qi): Likewise.
3033         * config/ia64/ia64-protos.h: Update.
3034         * config/ia64/vect.md (vecwider): New mode attribute.
3035         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
3036         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
3037         (pmpyshr2, pmpyshr2_u): New.
3038         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
3039         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
3040         (mulv2si3): New.
3041         (vec_pack_ssat_v4hi): Rename from pack2_sss.
3042         (vec_pack_usat_v4hi): Rename from *pack2_uss.
3043         (vec_pack_ssat_v2si): Rename from pack4_sss.
3044         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
3045         vec_select operation.
3046         (vec_interleave_highv8qi): Similarly.
3047         (mux1_alt): Rename from *mux1_alt.
3048         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
3049         (vec_interleave_lowv4hi): Rename from unpack2_l.
3050         (vec_interleave_highv4hi): Rename from unpack2_h.
3051         (mix2_r): Rename from *mix2_r.
3052         (mix2_l): Similarly.
3053         (vec_extract_evenodd_helper): New.
3054         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
3055         (vec_interleave_lowv2si): Rename from *unpack4_l.
3056         (vec_interleave_highv2si): Rename from *unpack4_h.
3057         (vec_extract_evenv2si, vec_extract_oddv2si): New.
3058         (vec_interleave_lowv2sf): Rename from fmix_r.
3059         (vec_interleave_highv2sf): Rename from *fmix_l.
3060         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
3061         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
3062         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
3063         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
3064
3065 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
3066
3067         * targhooks.c (default_except_unwind_info): Remove
3068         MUST_USE_SJLJ_EXCEPTIONS case.
3069         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
3070         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3071         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
3072         * doc/tm.texi: Regenerate.
3073         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
3074
3075 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
3076
3077         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
3078         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
3079         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
3080         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
3081         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
3082
3083 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
3084
3085         PR target/46519
3086         * config/i386/i386.c (ix86_expand_call): Don't check
3087         TREE_THIS_VOLATILE.
3088
3089 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
3090
3091         PR target/46519
3092         * config/i386/i386.c (upper_128bits_state): New.
3093         (block_info_def): Remove upper_128bits_set and done.  Add state,
3094         referenced, count, processed and rescanned.
3095         (check_avx256_stores): Updated.
3096         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
3097         Call note_stores only if needed.  Set referenced and count.
3098         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
3099         (rescan_move_or_delete_vzeroupper): New.
3100         (move_or_delete_vzeroupper):  Process and rescan all all basic
3101         blocks instead of predecessor blocks of all exit points.
3102         (ix86_option_override_internal): Enable vzeroupper optimization
3103         only for -fexpensive-optimizations and not optimizing for size.
3104         (use_avx256_p): Removed.
3105         (init_cumulative_args): Don't set use_avx256_p.
3106         (ix86_function_arg): Likewise.
3107         (ix86_expand_move): Likewise.
3108         (ix86_expand_vector_move_misalign): Likewise.
3109         (ix86_local_alignment): Likewise.
3110         (ix86_minimum_alignment): Likewise.
3111         (ix86_expand_epilogue): Don't check use_avx256_p when generating
3112         vzeroupper.
3113         (ix86_expand_call): Likewise.
3114
3115         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
3116         and use_avx256_p.  Add rescan_vzeroupper_p.
3117
3118 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
3119
3120         * toplev.c: Include <signal.h>.
3121
3122 2010-11-24  Richard Guenther  <rguenther@suse.de>
3123
3124         PR lto/43218
3125         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
3126         conflicting function signatures as non-inlineable.
3127
3128 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
3129
3130         PR rtl-optimization/46614
3131         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
3132          (deps_analyze_insn): Mark JUMP_INSNs in
3133         last_pending_memory_flush that weren't added through
3134         flush_pending_lists with NON_FLUSH_JUMP_KIND.
3135         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
3136         on INSN_LIST instead of JUMP_P check on its operand.
3137         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
3138
3139 2010-11-24  Richard Guenther  <rguenther@suse.de>
3140
3141         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
3142
3143 2010-11-24  Richard Guenther  <rguenther@suse.de>
3144
3145         PR lto/46606
3146         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
3147         a FIELD_DECL that is type correct issue a warning and fixup
3148         with a VIEW_CONVERT_EXPR.
3149
3150 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
3151
3152         * doc/invoke.texi (Options for Debugging Your Program or GCC):
3153         Explain static numbering of dump files.
3154
3155 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
3156
3157         * common.opt (user_vect_verbosity_level): New Variable entry.
3158         (ftree-vectorizer-verbose=): Mark as UInteger.
3159         * flag-types.h (enum vect_verbosity_levels): Move from enum
3160         verbosity_levels in tree-vectorizer.h.
3161         * opts.c: Don't include tree.h.
3162         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
3163         gcc_options parameter; take integer option argument.
3164         (common_handle_option): Update call to vect_set_verbosity_level.
3165         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
3166         (vect_set_verbosity_level): Move to opts.c.
3167         (vect_verbosity_level, vect_print_dump_info): Update for change of
3168         enum name.
3169         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
3170         (vect_print_dump_info): Update for change of enum name.
3171         * tree.h (vect_set_verbosity_level): Remove.
3172         * Makefile.in (opts.o): Update dependencies.
3173
3174 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
3175
3176         PR middle-end/46629
3177         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
3178         instead of insn with any_condjump_p.
3179
3180 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
3181
3182         * config/mips/loongson.md: Change the description comment of the file
3183         and update the copyright years.
3184         (define_insn "<u>div<mode>3): Add loongson3a support.
3185         (define_insn "<u>mod<mode>3"): Likewise.
3186         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
3187         mul<mode>3_mul3_loongson.
3188         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
3189         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
3190
3191 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
3192
3193         * common.opt (initial_max_fld_align, flag_debug_asm,
3194         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
3195         flag_print_asm_name, graph_dump_format, help_printed,
3196         help_columns, flag_opts_finished): New Variable entries.
3197         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
3198         frandom-seed=): Mark deferred.
3199         (fsched-verbose=): Use UInteger and Var.
3200         * flags.h (set_struct_debug_option, flag_print_asm_name,
3201         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
3202         graph_dump_format): Don't declare here.
3203         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
3204         * opts-global.c: Include dbgcnt.h and debug.h.
3205         (decode_options): Pass location to finish_options.
3206         (handle_common_deferred_options): Check flag_dump_all_passed.
3207         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
3208         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
3209         OPT_fstack_limit.
3210         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
3211         (set_struct_debug_option): Add location_t parameter.  Update
3212         recursive call.  Use error_at.
3213         (default_options_optimization): Use error_at.
3214         (finish_options): Add location_t parameter.  Use
3215         opts->x_flag_opts_finished instead of first_time_p.  Use
3216         opts->x_optimize instead of optimize.  Use error_at.  Pass
3217         location to inform.
3218         (print_filtered_help): Use opts->x_help_printed to track what
3219         options have been printed.
3220         (print_specific_help): Use opts->x_help_columns to track number of
3221         columns.
3222         (common_handle_option): Pass locations and gcc_options pointers to
3223         more functions.  Use warning_at instead of fnotice and warning.
3224         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
3225         OPT_fdebug_prefix_map_.  Use error_at.  Set
3226         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
3227         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
3228         OPT_fsched_verbose_.
3229         (handle_param): Add location_r parameter.  Use error_at.
3230         (set_debug_level): Add location_r parameter.  Use error_at and
3231         warning_at.
3232         (setup_core_dumping): Add diagnostic_context parameter.
3233         (decode_d_option): Add gcc_options, location_t and
3234         diagnostic_context parameters and use them instead of global
3235         state.  Use warning_at.
3236         (enable_warning_as_error): Use error_at.
3237         * opts.h (finish_options): Update prototype.
3238         (set_struct_debug_option): Declare here.
3239         * rtl.h (fix_sched_param): Remove.
3240         * stor-layout.c (initial_max_fld_align): Remove.
3241         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
3242         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
3243         (process_options): Set maximum_field_alignment.
3244         * tree.h (initial_max_fld_align) Don't declare here.
3245         * Makefile.in (opts.o, opts-global.o): Update dependencies.
3246
3247 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
3248
3249         * flag-types.h (struct visibility_flags): Don't declare here.
3250         * flags.h (strip_off_ending, fast_math_flags_set_p,
3251         fast_math_flags_struct_set_p): Declare here.
3252         (visibility_options): Don't declare here.
3253         * opts-common.c (option_enabled, get_option_state): Move from
3254         opts.c.
3255         * opts-global.c: Include diagnostic.h instead of
3256         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
3257         and toplev.h.
3258         (const_char_p, ignored_options, in_fnames, num_in_fnames,
3259         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
3260         print_ignored_options, unknown_option_callback,
3261         post_handling_callback, lang_handle_option, add_input_filename,
3262         read_cmdline_options, initial_lang_mask, init_options_once,
3263         decode_cmdline_options_to_array_default_mask,
3264         set_default_handlers, decode_options): Move from opts.c.
3265         (print_ignored_options): Use warning_at instead of saving and
3266         restoring input_location.
3267         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
3268         instead of expr.h.  Don't include langhooks.h, except.h or
3269         lto-streamer.h.  Add more comments on includes.
3270         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
3271         toplev.c.
3272         (visibility_options): Move to c-family/c-common.c.
3273         (const_char_p, ignored_options, in_fnames, num_in_fnames,
3274         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
3275         print_ignored_options, unknown_option_callback,
3276         post_handling_callback, lang_handle_option, add_input_filename,
3277         read_cmdline_options, initial_lang_mask, init_options_once,
3278         decode_cmdline_options_to_array_default_mask,
3279         set_default_handlers, decode_options): Move to opts-global.c.
3280         (target_handle_option, default_options_optimization,
3281         finish_options, common_handle_option): Remove static.
3282         (option_enabled, get_option_state): Move to opts-common.c.
3283         * opts.h (common_handle_option, target_handle_option,
3284         finish_options, default_options_optimization): Declare.
3285         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
3286         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
3287         opts.c.
3288         * toplev.h (strip_off_ending, decode_d_option,
3289         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
3290         declare here.
3291         * Makefile.in (opts.o, opts-global.o): Update dependencies.
3292
3293 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
3294
3295         PR driver/42690
3296         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
3297         options, replace by call of pass-through-libs spec function to process
3298         link_gcc_c_sequence spec.
3299         (lto_libgcc_spec): Delete variable.
3300         (static_specs[]): Remove related entry.
3301         (static_spec_functions[]): Add new entry for pass-through-libs.
3302         (main): Don't generate deleted lto_libgcc_spec.
3303         (pass_through_libs_spec_func): New function to implement the new
3304         pass-through-libs spec function.
3305         * doc/invoke.texi (pass-through-libs): Document new spec function.
3306
3307 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
3308
3309         * doc/options.texi (Warning, Optimization): Document.
3310
3311 2010-11-23  Jan Hubicka  <jh@suse.cz>
3312
3313         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
3314         (tree_decl_with_vis): Add implicit_section_name_p.
3315         * targhooks.h (default_function_section): Declare.
3316         * target.def (function_section): New hook.
3317         * defaults.h (HOT_TEXT_SECTION_NAME,
3318         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3319         * predict.c (choose_function_section): Remove.
3320         (estimate_bb_frequencies): Do not use choose_function_section.
3321         * coretypes.h (enum node_frequency): Move here from cgraph.h
3322         * cgraph.h (enum node_frequency): Remove.
3323         * varasm.c (initialize_cold_section_name, unlikely_text_section,
3324         unlikely_text_section_p): Remove.
3325         (named_subsection_entry): New structure.
3326         (get_text_section): New function.
3327         (default_function_section): New function.
3328         (function_section_1): Break out from ...; handle profile info.
3329         (function_section): ... here.
3330         (unlikely_text_section): Remove.
3331         (unlikely_text_section_p): Use function_section_1.
3332         (assemble_start_function): Do not initialize cold section.
3333         (default_section_type_flags): Do not special case cold subsection.
3334         (switch_to_section): Likewise.
3335         * output.h (get_text_section): Define.
3336         * config/i386/winnt.c: Do not special case cold section.
3337         * config/darwin-protos.h (darwin_function_section): Declare.
3338         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
3339         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3340         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
3341         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3342         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
3343         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
3344         * config/darwin.c (machopic_select_section): Use
3345         darwin_function_section.
3346         (darwin_function_section): New function.
3347         * config/darwin.h (HOT_TEXT_SECTION_NAME,
3348         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3349         (TARGET_ASM_FUNCTION_SECTION): Define.
3350         * system.h (HOT_TEXT_SECTION_NAME,
3351         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
3352
3353 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
3354
3355         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
3356         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
3357
3358 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
3359
3360         PR middle-end/46499
3361         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
3362         following unconditional jumps.
3363
3364 2010-11-23  Richard Guenther  <rguenther@suse.de>
3365
3366         * doc/md.texi (386 constraints): Clarify A constraint documentation.
3367
3368 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
3369             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3370
3371         * gengtype.c (enum typekind, struct options)
3372         (struct nested_ptr_data, struct pair, NUM_PARAM)
3373         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
3374         Move to gengtype.h.
3375         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
3376         Remove static, add zero state_number.
3377         (typedefs, structures, param_structs, variables): Remove static.
3378         (create_option): Remove.
3379         (create_string_option, create_type_option, create_nested_option):
3380         New functions.
3381         (create_nested_ptr_option): Use create_nested_option.
3382         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
3383         new create*option functions.
3384         (process_gc_options): Adjust for discriminated option.
3385         (output_mangled_typename): Handle TYPE_NONE.
3386         (walk_type): Test option kinds.
3387         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
3388         (write_func_for_structure, write_type, write_local, write_root)
3389         (write_roots, note_def_vec, dump_options): Adjust for
3390         discriminated option.
3391
3392         * gengtype.h (typedefs, structures, param_structs, variables
3393         enum typekind): Move from gengtype.c
3394         (enum option_kind): New discriminating enumeration.
3395         (struct options): Becomes discriminated.
3396         (struct nested_ptr_data): Nove from gengtype.c
3397         (create_string_option, create_type_option, create_nested_option)
3398         (create_nested_ptr_option): New functions
3399         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
3400         (UNION_OR_STRUCT_P): Move from gengtype.c
3401
3402         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
3403         discriminated options.
3404
3405 2010-11-23  Richard Guenther  <rguenther@suse.de>
3406
3407         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
3408         twice.  Avoid re-allocating the ops vector all the time.
3409
3410 2010-11-23  Richard Guenther  <rguenther@suse.de>
3411
3412         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
3413         is_gimple_min_invariant, group tree code checks to allow
3414         combining them.
3415         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
3416         of is_gimple_reg.
3417
3418 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
3419
3420         * config.gcc (sparc*-*-*): Reorder.
3421
3422 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
3423
3424         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
3425         Remove ENABLE_CHECKING around DBGPRINTF.
3426
3427 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
3428
3429         * common.opt (exit_after_options, write_symbols, debug_info_level,
3430         use_gnu_debug_info_extensions): New Variable entries.
3431         (fprofile-dir=): Use Var.
3432         * flag-types.h (enum debug_info_level): Rename to enum
3433         debug_info_levels.
3434         * flags.h (write_symbols, debug_info_level,
3435         use_gnu_debug_info_extensions): Remove declarations.
3436         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
3437         (set_struct_debug_option): Make static variables const.
3438         (use_gnu_debug_info_extensions): Remove.
3439         (set_debug_level, print_filtered_help, print_specific_help,
3440         fast_math_flags_set_p): Take gcc_options parameters and use them
3441         in place of global variables.
3442         (print_filtered_help): Make new_help non-static.
3443         (print_specific_help): Update call to print_filtered_help.
3444         (common_handle_option): Update calls to print_specific_help.  Use
3445         gcc_options structure for more settings.  Make --help table
3446         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
3447         set_debug_level.
3448         * toplev.c (profile_data_prefix): Remove.
3449         * toplev.h (profile_data_prefix, exit_after_options): Remove
3450         declarations.
3451         (fast_math_flags_set_p): Update prototype.
3452         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
3453         Update call to fast_math_flags_set_p.
3454
3455 2010-11-22  Richard Henderson  <rth@redhat.com>
3456
3457         PR target/46434
3458         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
3459         return the address register extracted.
3460         (crx_decompose_address): Update the extracted address register.
3461
3462 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
3463
3464         PR driver/43335
3465         * gcc.c (main): Don't crash when lto-wrapper program is not found.
3466
3467 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
3468
3469         PR target/46608
3470         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
3471         * config/picochip/picochip-protos.h: Don't include "target.h" .
3472         (picochip_secondary_reload): Don't declare.
3473
3474         PR target/46613
3475         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
3476         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
3477         static.
3478
3479 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
3480
3481         PR bootstrap/46609
3482         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
3483         (source_dot_c_frul): Likewise.
3484
3485 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
3486
3487         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
3488
3489 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
3490
3491         PR bootstrap/44970
3492         * Makefile.in (fwprop.o) Add sparseset.h.
3493         * fwprop.c: Include sparseset.h
3494         (struct find_occurrence_data, find_occurrence_callback,
3495         find_occurrence): Remove.
3496         (active_defs, active_defs_check, register_active_defs,
3497         update_df_init, update_uses): New.
3498         (update_df): Rewrite.
3499         (try_fwprop_subst, forward_propagate_asm): Add calls to
3500         update_df_init and update_df.
3501         (fwprop_init): Allocate active_defs and active_defs_check.
3502         (fwprop_done): Free them.
3503         (fwprop, fwprop_addr): Adjust comments.
3504         * df.h (df_uses_create): Declare.
3505         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
3506         (df_ref_create): Return result of df_ref_create_structure directly.
3507         (df_ref_create_structure): Call df_install_ref_incremental when
3508         no collection_rec is passed.
3509         (df_ref_record): Do not create multiword hard reg info when no
3510         collection_rec is passed.
3511         (df_uses_create): New.
3512
3513 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
3514
3515         PR middle-end/43057
3516         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
3517         setting location.
3518
3519 2010-11-22  Richard Guenther  <rguenther@suse.de>
3520
3521         * gimple-fold.c (maybe_fold_reference): When canonicalizing
3522         MEM_REFs, preserve volatileness.
3523         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
3524         addresses.
3525
3526 2010-11-22  Richard Guenther  <rguenther@suse.de>
3527
3528         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
3529
3530 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
3531
3532         PR rtl-optimization/45652
3533         * alias.c (get_reg_base_value): New.
3534         * rtl.h (get_reg_base_value): Add prototype.
3535         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
3536         non-null REG_BASE_VALUE for renaming.
3537
3538 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
3539             Basile Starynkevitch  <basile@starynkevitch.net>
3540
3541         * gengtype.c: Include xregex.h and obstack.h
3542         Added comments about role of get_output_file_with_visibility and
3543         our regexpr machinery.
3544         (frul_actionrout_t, struct file_rule_st): New.
3545         (hader_dot_h_frul, source_dot_c_frul): New functions.
3546         (NULL_REGEX,  NULL_FRULACT): New.
3547         (files_rules): New.
3548         (matching_file_name_substitute): New function.
3549         (get_output_file_with_visibility): Updated comments and rewritten
3550         to use the new files_rules machinery.
3551
3552         * Makefile.in (XREGEX_H): Added variable.
3553         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
3554
3555 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
3556
3557         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
3558
3559 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
3560
3561         * target.def (conditional_register_usage): Define.
3562         * reginfo.c (init_reg_sets_1): Call
3563         targetm.conditional_register_usage.
3564         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
3565         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
3566         for making it a hook.
3567         * doc/tm.texi: Regenerate.
3568         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3569         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
3570         New function.
3571         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3572         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3573         * config/arc/arc.c (arc_conditional_register_usage): ...here.
3574         New function.
3575         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3576         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3577         * config/arm/arm.c (arm_conditional_register_usage): ...here.
3578         New function.
3579         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3580         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
3581         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
3582         * config/bfin/bfin.c (conditional_register_usage): Move code into...
3583         (bfin_conditional_register_usage): ...here.  New function.
3584         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3585         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
3586         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
3587         * config/cris/cris.c (cris_conditional_register_usage): Make static.
3588         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3589         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
3590         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
3591         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
3592         * config/frv/frv.c (frv_conditional_register_usage): Make static.
3593         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3594         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3595         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
3596         New function.
3597         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3598         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
3599         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
3600         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
3601         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3602         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
3603         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
3604         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
3605         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3606         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3607         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
3608         New function.
3609         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3610         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
3611         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
3612         Delete.
3613         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
3614         static.
3615         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3616         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
3617         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
3618         * config/mep/mep.c (mep_conditional_register_usage): Make static.
3619         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3620         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
3621         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
3622         * config/mips/mips.c (mips_conditional_register_usage): Make static.
3623         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3624         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
3625         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
3626         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
3627         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3628         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3629         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
3630         ...here.  New function.
3631         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3632         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3633         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
3634         * config/pa/pa.c (pa_conditional_register_usage): ...here.
3635         New function.
3636         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3637         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3638         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
3639         New function.
3640         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3641         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
3642         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
3643         Delete.
3644         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
3645         static.
3646         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3647         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
3648         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
3649         * config/rx/rx.c (rx_conditional_register_usage): Make static.
3650         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3651         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
3652         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
3653         * config/s390/s390.c (s390_conditional_register_usage): Make static.
3654         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3655         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3656         * config/score/score.c (score_conditional_register_usage): ...here.
3657         New function.
3658         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3659         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3660         * config/sh/sh.c (sh_conditional_register_usage): ...here.
3661         New function.
3662         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3663         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3664         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
3665         New function.
3666         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3667         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
3668         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
3669         * config/spu/spu.c (spu_conditional_register_usage): Make static.
3670         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3671         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3672         * config/v850/v850.c (v850_conditional_register_usage): ...here.
3673         New function.
3674         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3675
3676 2010-11-21  Jan Hubicka  <jh@suse.cz>
3677             Dominique d'Humieres <dominiq@lps.ens.ft>
3678
3679         PR target/46510
3680         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
3681         finalize external decls.
3682
3683 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
3684
3685         * system.h (strerror): Poison.
3686
3687 2010-11-21  Richard Henderson  <rth@redhat.com>
3688
3689         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
3690         for infq/huge_valq.
3691
3692 2010-11-21  Richard Henderson  <rth@redhat.com>
3693
3694         PR rtl-optimization/46571
3695         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
3696         (compute_hash_table_work): Use NONDEBUG_INSN_P.
3697
3698 2010-11-21  Paul Koning  <ni1d@arrl.net>
3699
3700         * config/mips/pdp11.md (negsi2): Fix wrong code.
3701
3702 2010-11-21  Paul Koning  <ni1d@arrl.net>
3703
3704         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
3705         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3706
3707 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
3708
3709         * config/mips/mips.c (machine_function): Rename load_label_length to
3710         load_label_num_insns.
3711         (mips_load_label_length): Rename to...
3712         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
3713         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
3714
3715 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
3716
3717         PR target/46533
3718         * config/alpha/predicates.md (direct_call_operand): Return false
3719         for !TARGET_SMALL_TEXT targets.
3720
3721 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
3722
3723         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
3724         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
3725         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
3726         * doc/tm.texi: Regenerate.
3727         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
3728         HANDLE_PRAGMA_WEAK): Poison.
3729         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
3730         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3731         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
3732         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
3733         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3734         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3735         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3736         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
3737         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3738         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
3739         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3740         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
3741         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3742         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3743         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
3744         (HANDLE_PRAGMA_WEAK): Don't undefine.
3745         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3746         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
3747         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3748         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
3749         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
3750         (HANDLE_PRAGMA_WEAK): Don't undefine.
3751         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3752         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
3753         (HANDLE_PRAGMA_PACK): Don't undefine.
3754         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
3755         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3756         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3757         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3758         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
3759         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3760         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3761         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3762         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
3763         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3764         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
3765         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3766         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3767         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
3768         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3769         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
3770         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3771
3772 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
3773
3774         PR target/31100
3775         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
3776         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
3777         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
3778
3779 2010-11-20  Jan Hubicka  <jh@suse.cz>
3780
3781         * cgraph.c (ld_plugin_symbol_resolution_names): New.
3782         (dump_cgraph_node): Dump resolution.
3783         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
3784         (cgraph_comdat_can_be_unshared_p): Dclare.
3785         * lto-streamer-out.c (produce_symtab): Use
3786         cgraph_comdat_can_be_unshared_p.
3787         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
3788         (cgraph_comdat_can_be_unshared_p): New function based on logic
3789         in cgraph_externally_visible_p.
3790         (cgraph_externally_visible_p): Use it.
3791         (varpool_externally_visible_p): Virtual tables can be unshared.
3792         * varpool.c (dump_varpool_node): Dump resolution.
3793
3794 2010-11-20  Jan Hubicka  <jh@suse.cz>
3795
3796         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
3797
3798 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3799
3800         PR other/46202
3801         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
3802         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
3803         shell quoting.
3804         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
3805         (install-strip): New target.
3806         (STRIPPROG): New variable, exported if STRIP is set.
3807         * doc/install.texi (Final install): Minor markup and code style
3808         fixes.  Document install-strip target.
3809
3810 2010-11-20  Paul Koning  <ni1d@arrl.net>
3811
3812         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
3813         pdp11_regno_reg_class): New functions.
3814         * config/pdp11/pdp11.md (define_constants): Add register numbers.
3815         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
3816         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
3817         functions.
3818         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
3819         frame pointer and argument pointer pseudo-registers.
3820         (ARG_POINTER_REGNUM): Define.
3821         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
3822         argument pointer.
3823         (FIRST_PARM_OFFSET): Update for argument pointer.
3824         (INITIAL_FRAME_POINTER_OFFSET): Delete.
3825         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
3826         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
3827         frame pointer and argument pointer.
3828
3829 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
3830
3831         PR debug/46561
3832         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
3833         when looking for immediate uses.
3834
3835         PR tree-optimization/45830
3836         * stmt.c (expand_switch_using_bit_tests_p): New function.
3837         (expand_case): Use it.
3838         * tree.h (expand_switch_using_bit_tests_p): New prototype.
3839         * tree-switch-conversion.c (struct switch_conv_info): Add
3840         bit_test_uniq, bit_test_count and bit_test_bb fields.
3841         (check_range): Fix a comment.
3842         (check_process_case): Compute bit_test_uniq and bit_test_count.
3843         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
3844         allocation.
3845         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
3846         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
3847         (array_value_type): New function.
3848         (build_one_array): Use it, if it returned different type,
3849         fold_convert all constructor fields and convert back to the
3850         wider type in the generated code.
3851         (process_switch): Initialize bit_test_uniq, bit_test_count and
3852         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
3853         returned true.
3854
3855 2010-11-19  Michael Matz  <matz@suse.de>
3856
3857         PR tree-optimization/46077
3858         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
3859
3860 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
3861
3862         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3863         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
3864         function.
3865         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3866
3867 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
3868
3869         * mode-switching.c (optimize_mode_switching): Use
3870         FOR_BB_INSNS instead of open-coded loop.
3871         * cfgrtl.c (redirect_branch_edge): Ditto.
3872
3873 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
3874
3875         PR target/46436
3876         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
3877         to accomodate 32 bit HOST_WIDE_INT.
3878         (m68hc11_emit_logical): Remove unused variable insn.
3879         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
3880         this_insn_uses_iy before use.
3881
3882         PR target/46434
3883         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
3884
3885 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
3886
3887         PR c/46547
3888         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
3889         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
3890
3891 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
3892
3893         * doc/extend.texi (Function attributes): Document PowerPC target
3894         attributes that are supported.
3895         (Pragmas): Document that PowerPC now supports target pragmas.
3896
3897         * doc/options.texi (TargetVariable): Document TargetVariable,
3898         HeaderInclude, and SourceInclude.
3899
3900         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
3901         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
3902         -ffp-contract=off.
3903
3904         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
3905         SourceInclude directives.  Fix a cut+paste error with target save
3906         enum variables.  Sort enums in the structures after ints and
3907         before shorts.
3908         * opth-gen.awk: Ditto.
3909
3910         * configure.ac: Add support for HeaderInclude and SourceInclude option
3911         directives to add the appropriate files to the dependency lists.
3912         * configure: Regenerate.
3913         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
3914         (OPTIONS_C_EXTRA): New variable for SourceInclude.
3915         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
3916         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
3917         (gcc-options.o): Ditto.
3918         * opt-include.awk: New awk script to handle HeaderInclude and
3919         TargetInclude.
3920
3921         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
3922         gets saved in the target options.
3923         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
3924         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
3925         (-mprototype): Ditto.
3926         (-mbit-word): ditto.
3927         (-mregnames): Ditto.
3928         (-msecure-plt): Ditto.
3929         (-mbss-plt): Ditto.
3930         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
3931         (-mpowerpc-gfxopt): Ditto.
3932         (-mmfcrf): Ditto.
3933         (-mpopcntb): Ditto.
3934         (-mfprnd): Ditto.
3935         (-mcmpb): Ditto.
3936         (-mmmfpgpr): Ditto.
3937         (-maltivec): Ditto.
3938         (-mhard-dfp): Ditto.
3939         (-mmulhw): Ditto.
3940         (-mdlmzb): Ditto.
3941         (-mmultiple): Ditto.
3942         (-mstring): Ditto.
3943         (-mpopcntd): Ditto.
3944         (-mfriz): Ditto.
3945         (-mvsx): Ditto.
3946         (-mno-update): Ditto.
3947         (-mavoid-indexed-addresses): Ditto.
3948         (-mtls-markers): Ditto.
3949         (-msched-epilog): Ditto.
3950         (-msched-prolog): Ditto.
3951         (-maix-struct-return): Ditto.
3952         (-msvr4-struct-return): Ditto.
3953         (-mxl-compat): Ditto.
3954         (-mrecip-precision): Ditto.
3955         (-mfp-in-toc): Ditto.
3956         (-msum-in-toc): Ditto.
3957         (-mvrsave): Ditto.
3958         (-mblock-move-inline-limit=): Ditto.
3959         (-misel): Ditto.
3960         (-mpaired): Ditto.
3961         (-mlongcall): Ditto.
3962         (-mgen-cell-microcode): Ditto.
3963         (-mwarn-cell-microcode): Ditto.
3964         (-mwarn-altivec-long): Ditto.
3965         (-mprioritize-restricted-insns=): Ditto.
3966         (-msingle-float): Ditto.
3967         (-mdouble-float): Ditto.
3968         (-msimple-fpu): Ditto.
3969         (-mxilinx-fpu): Ditto.
3970         * config/rs6000/aix64.opt (-mpe): Ditto.
3971
3972         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
3973         (rs6000_cpu): Move variable to be a target variable.  Rename
3974         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
3975         -mdebug=<xxx> variables into a single int.
3976         (rs6000_always_hint): Ditto.
3977         (rs6000_sched_groups): Ditto.
3978         (rs6000_align_branch_targets): Ditto.
3979         (rs6000_sched_costly_dep): Ditto.
3980         (rs6000_sched_insert_nops): Ditto.
3981         (rs6000_long_double_type_size): Ditto.
3982         (rs6000_ieeequad): Ditto.
3983         (rs6000_altivec_abi): Ditto.
3984         (rs6000_spe): Ditto.
3985         (rs6000_spe_abi): Ditto.
3986         (rs6000_float_gprs): Ditto.
3987         (rs6000_darwin64_abi): Ditto.
3988         (can_override_loop_align): Ditto.
3989         (rs6000_sdata): Ditto.
3990         (rs6000_tls_size): Ditto.
3991         (rs6000_current_abi): Ditto.
3992         (rs6000_traceback): Ditto.
3993         (rs6000_alignment_flags): Ditto.
3994         (rs6000_current_cmodel): Ditto.
3995         (rs6000_recip_control): Ditto.
3996         (rs6000_cpu_index): Ditto.
3997         (rs6000_tune_index): Ditto.
3998         (rs6000_debug): Ditto.
3999         (rs6000_target_flags_explict): Ditto.
4000
4001         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
4002         declaration.
4003
4004         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
4005         cmodel.  Change all uses.
4006
4007         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
4008         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
4009         Rename cmodel to rs6000_current_cmodel.
4010         (rs6000_sched_groups): Ditto.
4011         (rs6000_align_branch_targets): Ditto.
4012         (rs6000_sched_costly_dep): Ditto.
4013         (rs6000_sched_insert_nops): Ditto.
4014         (rs6000_long_double_type_size): Ditto.
4015         (rs6000_ieeequad): Ditto.
4016         (rs6000_altivec_abi): Ditto.
4017         (rs6000_spe): Ditto.
4018         (rs6000_spe_abi): Ditto.
4019         (rs6000_float_gprs): Ditto.
4020         (rs6000_darwin64_abi): Ditto.
4021         (can_override_loop_align): Ditto.
4022         (rs6000_sdata): Ditto.
4023         (rs6000_tls_size): Ditto.
4024         (rs6000_current_abi): Ditto.
4025         (rs6000_traceback): Ditto.
4026         (rs6000_alignment_flags): Ditto.
4027         (rs6000_current_cmodel): Ditto.
4028         (rs6000_recip_control): Ditto.
4029         (rs6000_cpu_index): Ditto.
4030         (rs6000_tune_index): Ditto.
4031         (rs6000_debug): Ditto.
4032         (rs6000_target_flags_explict): Ditto.
4033         (rs6000_sched_insert_nops_str): Make static.
4034         (rs6000_sched_costly_dep_str): Ditto.
4035         (rs6000_recip_name): Ditto.
4036         (rs6000_abi_name): Ditto.
4037         (rs6000_sdata_name): Ditto.
4038         (enum rs6000_traceback_name): Move to rs6000-opts.h.
4039         (rs6000_parse_tls_size_option): Delete.
4040         (rs6000_valid_attribute_p): New function for target attributes and
4041         pragmas.
4042         (rs6000_function_specific_save): Ditto.
4043         (rs6000_function_specific_restore): Ditto.
4044         (rs6000_function_specific_print): Ditto.
4045         (rs6000_can_inline_p): Ditto.
4046         (rs6000_set_current_function): Ditto.
4047         (rs6000_inner_target_options): Ditto.
4048         (rs6000_debug_target_options): Ditto.
4049         (rs6000_pragma_target_parse): Ditto.
4050         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
4051         attributes and pragmas.
4052         (TARGET_OPTION_SAVE): Ditto.
4053         (TARGET_OPTION_RESTORE): Ditto.
4054         (TARGET_OPTION_PRINT): Ditto.
4055         (TARGET_CAN_INLINE_P): Ditto.
4056         (TARGET_SET_CURRENT_FUNCTION): Ditto.
4057         (POWER_MASKS): Move to file level scope from the
4058         rs6000_option_override_internal function.
4059         (POWERPC_MASKS): Ditto.
4060         (ISA_*_MASKS): Ditto.
4061         (struct rs6000_ptt): Ditto.
4062         (processor_target_table): Ditto.
4063         (rs6000_cpu_name_lookup): Map cpu name to an index in
4064         processor_target_table.
4065         (rs6000_debug_reg_global): Print more information on processor
4066         options for -mdebug=reg.
4067         (rs6000_init_hard_regno_mode_ok): Add support for target
4068         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
4069         Allow -mdebug=val1,val2.  Rename cmodel variable.
4070         (rs6000_option_override_internal): Ditto.
4071         (rs6000_option_override): Ditto.
4072         (rs6000_handle_option): Ditto.
4073         (rs6000_conditional_register_usage): Add debug trace message.
4074         (struct rs6000_opt_mask): New for target attribute/pragma support.
4075         (rs6000_opt_masks): Ditto.
4076         (struct rs6000_opt_var): Ditto.
4077         (rs6000_opt_vars): Ditto.
4078         (rs6000_previous_function): Ditto.
4079
4080         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
4081         wasn't already included.
4082         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
4083         (enum processor_type): Ditto.
4084         (rs6000_cpu): Ditto.
4085         (enum fpu_type_t): Ditto.
4086         (fpu_type): Ditto.
4087         (enum rs6000_dependence_cost): Ditto.
4088         (enum rs6000_nop_insertion): Ditto.
4089         (enum group_termination): Ditto.
4090         (rs6000_long_double_type_size): Ditto.
4091         (rs6000_ieeequad): Ditto.
4092         (rs6000_altivec_abi): Ditto.
4093         (rs6000_spe_abi): Ditto.
4094         (rs6000_spe): Ditto.
4095         (rs6000_float_gprs): Ditto.
4096         (rs6000_alignment_flags): Ditto.
4097         (rs6000_sched_insert_nops): Ditto.
4098         (enum rs6000_vector): Ditto.
4099         (enum rs6000_abi): Ditto.
4100         (rs6000_current_opt): Ditto.
4101         (rs6000_debug_*): Delete.
4102         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
4103         (TARGET_DEBUG*): Ditto.
4104
4105         * config/rs6000/rs6000-opts.h: New header file to define the enums
4106         that are used in target variables that are now defined in rs6000.opt.
4107
4108         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
4109         rs6000-opts.h.
4110         (rs6000_sdata): Ditto.
4111         (rs6000_abi_name): Delete.
4112         (rs6000_sdata_name): Ditto.
4113         (rs6000_tls_size_string): Ditto.
4114
4115 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
4116
4117         * common.opt (debug_struct_ordinary, debug_struct_generic): New
4118         Variable entries.
4119         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
4120         should_emit_struct_debug): Move from opts.c.
4121         * flag-types.h (enum debug_struct_file): Move from opts.c.
4122         * flags.h (should_emit_struct_debug): Remove.
4123         (base_of_path): Declare.
4124         (set_struct_debug_option): Add gcc_options parameter.
4125         * optc-gen.awk, opth-gen.awk: Handle array variables.
4126         * opts.c (enum debug_struct_file, debug_struct_ordinary,
4127         debug_struct_generic): Remove.
4128         (set_struct_debug_option): Add gcc_options parameter.
4129         (base_of_path): Remove static.
4130         (main_input_basename, main_input_baselength, matches_main_base,
4131         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
4132         Remove.
4133         * toplev.c (main_input_basename, main_input_baselength): Define
4134         here.
4135         * toplev.h (main_input_basename, main_input_baselength): Declare
4136         here.
4137
4138 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
4139
4140         * common.opt (flag_instrument_functions_exclude_functions,
4141         flag_instrument_functions_exclude_files): New Variable definitions.
4142         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
4143         * gimplify.c (char_p): Declare type and vectors.
4144         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
4145         * opts.c (flag_instrument_functions_exclude_functions,
4146         flag_instrument_functions_exclude_files): Remove.
4147         (add_comma_separated_to_vector): Take void **.
4148         (flag_instrument_functions_exclude_p): Move to gimplify.c.
4149         (common_handle_option): Use options structure for
4150         -finstrument-functions-exclude- options.
4151
4152 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
4153
4154         * doc/options.texi (Var): Document effects of Defer.
4155         (Defer): Document.
4156         * opt-functions.awk (var_type, var_set): Handle deferred options.
4157         * opts-common.c (set_option): Handle CLVC_DEFER.
4158         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
4159         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
4160         fstack-limit-symbol=): Mark as deferred.
4161         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
4162         plugin.h.
4163         (print_filtered_help): Don't report state of CLVC_DEFER options.
4164         (common_handle_option): Move code for OPT_fcall_used_,
4165         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
4166         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
4167         OPT_fstack_limit_symbol_ to opts-global.c.
4168         (option_enabled, get_option_state): Handle CLVC_DEFER.
4169         * opts.h: Include vec.h.
4170         (enum cl_var_type): Add CLVC_DEFER.
4171         (cl_deferred_option): Define type and vectors.
4172         (handle_common_deferred_options): Declare.
4173         * opts-global.c: New.
4174         * toplev.c (toplev_main): Call handle_common_deferred_options
4175         * Makefile.in (OPTS_H): Include $(VEC_H).
4176         (OBJS-common): Include opts-global.o.
4177         (opts.o): Update dependencies.
4178         (opts-global.o): Add dependencies.
4179
4180 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
4181
4182         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
4183         to objc_declare_protocols.
4184
4185 2010-11-19  Richard Guenther  <rguenther@suse.de>
4186
4187         PR lto/45789
4188         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
4189         IDENTIFIERs do not stream TREE_TYPE.
4190         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
4191
4192 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
4193
4194         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
4195
4196 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
4197
4198         PR target/45870
4199         * dwarf2out.c (const_ok_for_output_1): Don't complain about
4200         non-delegitimized TLS UNSPECs.
4201
4202 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
4203             Ian Lance Taylor  <iant@google.com>
4204
4205         * config/darwin-c.c (darwin_additional_format_types): Export.
4206
4207 2010-11-18  Paul Koning  <ni1d@arrl.net>
4208
4209         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
4210         pointer.
4211
4212 2010-11-18  Paul Koning  <ni1d@arrl.net>
4213
4214         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
4215         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
4216         * config/pdp11/pdp11.opt (-mabshi): Delete.
4217
4218 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
4219
4220         * resource.h (struct resources): Fix typo in the comment.
4221
4222 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
4223
4224         PR target/46546
4225         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
4226
4227 2010-11-18  Richard Henderson  <rth@redhat.com>
4228
4229         PR middle-end/46515
4230         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
4231         maybe_copy_epilogue_insn; handle prologue insns as well.
4232         * rtl.h, cfglayout.c: Update for rename.
4233         * recog.c (peep2_attempt): Copy prologue/epilogue data for
4234         RTX_FRAME_RELATED_P insns.
4235
4236 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
4237
4238         PR middle-end/46534
4239         * builtins.c (fold_builtin_printf): Don't copy and modify string
4240         before build_string_literal, instead modify what
4241         build_string_literal returned.
4242
4243 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
4244
4245         PR c/33193
4246         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
4247         REALPART_EXPR and IMAGPART_EXPR.
4248
4249 2010-11-18  Richard Guenther  <rguenther@suse.de>
4250
4251         PR tree-optimization/46172
4252         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
4253         function.
4254         (slpeel_tree_peel_loop_to_edge): Call it.
4255
4256 2010-11-18  Jeff Law  <law@redhat.com>
4257
4258         PR middle-end-optimization/46297
4259         * postreload.c (reload_combine_note_store): Deal with embedded
4260         side effects in MEM expressions.
4261
4262 2010-11-18  Richard Guenther  <rguenther@suse.de>
4263
4264         PR lto/45089
4265         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
4266         when checking is not enabled.
4267
4268 2010-11-18  Richard Guenther  <rguenther@suse.de>
4269
4270         PR lto/46525
4271         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
4272         type leaders.
4273         (gimple_register_canonical_type): Also cache the canoncial type
4274         for non type leaders.
4275
4276 2010-11-18  Richard Guenther  <rguenther@suse.de>
4277
4278         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
4279
4280 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
4281
4282         PR middle-end/46518
4283         * sel-sched-ir.c (init_expr): Use the correct type for
4284         target_available.
4285         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
4286
4287 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
4288
4289         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
4290         as well as -mrelocatable at the same time.
4291
4292 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
4293
4294         PR target/46422
4295         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
4296         Call the clz builtin.
4297
4298 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
4299             Steve Ellcey  <sje@cup.hp.com>
4300
4301         PR middle-end/31490
4302         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
4303         if section attribute used.
4304
4305 2010-11-17  Jan Hubicka  <jh@suse.cz>
4306
4307         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
4308         expand errno setting variant when optimizing for size.
4309
4310 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
4311
4312         * postreload.c (reload_combine): Call control_flow_insn_p only once.
4313         Reverse backward loop.  Fix formatting issues.
4314
4315 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
4316
4317         * c-parser.c (c_token_is_qualifier,
4318         c_parser_next_token_is_qualifier): New.
4319         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
4320         Improve error message on specs->tagdef_seen_p.
4321         (c_parser_struct_or_union_specifier): Improve error recovery.
4322         (c_parser_declspecs): Move exit condition on C_ID_ID early.
4323         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
4324         using c_parser_next_token_is_qualifier; extend it to cover
4325         a ctsk_tagdef typespec and !typespec_ok in general.
4326
4327 2010-11-17  Richard Guenther  <rguenther@suse.de>
4328
4329         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
4330         (gimple_mod_pow2_value_transform): Likewise.
4331         (gimple_mod_subtract_transform): Likewise.
4332
4333 2010-11-17  Richard Guenther  <rguenther@suse.de>
4334
4335         PR lto/46504
4336         * gimple.c (gimple_register_canonical_type): Make sure to only
4337         make type leaders canonical types.
4338
4339 2010-11-17  Michael Matz  <matz@suse.de>
4340
4341         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
4342         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
4343         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
4344         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
4345         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
4346         (pass_build_ssa): ... but here.
4347         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
4348         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
4349         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
4350         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
4351         * predict.c (rebuild_frequencies): Ditto.
4352         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
4353         * emit-rtl.c (verify_rtl_sharing): Ditto.
4354         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
4355         * tree-ssa-live.c (remove_unused_locals): Ditto.
4356         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
4357         * tree-ssa.c (pass_early_warn_uninitialized,
4358         execute_update_addresses_taken, pass_update_address_taken): Ditto.
4359         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
4360         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
4361         * passes.c (pass_postreload, execute_todo): Ditto.
4362         * tree-ssanames.c (pass_release_ssa_names): Ditto.
4363
4364 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
4365
4366         * doc/invoke.texi (-dy): Remove.
4367         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
4368         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
4369         * langhooks.c (lhd_do_nothing_i): Remove.
4370         * langhooks.h (lang_hooks.parse_file): Take no arguments.
4371         * toplev.c (set_yydebug): Remove.
4372         (compile_file): Update call to lang_hooks.parse_file.
4373         (decode_d_option): Don't handle -dy.
4374
4375 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
4376
4377         PR rtl-optimization/46440
4378         * combine.c (update_cfg_for_uncondjump): When changing
4379         an indirect jump into unconditional jump, remove BARRIERs
4380         from bb's footer.
4381
4382 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
4383
4384         * opts.c (target_handle_option): Do not assert that loc ==
4385         UNKNOWN_LOCATION.
4386
4387 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
4388             Richard Guenther  <rguenther@suse.de>
4389
4390         PR middle-end/45838
4391         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4392         call_may_clobber_ref_p_1): Return true for __sync_* and some
4393         OpenMP builtins that act as threading barriers.
4394
4395 2010-11-17  Richard Guenther  <rguenther@suse.de>
4396
4397         PR tree-optimization/46498
4398         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
4399
4400 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4401
4402         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
4403         (xtensa_function_arg_boundary): ...this.
4404         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
4405         thinko in declaration.
4406         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
4407         number of parameters to picochip_function_arg_boundary.
4408         (picochip_arg_advance): Likewise.
4409
4410 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4411
4412         PR target/46512
4413         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
4414         under check for type.
4415
4416 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4417
4418         * ifcvt.c (dead_or_predicable): Fix typo.
4419
4420 2010-11-16  Richard Henderson  <rth@redhat.com>
4421
4422         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
4423         * config/s390/s390.opt (mfused-madd): Remove.
4424         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
4425         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
4426         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
4427         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
4428
4429 2010-11-16  Richard Henderson  <rth@redhat.com>
4430
4431         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
4432         * config/rs6000/rs6000.opt (mfused-madd): Remove.
4433         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
4434         (*altivec_vmaddfp_1): Remove.
4435         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
4436         (altivec_mulv4sf3): Expand to FMA directly.
4437         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
4438         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
4439         * config/rs6000/paired.md (paired_madds0): Use FMA.
4440         (paired_madds1): Likewise.
4441         (*paired_madd): Rename from paired_madd; use FMA.
4442         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
4443         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
4444         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
4445         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
4446         (rs6000_emit_madd): Use fma_optab.
4447         (rs6000_emit_msub): Use fms_optab.
4448         (rs6000_emit_nmsub): Expand the FMA pattern directly.
4449         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
4450         (*fmasf4_fpr): Rename from fmasf4_fpr.
4451         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
4452         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
4453         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
4454         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
4455         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
4456         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
4457         (*fmadf4_fpr): Rename from fmadf4_fpr.
4458         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
4459         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
4460         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
4461         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
4462         (fmasf4, fmadf4): Macroize into...
4463         (fma<FMA_F>4): ... here.
4464         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
4465         (nfma<FMA_F>4, nfms<FMA_F>4): New.
4466         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
4467         TARGET_FUSED_MADD.
4468         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
4469         (*vsx_fmadd<mode>4_1): Remove.
4470         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
4471         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
4472         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
4473         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
4474         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
4475         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
4476         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
4477
4478 2010-11-16  Richard Henderson  <rth@redhat.com>
4479
4480         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
4481         (fmasf4, fnmadf4, fnmasf4): Likewise.
4482         (unnamed plus+mult insns and splitters): Delete.
4483
4484 2010-11-16  Richard Henderson  <rth@redhat.com>
4485
4486         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
4487         (fnma<VSF>4): Rename from fnms_<VSF>.
4488         (fms<VSF>4): Rename from fms_<VSF>.
4489         (fma<VDF>4): Rename from fma_<VDF>.
4490         (fms<VDF>4): Rename from fms_<VDF>.
4491         (nfma<VDF>4): Rename from fnma_<VDF>.
4492         (nfms<VDF>4): Rename from fnms_<VDF>.
4493         (fnma<VDF>4, fnms<VDF>4): New expanders.
4494         (floatunsdisf2): Update for the renames.
4495         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
4496         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
4497
4498 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4499
4500         PR rtl-optimization/46490
4501         * combine.c (expand_compound_operation): Fix thinko.
4502
4503 2010-11-16  Richard Henderson  <rth@redhat.com>
4504
4505         PR target/46470
4506         * recog.c (peep2_attempt): Convert frame-related info when possible.
4507         (peep2_fill_buffer): Allow frame-related insns into the buffer.
4508         (peephole2_optimize): Allow peep2_attempt to fail.
4509
4510 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4511
4512         PR rtl-optimization/46315
4513         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
4514         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
4515         extracted from...
4516         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
4517         (remove_reg_equal_equiv_notes_for_defs): ...this.
4518         (delete_unmarked_insns): Adjust to above renaming.
4519         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
4520         referring to registers set in the insns being moved, if any.
4521
4522         * df-core.c (df_ref_dump): New function extracted from...
4523         (df_refs_chain_dump): ...here.  Call it.
4524         (df_regs_chain_dump): Likewise.
4525         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
4526         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
4527
4528 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
4529
4530         PR rtl-optimization/46395
4531         * postreload.c (reload_combine): Invalidate register use
4532         information on all control flow insns.
4533
4534         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
4535         LABEL_REF in UNSPEC operand.
4536
4537 2010-11-16  Jan Hubicka  <jh@suse.cz>
4538
4539         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
4540         when !flag_toplevel_reorder do not remove unless variable is
4541         COMDAT or ARTIFICIAL.
4542         * ipa.c (varpool_can_remove_if_no_refs): ... here.
4543         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
4544         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
4545         * varpool.c (decide_is_variable_needed): Do not handle visibility
4546         issues.
4547         (varpool_finalize_decl): Likewise.
4548         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
4549         update outdated comment on DECL_RTL_SET_P check.
4550
4551 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4552
4553         * config/sol2.h (NM_FLAGS): Define.
4554         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
4555         * doc/tm.texi: Update.
4556
4557 2010-11-16  Nick Clifton  <nickc@redhat.com>
4558
4559         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
4560         (msubsf4): Rename to fmssf4, and use fma.
4561         (nmaddsf4): Rename to fnmasf4 and use fma.
4562         (nmsubsf4): Rename to fnmssf4 and use fma.
4563
4564 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
4565
4566         PR target/44762
4567         * config/score/score3.c (score3_return_in_memory): Constify arguments.
4568         (score3_in_small_data_p, score3_function_value): Likewise.
4569         (score3_trampoline_init): Use LCT_NORMAL.
4570         (score3_print_operand): Initialize code as UNKNOWN.
4571         * config/score/predicates.md (score_load_multiple_operation):
4572         Remove unused variable.
4573         (score_store_multiple_operation): Likewise.
4574         * config/score/score7.c (score7_return_in_memory): Constify arguments.
4575         (score7_in_small_data_p, score7_function_value): Likewise.
4576         (score7_trampoline_init): Use LCT_NORMAL.
4577         (score7_print_operand): Initialize code as UNKNOWN.
4578         * config/score/score3.h (score3_return_in_memory): Update prototype.
4579         (score3_in_small_data_p, score3_function_value): Likewise.
4580         * config/score/score-protos.h (score_function_value): Likewise.
4581         * config/score/score7.h (score7_return_in_memory): Update prototype.
4582         (score7_in_small_data_p, score7_function_value): Likewise.
4583         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
4584         (score_return_in_memory, score_pass_by_reference): Constify arguments.
4585         (score_output_mi_thunk, score_function_prologue): Don't return a value.
4586         (score_function_epilogue, score_in_small_data_p): Likewise.
4587         (score_option_override, score_asm_trampoline_template): Likewise.
4588         (score_trampoline_init, score_print_operand): Likewise.
4589         (score_print_operand_address, score_prologue): Likewise.
4590         (score_epilogue, score_call, score_call_value): Likewise.
4591         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
4592         (score_function_arg_advance): Likewise. Make static.
4593         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
4594         (score_function_arg, score_legitimate_address_p): Make static.
4595         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
4596         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
4597         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
4598         Allow (W) == HOST_BITS_PER_WIDE_INT.
4599
4600         PR java/46386
4601         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
4602         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
4603
4604 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4605
4606         * config/arc/arc.c: Delete pasto.
4607         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
4608
4609 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
4610
4611         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
4612         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
4613         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
4614         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4615         (mn10300_preferred_reload_class,
4616         mn10300_preferred_output_reload_class): New functions.
4617
4618 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4619
4620         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
4621         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
4622         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
4623         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
4624
4625 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4626
4627         * builtins.c (std_gimplify_va_arg_expr): Use
4628         targetm.calls.function_arg_boundary.
4629         * function.c (assign_parms, locate_and_pad_parm): Likewise.
4630         * calls.c (struct arg_data): Update comment.
4631         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
4632         * target.def (function_arg_boundary): Define.
4633         * targhooks.h (default_function_arg_boundary): Declare.
4634         * targhooks.c (default_function_arg_boundary): Define.
4635         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
4636         TARGET_FUNCTION_ARG_BOUNDARY.
4637         (FUNCTION_ARG_BOUNDARY): Delete.
4638         (TARGET_FUNCTION_ARG_BOUNDARY): New.
4639         * doc/tm.texi: Regenerate.
4640         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
4641         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
4642         * config/arc/arc.c (arc_function_arg_boundary): Define.
4643         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4644         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
4645         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
4646         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
4647         (arm_function_arg_boundary): Define.
4648         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4649         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
4650         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
4651         * config/frv/frv.c (frv_function_arg_boundary): Make static.
4652         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4653         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
4654         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
4655         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
4656         (ix86_compat_function_arg_boundary): Take and return unsigned int.
4657         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4658         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
4659         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
4660         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
4661         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4662         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
4663         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
4664         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4665         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
4666         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
4667         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
4668         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4669         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
4670         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
4671         * config/mips/mips.c (mips_function_arg_boundary): Make static.
4672         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4673         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
4674         * config/pa/pa.c (pa_function_arg_boundary): Define.
4675         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4676         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
4677         * config/picochip/picochip-protos.h
4678         (picochip_get_function_arg_boundary): Delete.
4679         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
4680         Rename to...
4681         (picochip_function_arg_boundary): ...this.  Make static.
4682         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
4683         (picochip_arg_advance): Adjust.
4684         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4685         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
4686         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
4687         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
4688         (rs6000_function_arg_boundary): ...this.  Make static.
4689         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
4690         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4691         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
4692         * config/rx/rx.c (rx_function_arg_boundary): Define.
4693         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4694         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
4695         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
4696         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4697         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
4698         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
4699         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
4700         (xtensa_function_arg_boundary): ...this.  Make static.
4701         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4702
4703 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4704
4705         * expr.c (alignment_for_piecewise_move): New function.
4706         (widest_int_mode_for_size): New function.
4707         (move_by_pieces, move_by_pieces_ninsns): Call them.
4708         (can_store_by_pieces, store_by_pieces_1): Likewise.
4709
4710 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4711
4712         * gcc.c (char_p): Define.  Define a VEC of it.
4713         (n_linker_options, n_assembler_options, n_preprocessor_options):
4714         Delete.
4715         (linker_options, assembler_options, preprocessor_options): Convert
4716         to a VEC.
4717         (add_preprocessor_option): Adjust.
4718         (add_assembler_option): Adjust.
4719         (add_linker_option): Adjust.
4720         (do_specs_vec): New function.
4721         (do_spec_1): Call it.  Adjust for new types.
4722
4723 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4724
4725         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
4726         (sreal.o, statistics.o, stringpool.o): Likewise.
4727
4728 2010-11-16  Richard Guenther  <rguenther@suse.de>
4729
4730         PR tree-optimization/44545
4731         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
4732         statements are not reassociatable.
4733         (reassociate_bb): Likewise.
4734
4735 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4736
4737         * bitmap.c: Delete unnecessary includes.
4738         * ebitmap.c: Likewise.
4739         * et-forest.c: Likewise.
4740         * sreal.c: Likewise.
4741         * statistics.c: Likewise.
4742         * stringpool.c: Likewise.
4743         * double-int.c: Add comment for inclusion of tm.h.
4744
4745 2010-11-16  Richard Guenther  <rguenther@suse.de>
4746
4747         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
4748         (visit_nary_op): ... this.
4749         (visit_binary_op): Remove.
4750         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
4751
4752 2010-11-16  Richard Guenther  <rguenther@suse.de>
4753
4754         PR middle-end/45172
4755         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
4756
4757 2010-11-16  Nick Clifton  <nickc@redhat.com>
4758
4759         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
4760         record is packed.
4761
4762 2010-11-15  Richard Henderson  <rth@redhat.com>
4763
4764         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
4765         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
4766         DOT_PROD_EXPR.
4767
4768 2010-11-15  Richard Henderson  <rth@redhat.com>
4769
4770         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
4771         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
4772         fma rtx_code.
4773
4774 2010-11-15  Richard Henderson  <rth@redhat.com>
4775
4776         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
4777         and *mulsubsf4 respectively.  Use fma rtx_code.
4778
4779 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
4780
4781         * gcc.c: Include "vec.h".
4782         (argbuf): Make into a VEC.
4783         (argbuf_length, argbuf_index): Remove.
4784         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
4785         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
4786         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
4787         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
4788         (gcc.o): Depend on $(VEC_H).
4789
4790 2010-11-15  Richard Henderson  <rth@redhat.com>
4791
4792         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
4793         via FMA if unsafe math.
4794         (insert_var_expansion_initialization): Handle FMA.
4795         (combine_var_copies_in_loop_exit): Likewise.
4796
4797 2010-11-15  Richard Henderson  <rth@redhat.com>
4798
4799         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
4800         * config/ia64/ia64.opt: Remove mfused-madd.
4801         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
4802         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
4803         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
4804         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
4805         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
4806         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
4807         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
4808         (fmav2sf4): Rename from fpma; use FMA code.
4809         (fmsv2sf4): Rename from fpms; use FMA code.
4810         (fnmav2sf4): Rename from *fpnma; use FMA code.
4811         * config/ia64/ia64.md (MODE_SDF): New iterator.
4812         (suffix): New mode attribute.
4813         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
4814         (fmssf4): Rename from *fmssf4.
4815         (fnmasf4): Rename from *nfmasf4.
4816         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
4817         (*nmadddf4, *nmadddf4_truncsf): Remove.
4818         (fmsdf4): Rename from *fmsdf4.
4819         (fnmadf4): Rename from *nfmadf4.
4820         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
4821         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
4822         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
4823         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
4824         (fmsxf4): Rename from *fmsxf4.
4825         (fnmaxf4): Rename from *nfmaxf4.
4826         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
4827         (*fnmaxf_trunc_<MODE_SDF>): New.
4828
4829 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
4830
4831         PR tree-optimization/46461
4832         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
4833         a gimple val.
4834
4835 2010-11-15  Ian Lance Taylor  <iant@google.com>
4836
4837         * godump.c: New file.
4838         * common.opt (fdump-go-spec=): New option.
4839         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
4840         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
4841         (TYPE_SYMTAB_IS_DIE): Define.
4842         (struct tree_type): Change GTY for symtab field to use
4843         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
4844         to pick the union field.
4845         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
4846         (dump_go_spec_init): Declare.
4847         * toplev.c (process_options): Handle flag_dump_go_spec.
4848         * debug.c: Include "tree.h".
4849         (do_nothing_debug_hooks): Set tree_type_symtab_field.
4850         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
4851         * dbxout.c (dbx_debug_hooks): Likewise.
4852         (xcoff_debug_hooks): Likewise.
4853         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
4854         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
4855         SDB_DEBUGGING_INFO is not defined.
4856         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
4857         (Overall Options): Document -fdump-go-spec.
4858         * Makefile.in (OBJS-common): Add godump.o.
4859         (debug.o): Add dependency on $(TREE_H).
4860         (godump.o): New target.
4861         (GTFILES): Add $(srcdir)/godump.c.
4862
4863 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
4864
4865         PR debug/46095
4866         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
4867         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
4868         style < 0, add REG_FRAME_RELATED_EXPR.
4869
4870         PR debug/46387
4871         * rtl.h (vt_equate_reg_base_value): New prototype.
4872         * alias.c (vt_equate_reg_base_value): New function.
4873         * var-tracking.c (vt_init_cfa_base): Use it.
4874
4875 2010-11-15  Jan Hubicka  <jh@suse.cz>
4876             Diego Novillo  <dnovillo@google.com>
4877
4878         PR lto/41528
4879         * doc/lto.texi: Add.
4880         * doc/gccint.texi: Add reference to lto.texi.
4881         * doc/invoke.texi: Update user documentation for LTO.
4882         Move internal flags to lto.texi
4883
4884 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
4885
4886         * c-typeck.c (build_unary_op): Use
4887         objc_build_incr_expr_for_property_ref to build the pre/post
4888         increment/decrement of an Objective-C property ref, and skip the
4889         lvalue_or_else check in that case.
4890
4891 2010-11-15  Martin Jambor  <mjambor@suse.cz>
4892
4893         PR tree-optimization/46349
4894         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
4895         (contains_vce_or_bfcref_p): Likewise.
4896         (sra_modify_assign): Use them.
4897
4898 2010-11-15  Richard Guenther  <rguenther@suse.de>
4899
4900         PR tree-optimization/46467
4901         * tree-ssa-structalias.c (do_structure_copy): Properly treat
4902         variables without subvars.
4903
4904 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
4905
4906         * config/picochip/picochip.c (file header): Picochip name change.
4907         * config/picochip/picochip.md (file header): Likewise.
4908         * config/picochip/predicates.md (file header): Likewise.
4909         * config/picochip/dfa_space.md (file header): Likewise.
4910         * config/picochip/dfa_speed.md (file header): Likewise.
4911         * config/picochip/picochip.h(file header): Likewise.
4912         * config/picochip/constraints.md (file header): Likewise.
4913         * config/picochip/picochip-protos.h (file header): Likewise.
4914         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
4915         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
4916         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
4917         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
4918         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
4919         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
4920         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
4921         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
4922         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
4923         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
4924         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
4925         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
4926         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
4927         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
4928
4929 2010-11-15  Richard Guenther  <rguenther@suse.de>
4930
4931         PR bootstrap/46474
4932         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
4933
4934 2010-11-15  Nick Clifton  <nickc@redhat.com>
4935
4936         * config/stormy16/stormy16.c (direct_return): Do not generate a
4937         direct return for interrupt handlers.
4938
4939 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
4940
4941         * Makefile.in (tm.texi): Replace with rule for:
4942         ($(srcdir)/doc/tm.texi).
4943         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
4944         $(srcdir)/doc/tm.texi .
4945         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
4946         tm.texi .
4947
4948         PR target/46427
4949         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
4950
4951         PR bootstrap/45444
4952         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
4953         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
4954
4955         PR target/46432
4956         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
4957
4958 2010-11-15  Richard Guenther  <rguenther@suse.de>
4959
4960         PR lto/44150
4961         * lto-opts.c (lto_write_options): Write -fexceptions even if
4962         not set by the user.
4963
4964 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
4965
4966         PR c/46462
4967         * c-decl.c (declspecs_add_type): Make variables with error types
4968         integers.
4969         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
4970         do not start a declaration before an Objective-C foreach.
4971         (c_parser_declaration_or_fndef): Improve recovery after unknown
4972         type name.
4973         (c_parser_for_statement): Hoist entrance of "foreach context"
4974         before ifs, add corresponding reset where it was missing.  Do
4975         not set objc_could_be_foreach_context for C.
4976
4977 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
4978
4979         PR tree-optimization/45722
4980         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
4981         this is a reference to a component.
4982         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
4983         (ipa_note_param_call): Adjust comment.
4984
4985 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
4986
4987         * config/mips/mips.c (machine_function): Remove
4988         initialized_mips16_gp_pseudo_p.
4989         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
4990         detect whether a pseudo has already been created.  Unconditionally
4991         create a new one if not.
4992         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
4993         expanding to rtl.  Create a new pseudo otherwise, if allowed.
4994
4995 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
4996
4997         PR target/43440
4998         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
4999         * tm.texi: Regenerated.
5000         * output.h (decode_reg_name_and_count): Declare.
5001         * varasm.c (decode_reg_name_and_count): New function.
5002         (decode_reg_name): Reimplement using decode_reg_name_and_count.
5003         * reginfo.c (fix_register): Use decode_reg_name_and_count and
5004         iterate over all regs used.
5005         * stmt.c (expand_asm_operands): Likewise.
5006         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
5007         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
5008         multiple machine registers.
5009
5010 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
5011
5012         * stor-layout.c (place_union_field): Do not put location information
5013         on offset expressions.
5014         (place_field): Likewise.
5015         (finalize_record_size): Likewise on size expressions.
5016         (finalize_type_size): Likewise.
5017         (layout_type): Likewise.
5018
5019 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
5020
5021         PR debug/42889
5022         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
5023         * df-core.c (df_set_bb_dirty_nonrl): Remove.
5024         * df.h (df_set_bb_dirty_nonlr): Likewise.
5025
5026 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
5027
5028         * config/mips/mips.md (call_internal): Pass curr_insn to
5029         mips_split_call.
5030         (call_internal_direct): Ditto.
5031         (call_value_internal): Ditto.
5032         (call_value_internal_direct): Ditto.
5033         (call_value_multiple_internal): Ditto.
5034         * config/mips/mips.c (mips_split_call): Do not copy
5035         CALL_INSN_FUNCTION_USAGE here.
5036
5037 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
5038
5039         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
5040         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
5041         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
5042         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
5043         (TUNE_LOONGSON_3A): Define.
5044         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
5045         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
5046         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
5047         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
5048         (mips_rtx_cost_data): Add Loongson-3A.
5049
5050 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
5051
5052         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
5053         switches.
5054
5055 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
5056
5057         * dwarf2out.c (macinfo_entry): New struct.
5058         (output_comp_unit): Emit the section start label here and flag that we
5059         will emit an info section.
5060         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
5061         emitting directly.
5062         (dwarf2out_end_source_file): Likewise.
5063         (dwarf2out_define): Likewise.
5064         (dwarf2out_undef): Likewise.
5065         (output_macinfo): New.
5066         (dwarf2out_init): Do not emit debug section switches here, allocate a
5067         vec for macinfo, when required.
5068         (dwarf2out_finish): First switch to debug_abbrev_section here.
5069         debug_line_section,  debug_macinfo_section, Likewise.
5070         Check that the pubtypes table has at least one unpruned entry before
5071         trying to emit it.
5072
5073 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
5074
5075         PR c/20385
5076         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
5077         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
5078         token lookahead.
5079         (c_parser_compound_statement_nostart, c_parser_label,
5080         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
5081         (c_parser_declaration_or_fndef): Detect the case now matched by
5082         c_parser_next_tokens_start_declaration, give error and correct it.
5083
5084 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
5085
5086         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
5087         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
5088         with typespec_kind.
5089         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
5090         (shadow_tag_warned, check_compound_literal_type): Adjust
5091         uses of tag_defined_p.
5092         (declspecs_add_type): Set typespec_kind.
5093         * c-parser.c (c_parser_declaration_or_fndef,
5094         c_parser_declspecs, c_parser_struct_declaration,
5095         c_parser_parameter_declaration, c_parser_type_name,
5096         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
5097         of type_seen_p.
5098         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
5099         tag_defined_p, pass ctsk_firstref through.
5100
5101 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
5102
5103         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
5104         (struct format_wanted_type): Replace field "name" with "kind", add
5105         "format_start" and "format_length".
5106         (check_format_info_main): Fill in new fields.  Fill in
5107         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
5108         after the final NUL outside the while loop.  Do not include
5109         width and precision modifiers in the format_start/format_length
5110         of the main format.
5111         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
5112         arguments.  Compute WANTED_TYPE first so that format_type_warning
5113         can be called for missing arguments.  Adjust calls to
5114         format_type_warning.
5115         (format_type_warning): Fetch as much information as possible
5116         from format_wanted_type.  Adjust printing now that every
5117         warning has a "descr", as well as for missing argument warnings
5118         and to include % sign for format specifiers.
5119
5120 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
5121
5122         PR rtl-optimization/46204
5123         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
5124         Update all callers.  Do not recompute topological order.  Adjust
5125         fallthrough edges following a degenerate conditional jump.
5126
5127 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
5128
5129         * opts-common.c (control_warning_option): New.
5130         * opts.c (set_default_handlers): New.
5131         (decode_options): Use set_default_handlers and
5132         control_warning_option.
5133         (common_handle_option): Update call to enable_warning_as_error.
5134         (enable_warning_as_error): Take gcc_options parameters.  Use
5135         control_warning_option.
5136         * opts.h (set_default_handlers, control_warning_option): Declare.
5137
5138 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
5139
5140         * Makefile.in (OPTS_H): Define.
5141         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
5142         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
5143         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
5144         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
5145         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
5146         * gcc.c (driver_handle_option): Take location_t parameter.
5147         (process_command, do_self_spec): Update calls to
5148         read_cmdline_option.
5149         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
5150         * langhooks.c (lhd_handle_option): Take location_t parameter.
5151         * langhooks.h (handle_option): Take location_t parameter.
5152         * lto-opts.c (lto_reissue_options): Update call to set_option.
5153         * opts-common.c (handle_option): Make static.  Take location_t
5154         parameter and pass it to other functions.
5155         (handle_generated_option): Take location_t parameter and pass it
5156         to other functions.
5157         (read_cmdline_option): Take location_t parameter and pass it to
5158         other functions.  Use warning_at and error_at.
5159         (set_option): Take location_t parameter and pass it to other
5160         functions.
5161         * opts.c (common_handle_option): Take location_t parameter and
5162         pass it to other functions.
5163         (enable_warning_as_error): Make static.  Take location_t parameter
5164         and pass it to other functions.
5165         (lang_handle_option): Take location_t parameter and pass it to
5166         other functions.
5167         (target_handle_option): Take location_t parameter.
5168         (read_cmdline_options, maybe_default_option,
5169         maybe_default_options, default_options_optimization,
5170         decode_options): Take location_t parameter and pass it to other
5171         functions.
5172         * opts.h: Include input.h.
5173         (struct cl_option_handler_func, decode_options, set_option,
5174         handle_generated_option, read_cmdline_option): Take location_t
5175         parameters.
5176         (handle_option, enable_warning_as_error): Remove.
5177         * toplev.c (toplev_main): Update call to decode_options.
5178
5179 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
5180
5181         * graphite-cloog-util.c (oppose_constraint,
5182         cloog_matrix_to_ppl_constraint,
5183         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
5184         CLooG isl uses unsigned integers.  This triggered a warning.
5185
5186 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
5187
5188         PR target/46438
5189         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
5190         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
5191         (xtensa_function_arg_1): De-constify cum.
5192         (xtensa_expand_prologue): Use add_reg_note.
5193
5194         PR target/46435
5195         * config/cris/cris.c (saved_regs_mentioned): Delete.
5196         (cris_reload_address_legitimized): Cast itype to enum reload_type.
5197         Remove unused variable op0p.
5198         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
5199         (cris_emit_movem_store): Use add_reg_note.
5200
5201         PR bootstrap/46456
5202         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
5203
5204 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
5205
5206         * function.c (expand_function_end): Set the locator of the prologue on
5207         the stack checking insns.
5208
5209 2010-11-12  Richard Henderson  <rth@redhat.com>
5210
5211         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
5212         * config/xtensa/xtensa.opt (mfused-madd): Remove.
5213         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
5214         MASK_FUSED_MADD.
5215         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
5216         (fnmasf4): Rename from mulsubsf3; use fma.
5217
5218 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
5219             Richard Henderson  <rth@redhat.com>
5220
5221         PR target/46428
5222         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
5223         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
5224         comparison.
5225
5226 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
5227
5228         * opts-common.c (decode_cmdline_option): Initialize separate_args.
5229
5230 2010-11-12  Jan Hubicka  <jh@suse.cz>
5231
5232         * doc/invoke.texi (early-inlining-insns): Update default.
5233         * params.def (early-inlining-insns): Default to 10.
5234
5235 2010-11-12  Olivier Hainque  <hainque@adacore.com>
5236
5237         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
5238
5239 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5240
5241         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
5242         (SUPPORTS_INIT_PRIORITY): Define.
5243
5244 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
5245
5246         PR target/46430
5247         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
5248         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
5249         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
5250         (avr_device_to_devicelib): Likewise.
5251         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
5252         into block.
5253         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
5254         (zero_extendhidi2, zero_extendsidi2): Likewise.
5255         * config/avr/avr.c (avr_num_arg_regs): Constify type.
5256         (avr_return_addr_rtx): De-constify tem.
5257         (avr_rotate_bytes): Move declarations to start of block.
5258         Don't use variable length array.  Put nested if/else into block.
5259
5260         PR rtl-optimization/46433
5261         * var-tracking.c: Include tm_p.h .
5262
5263         PR bootstrap/44756
5264         PR build/44767
5265         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
5266         should be unsigned.
5267         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
5268         * doc/tm.texi: Regenerate.
5269
5270         PR target/46412
5271         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
5272         * config/bfin/bfin.c: Include sel-sched.h .
5273         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
5274         (expand_interrupt_handler_prologue): Remove unused variable insn.
5275         (bfin_load_pic_reg): Likewise.
5276         (bfin_rtx_costs): Make code / outer_code variables of type
5277         enum rtx_code, copied from re-named parameters.
5278         (bfin_local_alignment): Change align argument and return type
5279         to unsigned.
5280         (bfin_adjust_cost): Remove unused variable insn_type.
5281         Declare variables at start of block.
5282         (struct loop_info): Rename to...
5283         (struct loop_info_d).
5284         (workaround_rts_anomaly): Change type of icode to int.
5285         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
5286         with int-typed variable.
5287         (note_np_check_stores): Likewise.
5288         (trapping_loads_p): Remove unused variable pat.
5289         (bfin_expand_binop_builtin): Use expand_normal.
5290         (bfin_expand_unop_builtin): Likewise.
5291         (bfin_expand_builtin): Likewise.  Set tmode before use.
5292
5293         PR middle-end/44769
5294         * final.c (split_double): Don't use BITS_PER_WORD directly in
5295         shift count.
5296
5297         PR target/46431
5298         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
5299         assignment.
5300
5301         PR target/46450
5302         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
5303         Use add_reg_note.
5304         (xstormy16_function_arg): Dereference cum.
5305         (xstormy16_expand_builtin): Use expand_normal.
5306         Change type of omode to enum machine_mode.
5307         (combine_bnp): Rename and to and_insn.
5308
5309         PR target/46437
5310         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
5311         localreg.
5312
5313 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
5314
5315         PR debug/46375
5316         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
5317
5318 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
5319
5320         PR lto/46376
5321         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
5322
5323 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
5324
5325         PR c/44782
5326         * common.opt (fmax-errors=): New option.
5327         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
5328         * diagnostic.h (struct diagnostic_context): Add max_errors field.
5329         * diagnostic.c (diagnostic_initialize): Initialize it.
5330         (diagnostic_action_after_output): Exit if more than max_errors
5331         have been output.
5332         * doc/invoke.texi (Warning Options): Add -fmax-errors.
5333         (-fmax-errors): Document.
5334
5335 2010-11-11  Richard Henderson  <rth@redhat.com>
5336
5337         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
5338
5339 2010-11-11  Richard Henderson  <rth@redhat.com>
5340
5341         * config/fused-madd.opt: New file.
5342         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
5343         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
5344         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
5345         * config/i386/i386.opt (mfused-madd): Remove.
5346         * config/i386/sse.md (split_fma): Remove.
5347         (split_fms, split_fnma, split_fnms): Remove.
5348
5349 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
5350
5351         PR target/46088
5352         * config/i386/i386.md (*ashl<mode>3_cconly,
5353         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
5354         change nonimmediate_operand predicate to register_operand.
5355
5356 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
5357
5358         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
5359
5360 2010-11-11  Jan Hubicka  <jh@suse.cz>
5361
5362         * opts.c (finish_options): Do not error on -flto-partition alone.
5363
5364         * doc/invoke.texi (-fwhopr): Merge into -flto section.
5365         (-flto-partition): Document none.
5366         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
5367         * lto-wrapper.c: Update comment.
5368         (run_gcc): Update LTO option parsing.
5369         * opts.c (finish_options): add support -flto-partition=none
5370         (common_handle_option): Remove fwhopr.
5371         * common.opt: Turn fwhopr into flto.
5372         * collect2.c (main): Update option handling.
5373         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
5374         * ipa-split.c (execute_split_functions): Remove flag_whopr.
5375         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
5376         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
5377         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
5378
5379 2010-11-11  Jan Hubicka  <jh@suse.cz>
5380
5381         PR tree-optimize/40436
5382         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
5383         (eliminated_by_inlining_prob): ... this one; return 50% probability
5384         for SRA.
5385         (estimate_function_body_sizes): Update use of
5386         eliminated_by_inlining_prob; estimate static function size
5387         for 2 instructions.
5388
5389 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
5390
5391         PR target/44749
5392         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
5393         declare.  Change type of argument four to type int.
5394         (mep_secondary_input_reload_class): Returns enum reg_class.
5395         (mep_secondary_output_reload_class): Likewise.
5396         (mep_function_value): Change types of arguments to cont_tree.
5397         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
5398         argument four to type int.
5399         (mep_secondary_input_reload_class): Returns enum reg_class.
5400         (mep_secondary_output_reload_class): Likewise.
5401         (mep_function_value): Change types of arguments to cont_tree.
5402         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
5403         mep_regno_reg_class to enum reg_class.
5404
5405 2010-11-11  Richard Henderson  <rth@redhat.com>
5406
5407         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
5408         that the target has the exact fma operation that we matched.
5409
5410 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
5411
5412         * reginfo.c (fix_register): Avoid inserting English word in
5413         diagnostic sentence.  Use %qs for quoting and %'.
5414
5415 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
5416
5417         * config/i386/driver-i386.c (host_detect_local_cpu): Support
5418         Intel processor family 6, model 0x2c.
5419
5420 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
5421
5422         * opts.c (warning_as_error_callback,
5423         register_warning_as_error_callback): Remove.
5424         (enable_warning_as_error): Don't use warning_as_error_callback.
5425         * opts.h (register_warning_as_error_callback): Remove.
5426
5427 2010-11-11  Richard Henderson  <rth@redhat.com>
5428
5429         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
5430         in between the MULT and the PLUS/MINUS.
5431
5432 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
5433
5434         PR middle-end/46388
5435         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
5436         BLKmode mode for it.
5437         (expand_expr_real_1): Similarly for op0.
5438
5439 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5440
5441         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
5442         Document optional target selector.
5443
5444 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
5445
5446         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
5447         assembling high and low parts of size if not using 32-bit HWINT; else
5448         use DECL_SIZE_UNITS, not DECL_SIZE.
5449
5450 2010-11-11  Martin Jambor  <mjambor@suse.cz>
5451
5452         PR tree-optimization/46383
5453         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
5454         offsets.
5455         (compute_complex_ancestor_jump_func): Likewise.
5456         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
5457
5458 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
5459
5460         PR debug/46150
5461         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
5462         true if expr1->hash != expr2->hash.
5463
5464 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5465
5466         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
5467         diagnostics with lowercase letters.
5468         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
5469         lowercase letters.
5470         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
5471         diagnostic.
5472         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5473         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
5474         lowercase letters.
5475         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5476         Remove trailing ' ' from diagnostic.
5477         * config/avr/avr.c (print_operand_address): Start diagnostic with
5478         a lowercase letter and remove trailing '.'.
5479         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
5480         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
5481         with lowercase letters.  Use %' in diagnostics.  Remove trailing
5482         '.' from diagnostics.
5483         (bfin_handle_longcall_attribute): Use %' in diagnostic.
5484         * config/cris/cris.c (cris_split_movdx,
5485         cris_expand_pic_call_address): Start diagnostics with lowercase
5486         letters.
5487         (cris_asm_output_label_ref): Use %' in diagnostic.
5488         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
5489         letter.
5490         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
5491         lowercase letter.
5492         * config/darwin-c.c (version_as_macro): Start diagnostic with a
5493         lowercase letter.
5494         * config/darwin-driver.c (darwin_default_min_version): Use %' in
5495         diagnostic.
5496         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
5497         diagnostic.
5498         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5499         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
5500         diagnostics.
5501         * config/i386/i386.c (ix86_option_override_internal): Write
5502         diagnostic as a single sentence without trailing '.'.  Use %' in
5503         diagnostics.
5504         (ix86_function_sseregparm, classify_argument): Start diagnostics
5505         with lowercase letters.
5506         (ix86_expand_prologue): Use %' in diagnostic.
5507         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
5508         diagnostic.
5509         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
5510         lowercase letter.
5511         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
5512         diagnostic.
5513         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5514         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
5515         '`' in help text.
5516         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
5517         lowercase letter.
5518         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
5519         lowercase letters.
5520         * config/microblaze/microblaze.c (microblaze_handle_option):
5521         Remove trailing '.' from diagnostic.
5522         (print_operand): Start diagnostic with a lowercase letter.
5523         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
5524         lowercase letters.  Avoid '`' in diagnostics.
5525         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
5526         lowercase letters.  Avoid '`' in diagnostics.
5527         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
5528         lowercase letters.  Avoid '`' in diagnostics.
5529         * config/picochip/picochip.c (picochip_option_override,
5530         picochip_emit_save_register, picochip_function_arg,
5531         picochip_output_label, picochip_output_internal_label,
5532         picochip_asm_output_opcode, picochip_output_cbranch,
5533         picochip_output_compare, picochip_output_branch,
5534         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
5535         diagnostics. Start diagnostics with lowercase letters.  Use %' in
5536         diagnostics.
5537         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
5538         "SPE" capitalization.  Start diagnostic with a lowercase letter.
5539         (rs6000_handle_option): Start diagnostics with lowercase letters.
5540         (def_builtin): Remove trailing '.' from diagnostic.
5541         (rs6000_savres_routine_name): Start diagnostic with a lowercase
5542         letter.
5543         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
5544         diagnostic.
5545         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
5546         lowercase letter.
5547         * config/s390/s390.c (s390_option_override) Start diagnostics with
5548         lowercase letters.  Use %' in diagnostic.
5549         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
5550         lowercase letters.
5551         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
5552         diagnostic.
5553         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
5554         diagnostic.
5555         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
5556         diagnostic.
5557         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5558         * config/spu/spu.c (spu_option_override): Start diagnostics with
5559         lowercase letters.  Use %qs for quoting in diagnostics.
5560         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
5561         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
5562         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
5563         from diagnostic.
5564         * convert.c (convert_to_integer, convert_to_vector): Use %' in
5565         diagnostics.
5566         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
5567         letter and use "cannot" spelling.
5568         * expmed.c (extract_fixed_bit_field): Start diagnostic with
5569         lowercase letter and format as a single sentence without '.'.
5570         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
5571         Use %' in diagnostics.
5572         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
5573         Use %' in diagnostics.
5574         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
5575         Use %' in diagnostics.
5576         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
5577         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
5578         with lowercase letters and remove tailing '.' and '\n'.
5579         * lto-cgraph.c (input_profile_summary): Start diagnostic with
5580         lowercase letter and remove trailing '.'.
5581         (input_cgraph): Start diagnostics with lowercase letters and
5582         remove trailing '\n'.
5583         * opts.c (finish_options, common_handle_option): Start diagnostics
5584         with lowercase letters and remove trailing '.'.  Fix typo in
5585         diagnostic.
5586         * passes.c (position_pass): Start diagnostic with lowercase letter.
5587         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
5588         register_callback, try_init_one_plugin): Start diagnostics with
5589         lowercase letters.
5590         * reload1.c (spill_failure): Use %' in diagnostic.
5591         (gen_reload): Start diagnostic with a lowercase letter.
5592         * stor-layout.c (place_field): Start diagnostic with a lowercase
5593         letter.
5594         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
5595         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
5596         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
5597         Start diagnostics with lowercase letters, remove trailing '.' and
5598         use %' in diagnostics.
5599         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
5600         (verify_ssa): Don't split diagnostic across two error calls.
5601         Spell out "number" and use %' in diagnostic.
5602         * value-prof.c (visit_hist, check_counter): Start diagnostics with
5603         lowercase letters.
5604
5605 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
5606
5607         PR middle-end/46419
5608         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
5609         (_mm_cvtpu16_ps): Ditto.
5610
5611 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5612
5613         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
5614         warn_larger_than, larger_than_size, warn_frame_larger_than,
5615         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
5616         default_visibility, flag_tls_default): New Variable declarations.
5617         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
5618         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
5619         (v): Declare as Common and document here.
5620         * flags.h (default_visibility, flag_generate_lto,
5621         warn_larger_than, larger_than_size, warn_frame_larger_than,
5622         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
5623         flag_shlib, flag_excess_precision_cmdline): Remove.
5624         (set_Wstrict_aliasing): Update prototype.
5625         * gcc.c (verbose_flag): Remove.
5626         (driver_handle_option): Add diagnostic_context parameter.  Don't
5627         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
5628         incrementing it.
5629         * opts-common.c (handle_option): Pass dc to handler.
5630         * opts.c (warn_larger_than, larger_than_size,
5631         warn_frame_larger_than, frame_larger_than_size,
5632         default_visibility): Remove.
5633         (common_handle_option): Add diagnostic_context parameter.
5634         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
5635         gcc_options parameters.
5636         (lang_handle_option, target_handle_option, read_cmdline_options,
5637         decode_options): Add diagnostic_context parameters.
5638         (finish_options): Access option state through opts pointer where
5639         possible.
5640         (common_handle_option): Access option state through opts pointer
5641         where possible.  Do not set local static variable verbose.  Do not
5642         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
5643         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
5644         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
5645         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
5646         OPT_fwhopr_.  Do not explicitly set .opt file variables for
5647         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
5648         (set_Wstrict_aliasing): Add gcc_options parameter.
5649         * opts.h (struct cl_option_handler_func): Add diagnostic_context
5650         parameter to handler.
5651         (decode_options): Add diagnostic_context parameter.
5652         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
5653         asm_file_name, flag_generate_lto, flag_gen_aux_info,
5654         aux_info_file_name, flag_shlib, flag_tls_default,
5655         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
5656         (toplev_main): Pass global_dc to decode_options.
5657         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
5658         aux_info_file_name, asm_file_name): Remove.
5659         * tree.h (flag_tls_default): Remove.
5660
5661 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
5662
5663         PR target/45986
5664         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
5665         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
5666
5667 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
5668
5669         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
5670         (x86_64-*-*): Likewise.
5671         * config/i386/cpuid.h: Define TBM bit.
5672         * config/i386/driver-i386.c (host_detect_local_cpu): Define
5673         and set has_tbm.
5674         * config/i386/i386-c.c (ix86_target_macros_internal): Check
5675         isa_flag for TBM.
5676         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
5677         (OPTION_MASK_ISA_TBM_UNSET): New.
5678         (ix86_handle_option): Handle -mtbm.
5679         (isa_opts): Add -mtbm.
5680         (enum pta_flags): Add PTA_TBM.
5681         (ix86_option_override_internal): Add TBM support.
5682         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
5683         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
5684         (IX86_BUILTIN_BEXTRI64): Likewise.
5685         (bdesc_args): Add TBM intrinsics.
5686         (ix86_expand_builtin): Add TBM specific case.
5687         * config/i386/i386.h (TARGET_TBM): New for TBM.
5688         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
5689         (tbm_bextri_<mode>): Likewise.
5690         (*tbm_blcfill_<mode>): Likewise.
5691         (*tbm_blci_<mode>): Likewise.
5692         (*tbm_blcic_<mode>): Likewise.
5693         (*tbm_blcmsk_<mode>): Likewise.
5694         (*tbm_blcs_<mode>): Likewise.
5695         (*tbm_blsfill_<mode>): Likewise.
5696         (*tbm_blsic_<mode>): Likewise.
5697         (*tbm_t1mskc_<mode>): Likewise.
5698         (*tbm_tzmsk_<mode>): Likewise.
5699         * config/i386/i386.opt: Add -mtbm.
5700         * config/i386/tbmintrin.h (__bextri_u32): New.
5701         (__blcfill_u32): Likewise.
5702         (__blci_u32): Likewise.
5703         (__blcic_u32): Likewise.
5704         (__blcmsk_u32): Likewise.
5705         (__blcs_u32): Likewise.
5706         (__blsfill_u32): Likewise.
5707         (__blsic_u32): Likewise.
5708         (__t1mskc_u32): Likewise.
5709         (__tzmsk_u32): Likewise.
5710         (__bextri_u64): Likewise.
5711         (__blcfill_u64): Likewise.
5712         (__blci_u64): Likewise.
5713         (__blcic_u64): Likewise.
5714         (__blcmsk_u64): Likewise.
5715         (__blcs_u64): Likewise.
5716         (__blsfill_u64): Likewise.
5717         (__blsic_u64): Likewise.
5718         (__t1mskc_u64): Likewise.
5719         (__tzmsk_u64): Likewise.
5720         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
5721         * doc/invoke.texi: Document -mtbm.
5722         * doc/extend.texi: Document TBM built-in functions.
5723
5724 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
5725
5726         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
5727         (x86_64-*-*): Likewise.
5728         * config/i386/cpuid.h: Define BMI bit.
5729         * config/i386/driver-i386.c (host_detect_local_cpu): Define
5730         and set has_bmi.
5731         * config/i386/i386-c.c (ix86_target_macros_internal): Check
5732         isa_flag for BMI.
5733         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
5734         (OPTION_MASK_ISA_BMI_UNSET): New.
5735         (ix86_handle_option): Handle -mbmi.
5736         (isa_opts): Add -mbmi.
5737         (enum pta_flags): Add PTA_BMI.
5738         (ix86_option_override_internal): Add BMI support.
5739         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
5740         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
5741         (IX86_BUILTIN_BEXTR64): Likewise.
5742         (IX86_BUILTIN_CTZS): Likewise.
5743         (bdesc_args): Add BMI intrinsics.
5744         (ix86_expand_args_builtin): Add BMI specific cases.
5745         * config/i386/i386.h (TARGET_BMI): New for BMI.
5746         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
5747         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
5748         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
5749         (UNSPEC_TZCNT): Likewise.
5750         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
5751         (bmi_andn_<mode>): New for BMI.
5752         (bmi_bextr_<mode>): Likewise.
5753         (bmi_blsi_<mode>): Likewise.
5754         (bmi_blsmsk_<mode>): Likewise.
5755         (bmi_blsr_<mode>): Likewise.
5756         * config/i386/i386.opt: Add -mbmi.
5757         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
5758         * config/i386/bmiintrin.h (__lzcnt_u16): New.
5759         (__tzcnt_u16): Likewise.
5760         (__andn_u32): Likewise.
5761         (__bextr_u32): Likewise.
5762         (__blsi_u32): Likewise.
5763         (__blsmsk_u32): Likewise.
5764         (__blsr_u32): Likewise.
5765         (__lzcnt_u32): Likewise.
5766         (__tzcnt_u32): Likewise.
5767         (__andn_u64): Likewise.
5768         (__bextr_u64): Likewise.
5769         (__blsi_u64): Likewise.
5770         (__blsmsk_u64): Likewise.
5771         (__blsr_u64): Likewise.
5772         (__lzcnt_u64): Likewise.
5773         (__tzcnt_u64): Likewise.
5774         * doc/invoke.texi: Document -mbmi and -mno-bmi.
5775         * doc/extend.texi: Document BMI built-in functions.
5776
5777 2010-11-10  Jan Hubicka  <jh@suse.cz>
5778
5779         PR tree-optimize/46228
5780         * doc/invoke.texi (comdat-sharing-probability): Document.
5781         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
5782         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
5783
5784 2010-11-10  Jan Hubicka  <jh@suse.cz>
5785
5786         PR tree-optimize/46228
5787         * cgraph.c (cgraph_propagate_frequency): Fix typo.
5788
5789 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
5790
5791         PR tree-optimization/46414
5792         * tree-inline.c (estimate_move_cost): Check preferred vector
5793         mode for vector type.
5794
5795 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5796
5797         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
5798
5799 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
5800
5801         PR tree-optimization/45971
5802         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
5803         for phi nodes analyzable by scev.
5804
5805 2010-11-10  Richard Guenther  <rguenther@suse.de>
5806
5807         PR tree-optimization/44964
5808         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
5809
5810 2010-11-10  Martin Jambor  <mjambor@suse.cz>
5811
5812         PR tree-optimization/46351
5813         PR tree-optimization/46377
5814         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
5815         aggregate bit-fields.
5816
5817 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5818
5819         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5820         * doc/tm.texi: Regenerate.
5821         * opts-common.c (tm.h): Don't include.
5822         (target_option_translations): Remove.
5823         (decode_cmdline_options_to_array): Don't handle translating options.
5824         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
5825         * config/darwin-driver.c: Don't condition includes on
5826         CROSS_DIRECTORY_STRUCTURE.
5827         (darwin_default_min_version): Make static.
5828         (darwin_driver_init): New.  Call darwin_default_min_version if not
5829         CROSS_DIRECTORY_STRUCTURE.
5830         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5831         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
5832         (ASM_SPEC): Add %{static}.
5833         (darwin_default_min_version): Don't declare.
5834         (darwin_driver_init): Declare.
5835         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
5836         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
5837         * config/darwin.opt (all_load, allowable_client,
5838         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
5839         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
5840         exported_symbols_list, filelist, findirect-virtual-calls,
5841         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
5842         framework, fterminated-vtables, gfull, gused, image_base, init,
5843         install_name, multi_module, multiply_defined,
5844         multiply_defined_unused, no_dead_strip_inits_and_terms,
5845         seg_addr_table, seg_addr_table_filename, segaddr,
5846         segs_read_only_addr, segs_read_write_addr, single_module,
5847         umbrella, unexported_symbols_list, weak_reference_mismatches,
5848         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
5849         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
5850         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
5851         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
5852         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
5853         (ASM_SPEC): Add %{static}.
5854         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
5855         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5856         (DRIVER_SELF_SPECS): Handle options formerly in
5857         TARGET_OPTION_TRANSLATE_TABLE.
5858         * config/mep/mep.opt (mfar): New.
5859         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5860         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
5861         TARGET_OPTION_TRANSLATE_TABLE.
5862         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
5863         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
5864         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
5865         ffix-and-continue, findirect-data): New.
5866         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5867         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
5868         (mnofpu): Define mask and use Report here.
5869
5870 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5871
5872         * config/s390/s390.c (s390_emit_prologue): Report the stack
5873         size if -fstack-usage is used.
5874
5875 2010-11-10  Richard Guenther  <rguenther@suse.de>
5876
5877         PR tree-optimization/46398
5878         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
5879
5880 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
5881
5882         PR target/44760
5883         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
5884         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
5885         GP_REG_OR_PSEUDO_STRICT_P.
5886         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
5887         unexpected alternative.
5888         (*movsf_internal): Likewise.
5889         (indirect_jump): Replace call to non-existant function with call to
5890         internal_error.
5891         (tablejump): Likewise.
5892         * config/iq2000/iq2000.c: Include df.h .
5893         (iq2000_function_arg_advance): Use CONST_CAST2.
5894         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
5895         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
5896         a non-zero function address.
5897         (iq2000_initial_elimination_offset): Add gcc_unreachable for
5898         unexpected value of FROM.
5899         (symbolic_expression_p): Delete.
5900         (iq2000_function_value): Constify func.
5901         (expand_one_builtin): Use expand_normal.
5902         (iq2000_print_operand): Don't print VALUE if calculating it failed.
5903
5904         PR rtl-optimization/44764
5905         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
5906
5907         PR target/46407
5908         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
5909         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
5910         with ATTRIBUTE_UNUSED.
5911         (valid_psw_flag): Constify parameter which.
5912         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
5913
5914         PR target/46415
5915         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
5916         (mmix_dbx_register_number): Likewise.
5917         * config/mmix/mmix.c: Include df.h .
5918         (mmix_local_alignment): Change argument basic_align and return type
5919         to unsigned.
5920         (mmix_dbx_register_number): Change argument and return type to
5921         unsigned.
5922         (mmix_expand_prologue): Use add_reg_note.
5923
5924         PR target/46417
5925         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
5926         (spu_split_store): Use aform.
5927         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
5928
5929 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5930
5931         PR/46268
5932         * doc/gty.texi (GTY Options): Clarify that variable_size produces
5933         allocators taking size in bytes, compare with length option.  Add
5934         size calculation example.
5935         (Invoking the garbage collector): Ensure that sentences are
5936         followed by two spaces.  Describe that pointer fields must be
5937         initialized at ggc_collect call.
5938         (Troubleshooting): New section.
5939
5940 2010-11-09  Jan Hubicka  <jh@suse.cz>
5941
5942         PR tree-optimization/40436
5943         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
5944         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
5945         normal instructions; be sure bultin is not implemented in this file;
5946         compute non-zero return cost.
5947         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
5948         * tree-inline.h (eni_weights_d): Add return cost.
5949
5950 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
5951
5952         * c-parser.c (c_parser_struct_declaration): Handle declaration
5953         specifiers followed by CPP_CLOSE_BRACE.
5954
5955 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
5956
5957         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
5958         split occurs before reload, and we allocate memory at the time of
5959         the split, not during expansion.  Add attributes.
5960         (floatsi<mode>2_lfiwax_mem): Ditto.
5961         (floatunssi<mode>2_lfiwzx): Ditto.
5962         (floatunssi<mode>2_lfiwzx_mem): Ditto.
5963         (floatsidf2): Ditto.
5964         (floatunssisf2): Ditto.
5965         (floatunssidf2): Ditto.
5966         (fix_trunc<mode>si2): Ditto.
5967         (fix_trunc<mode>si2_stfiwx): Ditto.
5968         (fix_trunc<mode>si2_internal): Ditto.
5969         (fix_trunc<mode>si2): Ditto.
5970         (fix_trunc<mode>di2): Ditto.
5971         (fixuns_trunc<mode>si2_stfiwx): Ditto.
5972         (floatsisf2): Ditto.
5973         (floatdidf2_mem): Ditto.
5974         (floatunsdidf2_mem): Ditto.
5975         (floatunsdidf2): Ditto.
5976         (floatdisf2_internal1): Ditto.
5977         (floatdisf2_mem): Ditto.
5978         (floatunsdisf2_mem): Ditto.
5979         (floatsi<mode>2_lfiwax_mem2): Delete.
5980         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
5981         (fix_trunc<mode>si2_mem): Ditto.
5982         (fixuns_trunc<mode>si2_mem): Ditto.
5983         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
5984         type operations to reduce copying the values to multiple memory slots.
5985         (roundu32<mode>2_fprs): Ditto.
5986
5987         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
5988         PRE_INC, PRE_DEC, PRE_MODIFY.
5989         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
5990
5991         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
5992         Delete prototype.
5993
5994 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
5995
5996         PR target/43808
5997         * cfgexpand.c (partition_stack_vars): Call
5998         update_alias_info_with_stack_vars unconditionally.
5999         (update_alias_info_with_stack_vars): Allow unused
6000         unreferenced vars when not optimizing.
6001
6002 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
6003
6004         PR tree-optimization/46036
6005         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
6006         add_to_dst_predicate_list.
6007
6008 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
6009
6010         PR debug/46171
6011         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
6012         earlier.
6013         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
6014         argument, call dead_debug_reset when adding REG_UNUSED note.
6015         (dead_debug_reset): New function.
6016         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
6017         df_create_unused_note callers.
6018
6019 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
6020
6021         * config/fr30/fr30.c: Include "df.h".
6022
6023 2010-11-09  Richard Guenther  <rguenther@suse.de>
6024
6025         PR tree-optimization/46355
6026         * tree-loop-distribution.c (tree_loop_distribution): Do not
6027         distribute loops without a single exit.
6028
6029 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6030
6031         PR rtl-optimization/46237
6032         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
6033         saved hard regs if they might get partially clobbered.
6034
6035 2010-11-09  Paul Koning  <ni1d@arrl.net>
6036
6037         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
6038
6039 2010-11-09  Richard Guenther  <rguenther@suse.de>
6040
6041         PR tree-optimization/46177
6042         * tree-loop-distribution.c (prop_phis): Remove.
6043         (generate_builtin): Re-use the old loop exit edge to avoid
6044         needing to update PHI nodes.
6045
6046 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
6047
6048         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
6049         type of args_size to unsigned HOST_WIDE_INT.
6050
6051         PR target/44755
6052         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
6053         * config/t-pnt16-warn: New file.
6054         * config/picochip/picochip.c (picochip_emit_stack_allocate):
6055         Use add_reg_note.
6056         (picochip_emit_save_register): Likewise.
6057         (picochip_emit_restore_register): Remove variable insn.
6058         (picochip_legitimize_address): Don't use C++ style comments.
6059         (picochip_legitimize_reload_address): Likewise.
6060         (reorder_var_tracking_notes): Remove variable vliw_start.
6061         (picochip_reorg): Cast first arguemnt to emit_note_after to
6062         enum insn_note.
6063         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
6064         (picochip_expand_builtin_3op): Likewise.
6065         (picochip_expand_builtin_2opvoid): Likewise.
6066         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
6067         (picochip_expand_array_testport): Likewise.
6068         (picochip_init_builtins): Remove unused variables.
6069         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
6070         to unsigned long, and output it as such.
6071         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
6072         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
6073         (schedType): Cast result of picochip_schedule_type to
6074         enum attr_schedType.
6075
6076         PR target/44759
6077         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
6078         conditional to type of S.
6079         (mn10300_function_arg): Remove unused variable align.
6080         (mn10300_arg_partial_bytes): Likewise.
6081         * config/mn10300/mn10300.md (attribute cpu): Cast value to
6082         enum attr_cpu.
6083
6084 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
6085
6086         PR bootstrap/46392
6087         * gengtype-parse.c (type): Call get_input_file_name to get file name.
6088
6089 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
6090
6091         * tree.h (contains_placeholder_p): Fix comment.
6092         (type_contains_placeholder_p): Adjust comment.
6093         * tree.c (contains_placeholder_p): Fix comment.
6094         (type_contains_placeholder_1): Do not recurse on pointed-to types and
6095         adjust comment.
6096         (type_contains_placeholder_p): Add comment.
6097
6098 2010-11-09  Paul Koning  <ni1d@arrl.net>
6099
6100         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
6101         output of byte values.
6102
6103 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
6104
6105         PR middle-end/46360
6106         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
6107         not in SSA mode.
6108
6109 2010-11-09  Richard Guenther  <rguenther@suse.de>
6110
6111         PR middle-end/46221
6112         * varasm.c (compute_visible_aliases): New function.
6113         (remove_unreachable_alias_pairs): Aliases make a target available
6114         even though we reclaimed the cgraph node.
6115         (finish_aliases_1): Likewise.
6116         * Makefile.in (varasm.o): Add pointer-set.h dependency.
6117
6118 2010-11-09  Nick Clifton  <nickc@redhat.com>
6119
6120         * config/mn10300/mn10300-modes.def: New file.
6121
6122 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
6123             Jeremie Salvucci  <jeremie.salvucci@free.fr>
6124
6125         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
6126         (plugin_files, get_file_basename, get_file_realbasename)
6127         (get_file_langdir, error_at_line, gt_files, this_file)
6128         (system_h_file, read_input_list, create_field_all)
6129         (get_file_srcdir_relative_path, get_file_basename)
6130         (get_file_langdir, get_file_gtfilename)
6131         (get_output_file_with_visibility, get_output_file_name)
6132         (struct flist, put_mangled_filename, walk_type)
6133         (put_mangled_filename, finish_root_table, write_roots): Use
6134         input_file-s.
6135         (lang_dir_names, num_lang_dirs): Remove static.
6136         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
6137         (main): Use input_file-s.
6138
6139         * gengtype.h: (struct input_file_st, input_file): New type.
6140         (struct fileloc): Use it.
6141         (gt_files, num_gt_files, this_file, system_h_file)
6142         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
6143         (get_input_file_name): New function.
6144         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
6145         use input_file.
6146         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
6147         (get_output_file_name): Ditto.
6148
6149         * gengtype-lex.l (yybegin): Use input_file.
6150
6151         * gengtype-parse.c (parse_error): Use input_file.
6152
6153 2010-11-08  Xinliang David Li  <davidxl@google.com>
6154
6155         PR tree-optimization/46316
6156         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
6157         * double-int.h (double_int_mul_with_sign): New function.
6158         * double-int.c (double_int_mul_with_sign): New function.
6159
6160 2010-11-08  Paul Koning  <ni1d@arrl.net>
6161
6162         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
6163
6164 2010-11-08  Paul Koning  <ni1d@arrl.net>
6165
6166         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
6167
6168 2010-11-08  Paul Koning  <ni1d@arrl.net>
6169
6170         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
6171         to 8 bits.
6172
6173 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
6174
6175         PR target/46378
6176         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
6177         turn on ISA 2.04 rounding instructions for power5.
6178
6179         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
6180         not ISA 2.02.
6181
6182         PR target/45585
6183         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
6184         in FPR registers.
6185         (movdi_low_st): Ditto.
6186
6187 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
6188             Richard Henderson  <rth@redhat.com>
6189
6190         PR target/44758
6191         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
6192         (attribute acc_group): Cast value to enum attr_acc_group.
6193         (*movdi_nodouble+6): Use gen_int_mode.
6194         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
6195         if RTX_CODE is defined or not.
6196         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
6197         struct frv_io.
6198         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
6199         (frv_frame_access, frv_expand_prologue): Remove unused variables.
6200         (frv_expand_block_clear): Likewise.
6201         (frv_trampoline_init): Use LCT_NORMAL.
6202         (struct frv_packet_group): New struct, broken out of type of
6203         frv_packet.
6204         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
6205         use cast in loop counter increment.
6206         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
6207         assigning to io->type.
6208         (bdesc_set): Use rtx_code UNKNOWN in initializer.
6209         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
6210         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
6211         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
6212         (frv_read_argument): Use expand_normal.
6213
6214         PR target/44757
6215         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
6216         lm32_legitimate_constant_p.
6217         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
6218         * config/lm32/lm32.c (gen_int_relational): Make new block for
6219         LE / LT / LEU / LTU case.  Declare variables at start of block.
6220         (lm32_block_move_inline): Use XALLOCAVEC.
6221
6222 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6223
6224         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
6225
6226 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
6227
6228         * gengtype (get_output_file_for_structure): Ensure type is union
6229         or struct.
6230         (write_splay_tree_allocator_def): Use
6231         get_output_file_with_visibility.
6232
6233 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6234
6235         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
6236         to defined values in case of an error.
6237         (s390_option_override): Skip further processing if the -march
6238         parameter wasn't recognized.
6239
6240 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
6241
6242         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
6243         assert that REG is a hard register number before using it as an index.
6244
6245         PR bootstrap/46358
6246         * config/i386/i386.c (ix86_expand_split_stack_prologue):
6247         Avoid warnings when HOST_WIDE_INT is 32 bit.
6248
6249 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
6250
6251         PR target/46208
6252         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
6253         (sparc_promote_prototypes): Likewise.
6254         (sparc_promote_function_mode): Promote in 32-bit mode as well.
6255         (sparc_return_in_memory): Remove superfluous parentheses.
6256         (sparc_struct_value_rtx): Fix long lines.
6257         (sparc_function_value_1): Promote in 32-bit mode as well.
6258
6259 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
6260
6261         PR rtl-optimization/45352
6262         * sel-sched.c (find_best_expr): Do not set pneed_stall when
6263         the variable_issue hook is not implemented.
6264         (fill_insns): Remove dead variable stall_iterations.
6265         (init_seqno_1): Force EBB start for resetting sched cycles on any
6266         successor blocks of the rescheduled region.
6267         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
6268         (reset_sched_cycles_in_current_ebb): Add debug printing.
6269         New variable issued_insns.  Advance state when we have issued
6270         issue_rate insns.
6271
6272 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
6273
6274         * gengtype (main): Get here's position using POS_HERE macro for
6275         do*typedef calls.
6276
6277 2010-11-07  Ian Lance Taylor  <iant@google.com>
6278
6279         PR target/46089
6280         * config/i386/i386.c (split_stack_fn_large): New static variable.
6281         (ix86_expand_split_stack_prologue): Handle large model.
6282
6283 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
6284
6285         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
6286         all possible addressing modes.
6287
6288 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
6289
6290         PR tree-optimization/46346
6291         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
6292
6293 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
6294
6295         * config/mips/mips.c: Revert previous patch.
6296         * config/mips/mips.md: Likewise.
6297
6298 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
6299
6300         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
6301         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
6302         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
6303         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
6304         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
6305         to use FMA.
6306         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
6307         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
6308         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
6309         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
6310
6311 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
6312
6313         PR c/43384
6314         * c-decl.c (lookup_label): Labels can only be referenced in a
6315         function's scope.
6316         (store_parm_decls_oldstyle): Skip erroneous parameters.
6317
6318 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
6319
6320         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
6321         LIBCALL_VALUE): Remove macros.
6322         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6323         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6324         (fr30_function_value_regno_p, fr30_function_value,
6325         fr30_libcall_value): New functions.
6326
6327 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
6328
6329         PR middle-end/46314
6330         * target.def (generate_internal_label): New asm_out hook.
6331         * output.h (default_generate_internal_label): Declare.
6332         * varasm.c (default_generate_internal_label): Define.
6333
6334 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
6335
6336         PR target/44981
6337         * doc/extend.tex (format): Document NSString extension.
6338         (format_arg): Likewise.
6339         (Darwin Format Checks): New section.
6340         * doc/tm.texi: Document string object hooks (generated).
6341         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
6342         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
6343         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
6344         * target.def (objc_construct_string_object): Rename, amend
6345         documentation.
6346         (string_object_ref_type_p): New hook.
6347         (check_string_object_format_arg): New hook.
6348         * c-parser.c (c_parser_attributes): Allow objective-c class names as
6349         attribute identifiers.
6350         * config/darwin-c.c (darwin_cfstring_ref_p): New.
6351         (darwin_check_cfstring_format_arg): New.
6352         (darwin_additional_format_types): New.
6353         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
6354         (darwin_check_cfstring_format_arg): New.
6355         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
6356         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
6357         (TARGET_N_FORMAT_TYPES): New.
6358         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
6359
6360 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
6361             Pascal Obry  <obry@adacore.com>
6362
6363         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
6364         in 64-bit mode and 17 otherwise.
6365
6366 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6367
6368         PR debug/45939
6369         * var-tracking.c (emit_note_insn_var_location): Make sure that
6370         call related var location notes come before the normal ones.
6371
6372 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
6373
6374         PR target/46326
6375         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
6376         in the last change.
6377
6378 2010-11-05  Ian Lance Taylor  <iant@google.com>
6379
6380         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
6381
6382 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6383
6384         PR c/44772
6385         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
6386         pointer_set_contains if DECL_NAME is NULL.
6387
6388 2010-11-05  Ian Lance Taylor  <iant@google.com>
6389
6390         PR target/46084
6391         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
6392         request enough additional space for alignment, and force alignment.
6393
6394 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
6395
6396         * config/i386/i386.c (legitimate_pic_address_disp_p):
6397         Handle UNSPEC_PCREL.
6398         (ix86_legitimate_address_p): Likewise.
6399         (legitimize_pic_address): Likewise.
6400         (output_pic_addr_const): Likewise.
6401         (ix86_delegitimize_address): Likewise.
6402         (ix86_find_base_term): Likewise.
6403         (memory_address_length): Likewise.
6404         (x86_output_mi_thunk): Handle special case x64
6405         for non local binding.
6406         * config/i386/i386.md (UNSPEC_PCREL): New.
6407         * config/i386/winnt.c (i386_pe_binds_local_p):
6408         Allow weak symbol for x64 windows with non-local binding.
6409
6410 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6411
6412         PR target/45670
6413         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
6414         instead of EXPAND_NORMAL for base expansion.
6415
6416 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
6417
6418         * config.gcc: Support --with-fpmath=avx for x86.
6419         * config/i386/avxmath.h: New.
6420         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
6421
6422 2010-11-05  Ian Lance Taylor  <iant@google.com>
6423
6424         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
6425         * gengtype.c (walk_type): Don't recognize descbits option.
6426
6427 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
6428
6429         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
6430         WORD_SWITCH_TAKES_ARG): Remove.
6431         * doc/options.texi (Args): Document.
6432         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
6433         * doc/tm.texi: Regenerate.
6434         * opt-functions.awk (switch_flags): Handle Args.
6435         * opts-common.c: Update comment on tm.h include.
6436         (decode_cmdline_option): Handle options with multiple arguments.
6437         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
6438         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
6439         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
6440         CL_COMMON): Update values.
6441         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
6442         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
6443         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
6444         sectobjectsymbols, sectorder, segcreate, segprot): New.
6445
6446 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
6447             Uros Bizjak  <ubizjak@gmail.com>
6448
6449         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
6450         256bit AVX register is used.
6451         (ix86_expand_vector_move_misalign): Likewise.
6452         (ix86_expand_vector_move): Replace use_avx256_p with
6453         VALID_AVX256_REG_MODE.
6454
6455 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
6456
6457          PR target/44750
6458         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
6459         change.  Set $@-warn.o to -Wno-error.
6460
6461         PR bootstrap/44756
6462         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
6463         comparing it to a signed value.
6464
6465         PR middle-end/44766
6466         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
6467         PR bootstrap/44770
6468         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
6469         to i.
6470
6471         PR target/44754
6472         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
6473         (m32c_function_arg).  Add comma between arguments two and three.
6474         (m32c_promote_prototypes): Remove declaration.
6475         (current_function_special_page_vector): Likewise.
6476         (m32c_regno_reg_class): Change return type to enum reg_class.
6477         (m32c_pushm_popm): Use add_reg_note.
6478         (m32c_push_rounding): Change return type to unsigned int.
6479         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
6480         enum reload_type.
6481         (m32c_insert_attributes): Constify variable name.
6482         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
6483         (m32c_prepare_shift): Remove variable lref.
6484         (m32c_expand_movcc): Remove variable cmp.
6485         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
6486         (m32c_compare_redundant): Remove variable op2.
6487         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
6488         (m32c_pragma_memregs): Assign the number to target_memregs.
6489         (m32c_pragma_address): Remove variable var_str.
6490         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
6491         enum reg_class.
6492         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
6493         * config/m32c/bitops.md (andsi3): Add default case to switch.
6494         (iorsi3, xorsi3): Likewise.
6495         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
6496         * config/m32c/jump.md (call, call_value): Likewise.
6497         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
6498         (m32c_regno_reg_class): Likewise.
6499         (current_function_special_page_vector): Declare.
6500
6501 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6502
6503         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
6504
6505         PR tree-optimization/46099
6506         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
6507         if it is NULL and uid wasn't found in the hash table.  Just fold the
6508         result if it is NULL otherwise.  Insert other potentially needed
6509         stmts right before current stmt instead of on the entry edge.
6510         (struct elv_data): Add gsi and reset fields.
6511         (eliminate_local_variables_1): Adjust caller.  If take_address_of
6512         failed for debug stmt, set dta->reset and return.
6513         (eliminate_local_variables_stmt): Change STMT argument for GSI,
6514         pass GSI through to the callback, handle resetting of debug stmts.
6515         (eliminate_local_variables): Adjust caller.  Process debug stmts
6516         in second phase.
6517
6518         PR middle-end/43690
6519         * gimplify.c (gimplify_asm_expr): If a "m" input is a
6520         {pre,post}{in,de}crement, fail.
6521
6522         PR debug/46307
6523         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
6524         * tree-pretty-print.c (dump_generic_node): Likewise.
6525         (op_code_prio): Likewise.
6526         * cfgexpand.c (expand_debug_expr): Likewise.
6527
6528 2010-11-04  Paul Koning  <ni1d@arrl.net>
6529
6530         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
6531         constraints.
6532
6533 2010-11-04  Chao-ying Fu  <fu@mips.com>
6534
6535         * configure.ac: Test assembler support for DSP Rev1 mult.
6536         * configure: Regenerate.
6537         * config.in: Regenerate.
6538         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
6539         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
6540         (CODE_FOR_mips_multu): New define.
6541         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
6542         dspr2_32 to dsp_32.
6543         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
6544         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
6545         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
6546         New define_expand patterns.
6547         * config/mips/constraints.md (ka): Update the constraint to test
6548         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
6549         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
6550         mips_multu): Delete.
6551         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
6552         Change target constraint to "ka".
6553         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
6554         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
6555         Emit the accumulator destination when ISA_HAS_DSP_MULT.
6556         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
6557         Emit the accumulator destination when ISA_HAS_DSP_MULT.
6558         (<u>maddsidi4): Likewise.
6559         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
6560         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
6561
6562 2010-11-04  Paul Koning  <ni1d@arrl.net>
6563
6564         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
6565
6566 2010-11-04  Paul Koning  <ni1d@arrl.net>
6567
6568         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
6569
6570 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
6571
6572         Fixed using the Objective-C 2.0 dot-syntax with class names.
6573         * c-parser.c (c_parser_next_token_starts_declspecs): In
6574         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
6575         (c_parser_next_token_starts_declaration): Same.
6576         (c_parser_postfix_expression): Parse the Objective-C 2.0
6577         dot-syntax with a class name.
6578
6579 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
6580
6581         * final.c (compute_alignments): Compute/free loop info all the time.
6582         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
6583         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
6584         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
6585         * config/rs6000/rs6000.c (cfgloop.h): Include.
6586         (can_override_loop_align): New.
6587         (rs6000_option_override_internal): Set it.
6588         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
6589         (rs6000_loop_align): New function.
6590         (rs6000_loop_align_max_skip): Likewise.
6591
6592 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6593
6594         PR driver/45703
6595         * collect2.c (main): Print --help output to stdout.  Do not
6596         exit right away, so ld --help is appended.  Add empty lines
6597         to separate output suitably.
6598
6599 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
6600
6601         PR tree-optimization/46233
6602         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
6603         after calling analyze_function, not before.
6604
6605         PR target/46234
6606         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
6607         instead of build_va_arg_indirect_ref.
6608         * config/spu/spu.c (spu_va_start): Likewise.
6609         * config/s390/s390.c (s390_va_start): Likewise.
6610
6611 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
6612
6613         PR middle-end/46292
6614         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
6615         if the innermode is not vector mode, determine the mode of a subreg
6616         by using mode_for_size of inner_size.
6617
6618 2010-11-04  Richard Guenther  <rguenther@suse.de>
6619
6620         PR rtl-optimization/46183
6621         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
6622         (execute_rtl_pre): Likewise.
6623         (execute_rtl_hoist): Likewise.
6624
6625 2010-11-04  Richard Guenther  <rguenther@suse.de>
6626
6627         PR tree-optimization/46068
6628         * ipa-split.c (consider_split): Remove gcc_unreachable.
6629
6630 2010-11-04  Richard Guenther  <rguenther@suse.de>
6631
6632         * tree-nested.c (build_addr): Use build_fold_addr_expr.
6633
6634 2010-11-04  Richard Guenther  <rguenther@suse.de>
6635
6636         PR tree-optimization/45991
6637         * gimplify.c (force_gimple_operand_1): Use the provded test
6638         function in the initial test.
6639
6640 2010-11-04  Jeff Law  <law@redhat.com>
6641
6642         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
6643         of readonly memory equivalances for const/pure calls.
6644
6645 2010-11-04  Richard Guenther  <rguenther@suse.de>
6646
6647         PR tree-optimization/45733
6648         * tree-vect-stmts.c (reverse_vec_elements): Honor the
6649         permute builtins function return type.
6650
6651 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
6652
6653         PR middle-end/44765
6654         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
6655         as an index, check it is not INVALID_REGNUM.
6656
6657         PR bootstrap/44756
6658         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
6659         unsignedp.
6660         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
6661
6662         PR bootstrap/44756
6663         * function.c (thread_prologue_and_epilogue_insns): Add
6664         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
6665
6666         PR bootstrap/44756
6667         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
6668
6669         PR target/44750
6670         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
6671         (pdp11_preferred_reload_class): Rename class to rclass.
6672         (pdp11_preferred_output_reload_class): Likewise.
6673         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
6674         ALL_COMPILERFLAGS .
6675         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
6676
6677         PR bootstrap/44756
6678         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
6679         iteration variables to enum machine_mode.
6680
6681         PR target/44751
6682         * config/h8300/h8300.c: Include df.h.
6683         (push, pop): Use add_reg_note.
6684         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
6685         (compute_a_shift_cc): Likewise.
6686         (expand_a_shift): Argument code has type enum rtx_code.
6687         (struct shift_insn): Member cc_valid has type enum attr_cc.
6688         (struct shift_info) <cc_inline, cc_special>: Likewise.
6689         enum attr_cc.
6690         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
6691         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
6692
6693 2010-11-04  Ira Rosen  <irar@il.ibm.com>
6694
6695         PR tree-optimization/46213
6696         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
6697         MINUS_EXPR only if the first operand is reduction operand.
6698
6699 2010-11-04  Richard Guenther  <rguenther@suse.de>
6700             Richard Henderson  <rth@redhat.com>
6701
6702         * tree.def (FMA_EXPR): New tree code.
6703         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
6704         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
6705         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
6706         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
6707         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
6708         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
6709         (execute_optimize_widening_mul): Call it.  Reorganize to allow
6710         dead stmt removal.  Move TODO flags ...
6711         (pass_optimize_widening_mul): ... here.
6712         * flag-types.h (enum fp_contract_mode): New enum.
6713         * common.opt (flag_fp_contract_mode): New variable.
6714         (-ffp-contract): New option.
6715         * opts.c (common_handle_option): Handle it.
6716         * doc/invoke.texi (-ffp-contract): Document.
6717         * tree.h (fold_fma): Declare.
6718         * builtins.c (fold_fma): New function.
6719         (fold_builtin_fma): Likewise.
6720         (fold_builtin_3): Call it for fma.
6721         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
6722         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
6723         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
6724         New expanders.
6725         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
6726         named patterns.
6727         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
6728         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
6729         (fms_optab, fnma_optab, fnms_optab): New defines.
6730         * gimplify.c (gimplify_expr): Handle binary truth expressions
6731         explicitly.  Handle FMA_EXPR.
6732         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
6733         operations.
6734
6735 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6736             Richard Guenther  <rguenther@suse.de>
6737
6738         * passes.c (init_optimization_passes): Move veclower after SSA.
6739         * tree-vect-generic.c (uniform_vector_p): New function.
6740         (expand_vector_operations_1): Handle conversion.
6741         (pass_lower_vector): Update SSA form.
6742
6743 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
6744
6745         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
6746         plugin capabilities.
6747         * configure: Regenerate.
6748
6749 2010-11-03  Xinliang David Li  <davidxl@google.com>
6750
6751         PR target/46200
6752         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
6753         Adjust cbase if the use stmt is after iv update.
6754
6755 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6756
6757         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
6758
6759 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6760
6761         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
6762         comment.  Pass true to the last argument of output_stack_adjust.
6763
6764 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6765
6766         PR target/46295
6767         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
6768         if 256bit AVX register is used.
6769
6770 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
6771
6772         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
6773         xsmindp/xsmaxdp on VSX for single precision min/max.
6774         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
6775         (vsx_sminsf3): Ditto.
6776
6777 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
6778
6779         * combine.c (try_combine): Fix formatting issues, improve comments and
6780         fix a pasto.
6781
6782 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
6783
6784         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
6785         of the result before building binary expressions.
6786
6787 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6788
6789         PR rtl-optimization/45865
6790         * Makefile.in (df-problems.o): Revert revision 164552.
6791         * basic-block.h (enum bb_flags): Likewise.
6792         * cfgcleanup.c (block_was_dirty): Likewise.
6793         (try_forward_edges): Likewise.
6794         (try_crossjump_bb): Likewise.
6795         (try_head_merge_bb): Likewise.
6796         (try_optimize_cfg): Likewise.
6797         (cleanup_cfg): Likewise.
6798         * df-core.c (df_set_bb_dirty): Likewise.
6799         * df-problems.c: Likewise.
6800         (df_simulate_find_uses): Likewise.
6801         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
6802         (find_memory, find_memory_store): Likewise.
6803         (can_move_insns_across): Likewise.
6804         * df.h (can_move_insns_across): Likewise.
6805         * ifcvt.c (find_memory): Likewise.
6806         (dead_or_predicable): Likewise.
6807
6808 2010-11-03  Richard Guenther  <rguenther@suse.de>
6809
6810         PR middle-end/46288
6811         * predict.c (strip_predict_hints): Simply DCE builtin expect if
6812         the result is unused.
6813
6814 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6815
6816         PR tree-optimization/46009
6817         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
6818         cond_if_else_store_replacement if bb1 and bb2 have the same
6819         single successor.
6820         (cond_store_replacement): Use gimple_assign_single_p, don't
6821         check if rhs is SSA_NAME or invariant.  Call release_defs for
6822         assign.
6823         (cond_if_else_store_replacement): New function.
6824
6825 2010-11-03  Richard Guenther  <rguenther@suse.de>
6826
6827         * opts.c (finish_options): Properly check for all WHOPR
6828         flags before complaining about -flto-partition.
6829
6830 2010-11-04  Alan Modra  <amodra@gmail.com>
6831
6832         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
6833         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
6834         TARGET_SECURE_PLT.
6835         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
6836         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
6837         on input, "r" on output.
6838
6839 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
6840
6841         Implemented -fobjc-std=objc1 flag.
6842         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
6843         option.
6844         * doc/standards.texi (Standards): Updated the section on
6845         Objective-C; mention support for Objective-C 2.0 features and the
6846         new -fstd-objc=objc1 flag to disable them.
6847
6848 2010-11-03  Richard Guenther  <rguenther@suse.de>
6849
6850         PR middle-end/46241
6851         * dwarf2out.c (scope_die_for): Properly detect global scope.
6852
6853 2010-11-03  Richard Guenther  <rguenther@suse.de>
6854
6855         PR tree-optimization/46190
6856         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
6857         Properly compute peel iterations.
6858
6859 2010-11-03  Richard Guenther  <rguenther@suse.de>
6860
6861         PR tree-optimization/46286
6862         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
6863         re-allocated vector data.
6864
6865 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6866
6867         PR target/46285
6868         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
6869         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
6870         is completed.
6871
6872 2010-11-03  Richard Guenther  <rguenther@suse.de>
6873
6874         PR tree-optimization/46217
6875         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
6876         flag matches.
6877         (execute_update_addresses_taken): Likewise.
6878
6879 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
6880
6881         PR bootstrap/44335
6882         * targhooks.c (targhook_words_big_endian): New function.
6883         (targhook_float_words_big_endian): Likewise.
6884         * targhooks.h (targhook_words_big_endian): Declare.
6885         (targhook_float_words_big_endian): Likewise.
6886         * target.def (words_big_endian, float_words_big_endian): New hooks.
6887
6888 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6889
6890         PR tree-optimization/46165
6891         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
6892         a normal call into noreturn call.
6893
6894 2010-11-03  Richard Guenther  <rguenther@suse.de>
6895
6896         PR middle-end/46251
6897         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
6898         not INDIRECT_REFs.
6899
6900 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6901
6902         PR tree-optimization/46107
6903         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
6904         if cfg_hook_duplicate_loop_to_header_edge failed.
6905
6906 2010-11-03  Ian Lance Taylor  <iant@google.com>
6907
6908         PR lto/46273
6909         * config.gcc: Don't set lto_binary_reader.
6910         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
6911         (Configuration): Mention --disable-lto.  Remove --with-libelf
6912         paragraph.
6913
6914 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6915
6916         PR debug/46252
6917         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
6918         prev_real_insn.
6919         * gcse.c (insert_insn_end_basic_block): Likewise.
6920
6921         PR rtl-optimization/46034
6922         PR rtl-optimization/46212
6923         PR rtl-optimization/46248
6924         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
6925         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
6926         before i0dest -> i0src substitution and pass 1 instead of 0 as last
6927         argument to subst on i2pat.
6928
6929 2010-11-02  Ian Lance Taylor  <iant@google.com>
6930
6931         * configure.ac: Use AC_SYS_LARGEFILE.
6932         * configure: Rebuild.
6933         * config.in: Rebuild.
6934
6935 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
6936
6937         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
6938         fold_convert.
6939         * c-typeck.c (build_function_call_vec): Likewise.
6940         * cfgexpand.c (expand_debug_expr): Likewise.
6941         * cgraphunit.c (assemble_thunk): Likewise.
6942         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
6943         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
6944         (fold_binary_loc, fold_ternary_loc): Likewise.
6945         * gimple-fold.c (get_symbol_constant_value): Likewise.
6946         * gimple-low.c (lower_builtin_setjmp): Likewise.
6947         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
6948         * gimplify.c (gimplify_init_constructor): Likewise.
6949         * lambda.h (build_linear_expr): Likewise.
6950         * omp-low.c (omp_reduction_init): Likewise.
6951         * tree-inline.c (remap_ssa_name): Likewise.
6952         * tree-object-size.c (compute_object_sizes): Likewise.
6953         * tree-sra.c (init_subtree_with_zero): Likewise.
6954         (sra_ipa_modify_assign): Likewise.
6955         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
6956         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
6957         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
6958         (undistribute_ops_list): Likewise.
6959         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
6960         * tree-vect-stmts.c (vectorizable_call): Likewise.
6961         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
6962         (build_zero_cst): Handle more cases directly.  Update comment.
6963
6964 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
6965
6966         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
6967         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
6968
6969         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
6970         and call ix86_split_call_vzeroupper instead of
6971         ix86_split_call_pop_vzeroupper.
6972         (*call_pop_1_vzeroupper): Likewise.
6973         (*sibcall_pop_1_vzeroupper): Likewise.
6974         (*call_value_pop_0_vzeroupper): Likewise.
6975         (*call_value_pop_1_vzeroupper): Likewise.
6976         (*sibcall_value_pop_1_vzeroupper): Likewise.
6977
6978 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
6979
6980         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
6981
6982 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
6983
6984         * basic-block.h (insert_insn_end_bb_new): Delete.
6985         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
6986
6987 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
6988             H.J. Lu  <hongjiu.lu@intel.com>
6989
6990         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
6991         (ix86_split_call_pop_vzeroupper): Likewise.
6992
6993         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
6994         (ix86_expand_call): Conditionally decorate calls with
6995         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
6996         (ix86_split_call_vzeroupper): New.
6997         (ix86_split_call_pop_vzeroupper): Likewise.
6998
6999         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
7000         (*call_pop_0_vzeroupper): New insn_and_split pattern.
7001         (*call_pop_1_vzeroupper): Likewise.
7002         (*sibcall_pop_1_vzeroupper): Likewise.
7003         (*call_0_vzeroupper): Likewise.
7004         (*call_1_vzeroupper): Likewise.
7005         (*sibcall_1_vzeroupper): Likewise.
7006         (*call_1_rex64_vzeroupper): Likewise.
7007         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
7008         (*call_1_rex64_large_vzeroupper): Likewise.
7009         (*sibcall_1_rex64_vzeroupper): Likewise.
7010         (*call_value_pop_0_vzeroupper): Likewise.
7011         (*call_value_pop_1_vzeroupper): Likewise.
7012         (*sibcall_value_pop_1_vzeroupper): Likewise.
7013         (*call_value_0_vzeroupper): Likewise.
7014         (*call_value_0_rex64_vzeroupper): Likewise.
7015         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
7016         (*call_value_1_vzeroupper): Likewise.
7017         (*sibcall_value_1_vzeroupper): Likewise.
7018         (*call_value_1_rex64_vzeroupper): Likewise.
7019         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
7020         (*call_value_1_rex64_large_vzeroupper): Likewise.
7021         (*sibcall_value_1_rex64_vzeroupper): Likewise.
7022
7023 2010-11-02  Ian Lance Taylor  <iant@google.com>
7024
7025         PR lto/46273
7026         * config.gcc: Revert last patch: set lto_binary_reader.
7027
7028 2010-11-02  Richard Guenther  <rguenther@suse.de>
7029
7030         PR tree-optimization/46149
7031         * tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
7032         non-indirect MEM_REF variants.
7033
7034 2010-11-02  Richard Guenther  <rguenther@suse.de>
7035
7036         PR tree-optimization/46216
7037         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7038         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
7039
7040 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7041
7042         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
7043         (*-*-osf*): Likewise.
7044         * configure: Regenerate.
7045
7046 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
7047
7048         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
7049         for Intel Core 2 and Core i7.
7050
7051 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
7052
7053         Model decoder of Core 2/i7 for multipass scheduling.
7054
7055         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
7056         New type to hold target-specific data for multipass scheduling.
7057         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
7058         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
7059         Core 2/i7.
7060         (core2i7_secondary_decoder_max_insn_size,)
7061         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
7062         New static variables.
7063         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
7064         ([_]ix86_first_cycle_multipass_data): New static variable.
7065         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
7066         Implement targetm.sched hooks.
7067         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
7068         of ...
7069         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
7070         Implement new targetm.sched hooks.
7071         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
7072         targetm.sched hook to install multipass scheduling hooks on demand.
7073
7074         * doc/tm.texi.in: Document new targetm.sched hooks.
7075         * doc/tm.texi: Regenerate.
7076
7077         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
7078         (first_cycle_multipass_data_t): New typedef.
7079         (struct choice_entry: target_data): New field.
7080         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
7081         to allow target model restrictions not represented in DFA.
7082         (choose_ready, schedule_block): Update.
7083         (sched_extend_ready_list, sched_finish_ready_list): Call new target
7084         hooks to initialize target-specific data for multipass scheduling.
7085         * sched-int.h (max_issue): Update declaration.
7086         * sel-sched.c (choose_best_insn): Update.
7087         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
7088         (first_cycle_multipass_{init, fini}): Define and document new
7089         targetm.sched hooks.
7090
7091 2010-11-02  Richard Guenther  <rguenther@suse.de>
7092
7093         PR tree-optimization/46184
7094         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
7095         input vector type from the reduction operand as well.
7096
7097 2010-11-02  Richard Guenther  <rguenther@suse.de>
7098
7099         PR tree-optimization/46177
7100         * tree-loop-distribution.c (prop_phis): Use
7101         mark_virtual_phi_result_for_renaming.
7102
7103 2010-11-02  Martin Jambor  <mjambor@suse.cz>
7104
7105         PR middle-end/46120
7106         * tree.c (get_binfo_at_offset): Bail out on artificial
7107         fields.  Identify primary bases according to their offsets.
7108
7109 2010-11-02  Martin Jambor  <mjambor@suse.cz>
7110
7111         PR tree-optimization/45875
7112         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
7113         (gimple_get_relevant_ref_binfo): Detect primary bases according to
7114         their field offset.
7115
7116 2010-11-02  Ian Lance Taylor  <iant@google.com>
7117
7118         * doc/install.texi (Configuration): Note in two places that Java
7119         is not enabled by default.
7120
7121 2010-11-02  Ian Lance Taylor  <iant@google.com>
7122
7123         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
7124         (Configuration): Mention --disable-lto.  Remove --with-libelf
7125         paragraph.
7126
7127 2010-11-02  Ian Lance Taylor  <iant@google.com>
7128
7129         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
7130         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
7131         LIBELFINC.  Remove HAVE_libelf.
7132         * config.gcc: Don't set lto_binary_reader.
7133         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
7134         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
7135         (LIBS): Remove $(LIBELFLIBS).
7136         (INCLUDES): Remove $(LIBELFINC).
7137         * configure: Rebuild.
7138         * config.in: Rebuild.
7139
7140 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
7141
7142         * config/microblaze/microblaze-protos.h (function_arg): Delete.
7143         (function_arg_advance): Delete.
7144         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
7145         (FUNCTION_ARG): Delete.
7146         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
7147         (microblaze_function_arg_advance): ...this.  Make static.  Take a
7148         const_tree and a bool.
7149         (function-arg): Rename to...
7150         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
7151         and a bool.
7152         (microblaze_expand_prologue): Call targetm.calls.function_arg and
7153         targetm.calls.function_arg_advance.
7154         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7155
7156 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
7157
7158         Merge from FSF "apple/trunk" branch.
7159
7160         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
7161         * config/darwin.opt: .. to here.
7162         (matt-stubs): New option.
7163         * config/i386/darwin.opt: Delete.
7164         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
7165         (MACHO_DYNAMIC_NO_PIC_P): New.
7166         (MACHOPIC_INDIRECT): New.
7167         (MACHOPIC_PURE): New.
7168         * config/i386/darwin.h (DARWIN_X86) Define to 1.
7169         (MACHOPIC_ATT_STUB): New.
7170         (CC1_SPEC): Do not remove mdynamic-no-pic.
7171         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
7172         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
7173         (FUNCTION_PROFILER): Correct over-length line.
7174         (SUBTARGET_OVERRIDE_OPTIONS): New.
7175         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
7176         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
7177         (legitimate_constant_p): Handle mdynamic-no-pic.
7178         (ix86_legitimate_address_p): Likewise.
7179         (ix86_legitimize_address): Likewise.
7180         (ix86_expand_move): Likewise.
7181         (machopic_output_stub): Update for ATT-style stubs and
7182         mdynamic-no-pic.
7183         * config/darwin-protos.h (machopic_symbol_defined_p): New.
7184         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
7185         TARGET_DYNAMIC_NO_PIC: Remove.
7186         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
7187         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
7188         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
7189         Remove handling of mdynamic-no-pic.
7190         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
7191         Define if required.
7192         (machopic_symbol_defined_p): Do not try to use current_function_decl
7193         when generating _get_pc thunks within stubs.
7194         (machopic_indirect_data_reference): Rework for direct conditionals
7195         rather than #ifdefs, add x86 mdynamic-no-pic
7196         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
7197         defined value.
7198         (darwin_override_options): Handle mdynamic-no-pic here.
7199         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
7200         (machopic_lazy_symbol_ptr3_section): New.
7201         (machopic_picsymbol_stub2_section): New.
7202         (machopic_picsymbol_stub3_section): New.
7203         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
7204         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
7205         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
7206         Moved common definition from x86 and rs6000.
7207         (MACHO_DYNAMIC_NO_PIC_P): Override value.
7208         (MACHOPIC_INDIRECT): Likewise.
7209         (MACHOPIC_PURE): Likewise.
7210         * config.gcc (x86-darwin-*): Remove darwin.opt.
7211
7212 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
7213
7214         PR debug/46255
7215         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
7216         instead of gsi_last_bb.
7217
7218 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
7219             Maxim Kuvyrkov  <maxim@codesourcery.com>
7220
7221         * config/i386/i386.c (cpu_names): Add "corei7".
7222         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
7223
7224 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
7225             Maxim Kuvyrkov  <maxim@codesourcery.com>
7226
7227         Tune alignment for Intel Core i7
7228
7229         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
7230         (enum processor_type): Update comment.  Add entries for Core i7.
7231         * config/i386-c.c (ix86_target_macros_internal): Update.
7232         * config/i386.c (m_COREI7{_32,_64}): New macros.
7233         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
7234         (processor_target_table): Tune alignment for Core i7.
7235         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
7236
7237         * doc/invoke.texi: Document "corei7" option value.
7238
7239 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
7240             Maxim Kuvyrkov  <maxim@codesourcery.com>
7241             H.J. Lu  <hjl.tools@gmail.com>
7242
7243         Basic support for Intel Core i7
7244
7245         * i386.c (ix86_option_override_internal): Add entry for corei7, use
7246         generic tuning.  Use generic32 when compiling for 32-bit ABI.
7247
7248 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
7249
7250         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
7251         sections and call darwin_asm_dwarf_section() to handle them.
7252         (darwin_asm_dwarf_section): New.
7253         (darwin_file_start): Remove code emitting dwarf section symbols.
7254
7255 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
7256
7257         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
7258         explicitly disable stack protection when building libgcc.
7259         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
7260
7261 2010-11-01  Jason Merrill  <jason@redhat.com>
7262
7263         * fold-const.c (fold_indirect_ref_1): Handle folding
7264         POINTER_PLUS_EXPR to ARRAY_REF.
7265
7266 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
7267
7268         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
7269         (sh_delegitimize_address): New function.
7270
7271 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
7272
7273         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
7274         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
7275         (CC1_SPEC): Don't handle -target.
7276         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
7277         options.
7278         * config/darwin.opt (Zallowable_client, Zbundle_loader,
7279         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
7280         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
7281         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
7282         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
7283         Zweak_reference_mismatches, client_name, compatibility_version,
7284         current_version, dylinker_install_name, pagezero_size,
7285         read_only_relocs, seg1addr, segs_read_only_addr,
7286         segs_read_write_addr, sub_library, sub_umbrella): New.
7287         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
7288         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
7289         * config/freebsd.opt: New.
7290         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
7291         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
7292         * config/rpath.opt: New.
7293         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
7294         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
7295         Use rpath.opt.
7296
7297 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
7298
7299         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
7300         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
7301         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
7302         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
7303         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
7304         Document that options in .opt files do not need to be included.
7305         * doc/tm.texi: Regenerate.
7306         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
7307         * opts-common.c: Update comment on tm.h include.
7308         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
7309         * system.h (SWITCH_TAKES_ARG): Poison.
7310         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
7311         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
7312         in darwin.opt.
7313         (LINK_COMMAND_SPEC_A): Don't include %{x}.
7314         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7315         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
7316         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
7317         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7318         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
7319         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
7320         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
7321         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
7322         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7323         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
7324         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
7325         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
7326         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
7327         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
7328         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
7329         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
7330         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
7331         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
7332         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
7333         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
7334         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
7335         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
7336         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7337
7338 2010-11-01  Paul Koning  <ni1d@arrl.net>
7339
7340         * config/pdp11/pdp11.md: Use iterators.
7341         (addqi3, subqi3, iorsi3, xorsi3): Delete.
7342
7343 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
7344
7345         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
7346         GCC_INSN_FLAGS_H.
7347         * libgcov.c (__gcov_indirect_call_profiler): Set
7348         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
7349         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
7350
7351 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
7352
7353         PR tree-optimization/46259
7354
7355         Revert:
7356         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7357         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
7358         build_vector_from_val.
7359
7360 2010-11-01  DJ Delorie  <dj@redhat.com>
7361
7362         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
7363         as well as an assertion.
7364
7365 2010-11-01  Paul Koning  <ni1d@arrl.net>
7366
7367         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
7368         complex modes in memory.
7369
7370 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
7371
7372         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
7373
7374 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
7375
7376         PR target/45250
7377         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
7378         (cfa_base_offset): New variable.
7379         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
7380         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
7381         is NULL.
7382         (vt_init_cfa_base): Initialize cfa_base_offset.
7383
7384 2010-11-01  Alan Modra  <amodra@gmail.com>
7385
7386         PR target/46030
7387         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
7388         and savres_strategy.
7389         (stack_info): New file scope var.
7390         (rs6000_init_machine_status): Init stack_info.
7391         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
7392         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
7393         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
7394         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
7395         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
7396         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
7397         (rs6000_savres_strategy): Rewrite.
7398         (rs6000_stack_info): Use "stack_info" in place of local "info".
7399         Return cached stack info when reload_completed unless ENABLE_CHECKING
7400         in which case confirm newly calculated stack info matches old info.
7401         Delay calculation of lr_save_p, set it for out of line gp save/restore
7402         as well as fp.  Call rs6000_savres_strategy from here..
7403         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
7404         (rs6000_output_function_prologue): Use info->savres_strategy to
7405         determine whether fp save/restore externs need to be emitted.
7406
7407 2010-10-31  Jason Merrill  <jason@redhat.com>
7408
7409         * tree.h (EXPR_LOC_OR_HERE): New macro.
7410         * builtins.c (c_strlen): Use it.
7411         * c-decl.c (build_enumerator): Likewise.
7412         * gimplify.c (internal_get_tmp_var): Likewise.
7413         (shortcut_cond_expr): Likewise.
7414         (gimplify_one_sizepos): Likewise.
7415
7416 2010-10-31  Richard Henderson  <rth@redhat.com>
7417
7418         * config/i386/cygming.h (TARGET_SEH): New.
7419         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
7420         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
7421         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
7422         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
7423         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
7424         (ASM_DECLARE_FUNCTION_SIZE): New.
7425         * config/i386/i386-protos.h: Update.
7426         * config/i386/i386.c (ix86_option_override_internal): Enable
7427         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
7428         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
7429         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
7430         (ix86_compute_frame_layout): For SEH, disable
7431         use_fast_prologue_epilogue, move frame pointer to the end of
7432         the frame.  Initialize hfp_save_offset.
7433         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
7434         at end of prologue for SEH.
7435         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
7436         emit blockage at beginning of epilogue.
7437         (ix86_expand_binary_operator): After reload, emit LEA if needed.
7438         (ix86_output_call_insn): New.
7439         * config/i386/i386.h (TARGET_SEH): New.
7440         (struct machine_function): Add member seh.
7441         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
7442         * config/i386/winnt.c (struct seh_frame_state): New.
7443         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
7444         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
7445         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
7446         i386_pe_start_function, i386_pe_end_function): New.
7447
7448         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
7449         as CFA_STORE in rules 12 and 13.
7450
7451 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
7452
7453         PR tree-optimization/46142
7454         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
7455         accommodate third function argument.
7456
7457 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7458
7459         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
7460
7461 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7462
7463         * fold-const.c (build_zero_vector): Use build_vector_from_val.
7464         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
7465         (get_initial_def_for_reduction): Likewise.
7466         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
7467         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
7468         * tree.c (build_one_cst): Likewise.
7469         (build_vector_from_val): Use types_compatible_p for assert.
7470
7471 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7472
7473         * emit-rtl.c (mark_used_flags): New function.
7474         (set_used_flags, reset_used_flags): Call it.
7475
7476 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
7477
7478         PR middle-end/44569
7479         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
7480         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
7481
7482 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
7483
7484         PR target/46195
7485         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
7486         (ix86_compat_aligned_value_p): This.
7487         (ix86_old_function_arg_boundary): Renamed to ...
7488         (ix86_compat_function_arg_boundary): This.  Updated.
7489         (ix86_contains_aligned_value_p): New.
7490         (ix86_function_arg_boundary): Align long double parameters on
7491         stack to 4byte in 32bit.
7492
7493 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
7494
7495         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
7496         * c-parser.c (c_parser_objc_at_property_declaration): Removed
7497         parsing of RID_COPIES and RID_IVAR.  Updated call to
7498         objc_add_property_declaration.
7499         * c-typecheck.c (build_component_ref): Call
7500         objc_maybe_build_component_ref instead of objc_build_setter_call.
7501         Use objc_is_property_ref to improve Objective-C checks.
7502         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
7503         of objc_build_getter_call.
7504
7505 2010-10-29  Paul Koning  <ni1d@arrl.net>
7506
7507         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7508         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
7509         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
7510         (REG_OK_STRICT): Move description.
7511
7512 2010-10-29  Paul Koning  <ni1d@arrl.net>
7513
7514         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
7515
7516 2010-10-29  Paul Koning  <ni1d@arrl.net>
7517
7518         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
7519
7520 2010-10-29  Paul Koning  <ni1d@arrl.net>
7521
7522         PR/41822
7523         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
7524
7525 2010-10-29  Richard Henderson  <rth@redhat.com>
7526
7527         PR rtl-opt/46226
7528         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
7529         for asm goto.
7530
7531 2010-10-29  Paul Koning  <ni1d@arrl.net>
7532
7533         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
7534         register to register move.
7535
7536 2010-10-29  Paul Koning  <ni1d@arrl.net>
7537
7538         * config/pdp11/pdp11.c (print_operand_address): Correct handling
7539         of integer constant addresses, delete vax-only logic.
7540
7541 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7542
7543         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
7544         a conditional expression.
7545
7546 2010-10-29  Paul Koning  <ni1d@arrl.net>
7547
7548         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
7549         instruction encoding.
7550
7551 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
7552             Andrew Pinski  <pinskia@gmail.com>
7553
7554         * tree.h (build_vector_from_val): Declare.
7555         * tree.c (build_vector_from_val): New function.
7556         * c-typeck.c (build_binary_op): Handle vector shifting.
7557         * doc/extend.texi: Description of the vector shifting operation.
7558
7559 2010-10-29  Paul Koning  <pkoning@equallogic.com>
7560
7561         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
7562         pdp11_secondary_memory_needed): Declare.
7563         * config/pdp11/predicates.md (float_operand): New predicate.
7564         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
7565         (cbranchdf4, movdf): Change predicate.
7566         (movsf): Handle FPU register case.
7567         (truncdfsf2, extendsfdf2): Add FPU register case.
7568         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
7569         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
7570         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7571         (pdp11_register_move_cost): Update cost matrix.
7572         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
7573         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
7574         pdp11_secondary_memory_needed): New function.
7575         (pdp11_return_in_memory): Add other float types.
7576         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
7577         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
7578         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
7579         REGISTER_MOVE_COST): Delete.
7580         (BASE_RETURN_VALUE_REG): Add other float types.
7581
7582 2010-10-29  Nick Clifton  <nickc@redhat.com>
7583
7584         * doc/invoke.texi: Document -mam34 and -mtune options.
7585         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
7586         (mn10300_tune_cpu): New variable.
7587         (mn10300_handle_option): Handle -mam34 and -mtune options.
7588         (mn10300_option_override): Convert tune string into tune cpu variable.
7589         (mn10300_legitimate_constant_p): Delete unused local variable.
7590         (is_load_insn): New function.
7591         (is_store_insn): New function.
7592         (mn10300_adjust_schedule_cost): New function.
7593         (TARGET_SCHED_ADJUST_COST): Define.
7594         * config/mn10300/mn10300.opt (mam34): New option.
7595         (mtune): New option.
7596         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
7597         (enum processor_type): Add AM34.
7598         (TARGET_AM34): Define.
7599         * config/mn10300/mn10300.md (attr cpu): Add am34.
7600         Add pipeline description.
7601         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
7602         Remove unneeded alternatives.  Add timing attribute.
7603         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
7604         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
7605         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
7606         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
7607         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
7608         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
7609         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
7610         float_conditional_branch, jump, indirect_jump, tablejump,
7611         call_internal, call_value_internal, zero_extendqisi2_am33,
7612         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
7613         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
7614         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
7615         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
7616         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
7617         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
7618         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
7619         return_internal_regs, store_movm, return, call_next_insn):
7620         Add timing attribute.
7621         (am33_subsi3): Add missing clobber of CC_REG.
7622         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
7623         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
7624         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
7625         extendqisi2): Fix predicates.
7626         (call_internal, call_internal_value): Separate alternatives.
7627         * config/mn10300/t-mn10300: Add AM34 multilib.
7628
7629 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
7630
7631         * config/sh/sh.c (sh_promote_function_mode): Use
7632         default_promote_function_mode if !sh_promote_prototypes.
7633
7634 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
7635
7636         * recog.c (split_all_insns): Remove dead code.
7637
7638 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7639
7640         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7641
7642 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7643
7644         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
7645         (FUNCTION_ARG_ADVANCE): Delete.
7646         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
7647         functions.
7648         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
7649         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7650         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7651
7652 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7653
7654         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
7655         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7656         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
7657         Take a const_tree and a bool.
7658         (mcore_function_arg_advance): New function.
7659         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7660
7661 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7662
7663         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
7664         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7665         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
7666         Take a const_tree and a bool.
7667         (mcore_function_arg_advance): New function.
7668         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7669
7670 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7671
7672         * config/h8300/h8300-protos.h (function_arg): Delete.
7673         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7674         * config/h8300/h8300.c (function_arg): Rename to...
7675         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
7676         a bool.
7677         (h8300_function_arg_advance): New function.
7678         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7679
7680 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7681
7682         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
7683         to...
7684         * config/arc/arc.c (arc_function_arg): ...here and...
7685         (arc_function_arg_advance): ...here.  New functions.
7686         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7687
7688 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7689
7690         * config/crx/crx-protos.h (crx_function_arg): Delete.
7691         (crx_function_arg_advance): Delete.
7692         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7693         * config/crx/crx.c (crx_function_arg): Make static.  Take a
7694         const_tree and a bool.
7695         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
7696         (enough_regs_for_param): Take a const_tree.
7697         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7698
7699 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7700
7701         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
7702         (m68hc11_function_arg_advance): Delete.
7703         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
7704         (FUNCTION_ARG_ADVANCE): Delete.
7705         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
7706         Take a const_tree and a bool.
7707         (m68hc11_function_arg_advance): Likewise.
7708         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7709
7710 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7711
7712         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
7713         (xstormy16_function_arg_advance): Delete.
7714         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
7715         (FUNCTION_ARG_ADVANCE): Delete.
7716         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
7717         Take a const_tree and a bool.
7718         (xstormy16_function_arg_advance): Likewise.  Return void, updating
7719         the CUM parameter instead.
7720         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7721
7722 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7723
7724         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
7725         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7726         (MOXIE_FUNCTION_ARG_SIZE): Move to...
7727         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
7728         (moxie_function_arg): Make static.  Take a const_tree and a bool.
7729         (moxie_function_arg_advance): New function.
7730         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7731
7732 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7733
7734         * config/mn10300/mn10300-protos.h (function_arg): Delete.
7735         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
7736         (FUNCTION_ARG_ADVANCE): Delete.
7737         * config/mn10300/mn10300.c (function_arg): Rename to...
7738         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
7739         and a bool.
7740         (mn10300_function_arg_advance): New function.
7741         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7742
7743 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7744
7745         * config/iq2000/iq2000-protos.h (function_arg): Delete.
7746         (function_arg_advance): Delete.
7747         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7748         * config/iq2000/iq2000.c (function_arg): Rename to...
7749         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
7750         a bool.
7751         (function_arg_advance): Rename to...
7752         (iq2000_function_arg_advance): ...this.  Make static.  Take a
7753         const_tree and a bool.
7754         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
7755         iq2000_function_arg.
7756         (iq2000_pass_by_reference): Call iq2000_function_arg).
7757         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7758
7759 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7760
7761         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
7762         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7763         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
7764         const_tree.
7765         (fr30_function_arg): New function.
7766         (fr30_function_arg_advance): New function.
7767         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7768
7769 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7770
7771         * config/frv/frv-protos.h (frv_function_arg): Delete.
7772         (frv_function_arg_advance): Delete.
7773         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7774         * config/frv/frv.c (frv_function_arg): Rename to...
7775         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
7776         (frv_function_arg, frv_function_incoming_arg): New functions.
7777         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
7778         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7779         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7780
7781 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
7782
7783         PR target/46153
7784         * config/i386/sse.md (sse_movhlps_exp): Use destination
7785         returned from ix86_fixup_binary_operands to expand insn.
7786         (sse_movlhps_exp): Ditto.
7787         (sse_loadhps_exp): Ditto.
7788         (sse_loadlps_exp): Ditto.
7789         (sse2_loadhpd_exp): Ditto.
7790         (sse2_loadlpd_exp): Ditto.
7791
7792 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
7793
7794         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
7795         constants in thumb2.
7796
7797 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
7798
7799         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
7800         arithmetics in masking operations.
7801         (contains_muldiv): Likewise.
7802         (try_combine): Likewise.
7803         (find_split_point): Likewise.
7804         (combine_simplify_rtx): Likewise.
7805         (simplify_if_then_else): Likewise.
7806         (simplify_set): Likewise.
7807         (expand_compound_operation): Likewise.
7808         (expand_field_assignment): Likewise.
7809         (make_extraction): Likewise.
7810         (extract_left_shift): Likewise.
7811         (make_compound_operation): Likewise.
7812         (force_to_mode): Likewise.
7813         (make_field_assignment): Likewise.
7814         (reg_nonzero_bits_for_combine): Likewise.
7815         (simplify_shift_const_1): Likewise.
7816         (simplify_comparison): Likewise.
7817
7818 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
7819
7820         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
7821         (ia64_function_arg_advance): Delete.
7822         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
7823         (FUNCTION_ARG_ADVANCE): Delete.
7824         * config/ia64/ia64.c (ia64_function_arg): Rename to...
7825         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
7826         bool arguments.
7827         (ia64_function_arg, ia64_function_incoming_arg): New functions.
7828         (ia64_function_arg_advance): Make static.  Take a const_tree and
7829         a bool.
7830         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7831         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7832
7833 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
7834
7835         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
7836         (TARGET_GET_RAW_ARG_MODE): New.
7837         * doc/tm.texi: Regenerate.
7838         * target.def (get_raw_result_mode): New.
7839         (get_raw_arg_mode): New.
7840         * targhooks.c (default_get_reg_raw_mode): New.
7841         * targhooks.h (default_get_reg_raw_mode): New.
7842         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
7843         (apply_result_size): Ditto.
7844         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
7845         (TARGET_GET_RAW_RESULT_MODE): Define.
7846         (TARGET_GET_RAW_ARG_MODE): Ditto.
7847
7848 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7849
7850         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
7851         for newer Solaris 10 release.
7852         (sparc_fallback_frame_state): Likewise.
7853
7854 2010-10-27  Jason Merrill  <jason@redhat.com>
7855
7856         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
7857         variables sooner.
7858
7859 2010-10-27  Jie Zhang  <jie@codesourcery.com>
7860             Maxim Kuvyrkov  <maxim@codesourcery.com>
7861
7862         * haifa-sched.c (ISSUE_POINTS): Remove.
7863         (max_issue): Don't issue more than issue_rate instructions.
7864
7865 2010-10-27  Ian Lance Taylor  <iant@google.com>
7866
7867         PR target/46197
7868         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
7869         (split_stack_return): Replace UNSPEC_STACK_CHECK with
7870         UNSPECV_SPLIT_STACK_RETURN.
7871
7872 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
7873
7874         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
7875
7876         * config/i386/i386.c (block_info): New.
7877         (BLOCK_INFO): Likewise.
7878         (call_avx256_state): Likewise.
7879         (check_avx256_stores): Likewise.
7880         (move_or_delete_vzeroupper_2): Likewise.
7881         (move_or_delete_vzeroupper_1): Likewise.
7882         (move_or_delete_vzeroupper): Likewise.
7883         (use_avx256_p): Likewise.
7884         (function_pass_avx256_p): Likewise.
7885         (flag_opts): Add -mvzeroupper.
7886         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
7887         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
7888         is disabled.
7889         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
7890         generate vzeroupper.
7891         (init_cumulative_args): Add an int to indicate caller.  Set
7892         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
7893         based on return type.
7894         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
7895         caller_pass_avx256_p based on argument type.
7896         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
7897         is used, but not returned by caller.
7898         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
7899         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
7900         is used.
7901         (ix86_minimum_alignment): Likewise.
7902         (ix86_expand_special_args_builtin): Set target to
7903         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
7904         (ix86_reorg): Run the vzeroupper optimization if needed.
7905
7906         * config/i386/i386.h (ix86_args): Add caller.
7907         (INIT_CUMULATIVE_ARGS): Updated.
7908         (machine_function): Add use_vzeroupper_p, use_avx256_p,
7909         caller_pass_avx256_p, caller_return_avx256_p,
7910         callee_pass_avx256_p and callee_return_avx256_p.
7911
7912         * config/i386/i386.opt (-mvzeroupper): New.
7913
7914         * config/i386/predicates.md (vzeroupper_operation): Removed.
7915
7916         * config/i386/sse.md (avx_vzeroupper): Removed.
7917         (*avx_vzeroupper): Removed.
7918         (avx_vzeroupper): New.
7919
7920         * doc/invoke.texi: Document -mvzeroupper.
7921
7922 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7923
7924         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
7925         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
7926         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
7927
7928 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7929             Olivier Hainque  <hainque@adacore.com>
7930
7931         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
7932         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
7933         fs->signal_frame instead.
7934
7935 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7936
7937         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
7938         parsing of RID_COPIES and RID_IVAR.
7939
7940 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7941
7942         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
7943         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
7944         Do not use objc_set_property_attr, but use local variables
7945         instead.  Detect repeated usage of setter, getter and ivar
7946         attributes.  Improved error processing when a setter name does not
7947         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
7948         that the token is a keyword.  Updated call to
7949         objc_add_property_declaration.
7950
7951 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7952
7953         * c-parser.c (c_parser_objc_at_property): Renamed to
7954         c_parser_objc_at_property_declaration.  Updated calls to
7955         objc_add_property_variable, now objc_add_property_declaration.
7956         Code rewritten to be much more robust in recovering from syntax
7957         errors.  Added comments.
7958         (c_parser_objc_property_attrlist): Removed.
7959         (c_parser_external_declaration): Updated calls to
7960         c_parser_objc_at_property, now
7961         c_parser_objc_at_property_declaration.
7962         (c_parser_objc_methodprotolist): Same change.
7963
7964 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
7965
7966         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
7967
7968 2010-10-26  Jan Hubicka  <jh@suse.cz>
7969
7970         * ipa.c (process_references): Enqueue all referenced nodes;
7971         mark as reachable only non-external nodes.
7972         (cgraph_remove_unreachable_nodes): All referenced nodes should
7973         be enqueued; remove bogues node->needed check.
7974
7975 2010-10-26  Jan Hubicka  <jh@suse.cz>
7976
7977         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
7978         to represent OMP.
7979
7980 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
7981
7982         * config/i386/i386.md (split_stack_return): Replace
7983         unspec_volatile with unspec.
7984
7985 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
7986
7987         * doc/install.texi: Fix typo in --with-sysroot description.
7988
7989 2010-10-26  Jan Hubicka  <jh@suse.cz>
7990
7991         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
7992         Use info provided by linker plugin.
7993
7994 2010-10-26  Jason Merrill  <jason@redhat.com>
7995
7996         * varasm.c (constructor_static_from_elts_p): Don't require a
7997         CONSTRUCTOR to have elements to be suitable for static
7998         initialization.  Allow ARRAY_TYPE as well.
7999
8000 2010-10-26  Jan Hubicka  <jh@suse.cz>
8001
8002         PR middle-end/45736
8003         * cgraph.c (cgraph_set_readonly_flag): Rename to...
8004         (cgraph_set_const_flags) ... this one; get also looping argument;
8005         clear constructor/destructor flags.
8006         (cgraph_set_pure_flag): Likewise.
8007         (cgraph_set_looping_const_or_pure_flag): Remove.
8008         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
8009         to optimize away static ctors/dtors; it does not work on inline clones;
8010         external functions can always be rmeoved.
8011         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
8012         inline clones; in LTO external functions always can go.
8013         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
8014         (cgraph_mark_address_taken_node): Assert that we are not taking
8015         address of inline clone.
8016         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
8017         external functions.
8018         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
8019         address taken.
8020         (ipcp_initialize_node_lattices): Only local functions can be
8021         handled without cloning.
8022         * cgraph.h (cgraph_set_readonly_flag,
8023         cgraph_set_looping_const_or_pure_flag): Remove.
8024         (cgraph_set_const_flag): Declare.
8025         (cgraph_set_pure_flag): Update.
8026         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
8027         flags setting code.
8028         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
8029         look at inline clones; fix handling of external definitions.
8030         (cgraph_postorder): Do not look at inline clones in the first pass.
8031         (function_and_variable_visibility): Drop constructors/destructor
8032         flags at pure and const functions.
8033         * tree-profile.c (tree_profiling): Update.
8034         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
8035         address taken; external functions do not account to whole program size.
8036         (cgraph_decide_inlining): Likewise; do not try to inline
8037         functions already inlined.
8038
8039 2010-10-26  Jie Zhang  <jie@codesourcery.com>
8040
8041         * doc/invoke.texi: Improve documentation of
8042         -fstrict-volatile-bitfields.
8043
8044 2010-10-26  Ira Rosen  <irar@il.ibm.com>
8045
8046         PR tree-optimization/46167
8047         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
8048         is basic block for the statement.
8049
8050 2010-10-26  Paul Koning  <ni1d@arrl.net>
8051
8052         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
8053         current definition of struct_real_format.
8054
8055 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
8056
8057         PR target/44948
8058         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
8059         (ix86_function_arg_boundary): Always align parameters on stack
8060         in 64bit and align parameters with alignment >= 16byte on stack
8061         in 32bit.  Warn alignment change.
8062
8063 2010-10-26  Ian Lance Taylor  <iant@google.com>
8064
8065         PR middle-end/45687
8066         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
8067         offset.
8068
8069 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
8070
8071         Implement opaque-enum-specifiesr for C++0x
8072         * tree.h (ENUM_IS_OPAQUE): New.
8073         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
8074
8075 2010-10-26  Jie Zhang  <jie@codesourcery.com>
8076
8077         * stor-layout.c (layout_decl): Use the field's type to
8078         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
8079         * config/arm/arm.c (arm_override_options): Default to
8080         -fstrict-volatile-bitfields.
8081
8082 2010-10-25  Paul Koning  <ni1d@arrl.net>
8083
8084         * config/pdp11/pdp11.md: Add define_constants for register
8085         numbers, branch offset limits.
8086         * config/pdp11/pdp11.c: Use named constants instead of numbers.
8087         * config/pdp11.pdp11.h: Ditto.
8088
8089 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
8090
8091         * configure.ac: Use $cpu_type instead of $target to define the nop.
8092         * configure: Regenerate.
8093
8094 2010-10-25  Jie Zhang  <jie@codesourcery.com>
8095
8096         * combine.c (try_combine): If insns need to be kept around, check that
8097         they can be copied in the merged instruction.
8098
8099 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
8100
8101         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
8102         has been modified.
8103         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
8104         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
8105         it has been modified.
8106
8107 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
8108
8109         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
8110
8111 2010-10-24  Paul Koning  <ni1d@arrl.net>
8112
8113         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
8114         * config/pdp11/pdp11.c (output_jump): Ditto.
8115
8116 2010-10-24  Ian Lance Taylor  <iant@google.com>
8117
8118         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
8119
8120 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
8121
8122         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
8123         least one insn with a locus corresponding to an edge's goto_locus,
8124         disregard non-fallthru edges to the exit block and merge the blocks
8125         created for the same goto_locus.
8126
8127 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
8128
8129         * gcc.c (n_switches_alloc_debug_check): New.
8130         (set_option_handlers): New.
8131         (process_command): Use set_option_handlers.
8132         (do_self_spec): Pass spec-generated options through option handlers.
8133         (main): Also save and restore n_switches_alloc when swapping
8134         switch arrays.
8135
8136 2010-10-23  Richard Henderson  <rth@redhat.com>
8137
8138         PR target/46144
8139         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
8140         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
8141         Honor matching operands when splitting to XOR.
8142
8143 2010-10-23  Ian Lance Taylor  <iant@google.com>
8144
8145         * tree-vrp.c (extract_range_from_binary_expr): If
8146         flag_non_call_exceptions don't eliminate division by zero.
8147         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
8148
8149 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
8150
8151         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
8152         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
8153         __ORDER_PDP_ENDIAN__.
8154         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8155         (struct DWstruct): Define based on __BYTE_ORDER__.
8156         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8157         (struct INTstruct): Define based on __BYTE_ORDER__.
8158         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8159         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
8160         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
8161         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8162         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8163         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8164         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8165         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8166         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8167         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8168         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8169         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8170         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8171         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8172         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8173         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8174         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8175         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8176         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8177         * doc/tm.texi: Regenerate.
8178         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
8179         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
8180
8181 2010-10-23  Jie Zhang  <jie@codesourcery.com>
8182
8183         PR rtl-optimization/37360
8184         * config/mips/mips.c (cached_can_issue_more): New local variable.
8185         (mips_sched_reorder_1): New.
8186         (mips_sched_reorder): Use mips_sched_reorder_1.
8187         (mips_sched_reorder2): New.
8188         (mips_variable_issue): Set cached_can_issue_more.
8189         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
8190         instead of mips_sched_reorder.
8191
8192         Revert:
8193         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
8194         PR rtl-optimization/37360
8195         * haifa-sched.c (max_issue): Do not assert that we never issue more
8196         insns than issue_rate.  Add comment.
8197
8198 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
8199
8200         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
8201         location info of the expression.
8202
8203 2010-10-22  DJ Delorie  <dj@redhat.com>
8204
8205         * doc/extend.texi (Named Address Spaces): Document the M32C named
8206         address space.
8207
8208         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
8209         __far address space.
8210         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
8211         "__far" address space for R8C and M16C processor variants.
8212         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
8213         (far_addr_space_p): New.
8214         (encode_pattern_1): Add sign and zero extend support.
8215         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
8216         (m32c_extra_constraint_p2): Add SF constraint.
8217         (m32c_legitimate_address_p): Support __far addresses.
8218         (m32c_addr_space_pointer_mode): New.
8219         (m32c_addr_space_address_mode): New.
8220         (m32c_addr_space_legitimate_address_p): New.
8221         (m32c_addr_space_legitimize_address): New.
8222         (m32c_addr_space_subset_p): New.
8223         (m32c_addr_space_convert): New.
8224         (conversions): Add __far operand patterns.
8225         (m32c_prepare_move): Force constants into registers for __far moves.
8226         (m32c_split_move): __far moves are always split.
8227         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
8228         * config/m32c/mov.md (mov<mode>_far_op1): New.
8229         (mov<mode>_far_op2): New.
8230         (movqi_op): Add __far (SF) support.
8231         (movhi_op): Likewise.
8232         (movsi_splittable): Split A1A0 also.
8233
8234 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
8235             Andrew Pinski  <pinskia@gmail.com>
8236
8237         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
8238         * doc/extend.texi: New paragraph
8239
8240 2010-10-22  Paul Koning  <ni1d@arrl.net>
8241
8242         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
8243
8244 2010-10-22  DJ Delorie  <dj@redhat.com>
8245
8246         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
8247
8248 2010-10-22  Paul Koning  <ni1d@arrl.net>
8249
8250         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
8251
8252 2010-10-22  Richard Henderson  <rth@redhat.com>
8253
8254         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
8255         cases for __builtin_fma and __builtin_fmaf.
8256
8257 2010-10-22  Richard Henderson  <rth@redhat.com>
8258
8259         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
8260         NEG+USE for vectors as well.
8261         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
8262         and splitter.
8263
8264 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
8265
8266         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
8267         SWITCH_CURTAILS_COMPILATION): Remove.
8268         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
8269         * doc/tm.texi: Regenerate.
8270         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
8271
8272 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
8273
8274         * config/i386/bdver1.md: New file.
8275         * config/i386/i386.md (include "bdver1.md"): Invoke the
8276         pipeline description for bdver1.
8277         (x86_sahf_1): Add "bdver1_decode" attribute.
8278         (*cmpfp_i_mixed): Likewise.
8279         (*cmpfp_i_sse): Likewise.
8280         (*cmpfp_i_i387): Likewise.
8281         (*cmpfp_iu_mixed): Likewise.
8282         (*cmpfp_iu_sse): Likewise.
8283         (*cmpfp_iu_387): Likewise.
8284         (*swap<mode>,*swap<mode>_1): Likewise.
8285         (fixuns_trunc<mode>hi2): Likewise.
8286         (fix_trunc<mode>si_sse): Likewise.
8287         (x86_fnstcw_1): Likewise.
8288         (x86_fldcw_1): Likewise.
8289         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
8290         (*floatsi<mode>2_vector_mixed): Likewise.
8291         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
8292         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
8293         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
8294         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
8295         (*floatsi<mode>2_vector_sse): Likewise.
8296         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
8297         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
8298         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
8299         (*mul<mode>3_1): Likewise.
8300         (*mulsi3_1_zext): Likewise.
8301         (*mulhi3_1): Likewise.
8302         (*mulqi3_1): Likewise.
8303         (*<u>mul<mode><dwi>3_1): Likewise.
8304         (*<u>mulqihi3_1): Likewise.
8305         (*<s>muldi3_highpart_1): Likewise.
8306         (*<s>mulsi3_highpart_1): Likewise.
8307         (*<s>mulsi3_highpart_zext): Likewise.
8308         (x86_64_shld): Likewise.
8309         (x86_shld): Likewise.
8310         (x86_64_shrd): Likewise.
8311         (x86_shrd): Likewise.
8312         (sqrtxf2): Likewise.
8313         (sqrt_extend<mode>xf2_i387): Likewise.
8314         (*sqrt<mode>2_sse): Likewise.
8315         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
8316         (sse_cvtsi2ssq): Likewise.
8317         (sse_cvtss2si): Likewise.
8318         (sse_cvtss2si_2): Likewise.
8319         (sse_cvtss2siq): Likewise.
8320         (sse_cvtss2siq_2): Likewise.
8321         (sse_cvttss2si): Likewise.
8322         (sse_cvttss2siq): Likewise.
8323         (sse2_cvtpi2pd): Likewise.
8324         (sse2_cvttpd2pi): Likewise.
8325         (sse2_cvtsi2sd): Likewise.
8326         (sse2_cvtsi2sdq): Likewise.
8327         (sse2_cvtsd2si): Likewise.
8328         (sse2_cvtsd2si_2): Likewise.
8329         (sse2_cvtsd2siq): Likewise.
8330         (sse2_cvtsd2siq_2): Likewise.
8331         (sse2_cvttsd2si): Likewise.
8332         (sse2_cvttsd2siq): Likewise.
8333         (*sse2_cvtpd2dq): Likewise.
8334         (*sse2_cvttpd2dq): Likewise.
8335         (sse2_cvtsd2ss): Likewise.
8336         (sse2_cvtss2sd): Likewise.
8337         (*sse2_cvtpd2ps): Likewise.
8338         (sse2_cvtps2pd): Likewise.
8339
8340 2010-10-22  Richard Guenther  <rguenther@suse.de>
8341
8342         PR middle-end/46137
8343         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
8344         remove the virtual operands if they are not needed.
8345
8346 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
8347
8348         * config/i386/i386.c (processor_costs bdver1_cost): Update
8349         insn costs and architectural parameters for bdver1.
8350
8351 2010-10-22  Richard Guenther  <rguenther@suse.de>
8352
8353         * gimple.h (gimple_register_canonical_type): Declare.
8354         * gimple.c (gimple_canonical_types): New global hashtable.
8355         (struct gimple_type_leader_entry_s): New type.
8356         (gimple_type_leader): New global cache.
8357         (gimple_lookup_type_leader): New function.
8358         (gtc_visit): Query the proper cache.
8359         (gimple_types_compatible_p): Likewise.
8360         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
8361         (gimple_canonical_type_eq): New function.
8362         (gimple_register_canonical_type): Likewise.
8363         (print_gimple_types_stats): Adjust for gimple_canonical_types.
8364         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
8365         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
8366         gimple_types_compatible_p for LTO.
8367
8368 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
8369
8370         PR target/46098
8371         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
8372         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
8373         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
8374         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
8375         (<sse>_movu<ssemodesuffix>): New expander.
8376         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
8377         (avx_movdqu<avxmodesuffix>): New expander.
8378         (*sse2_movdqu): Rename from sse2_movdqu.
8379         (sse2_movdqu): New expander.
8380
8381 2010-10-22  Richard Guenther  <rguenther@suse.de>
8382
8383         PR tree-optimization/45720
8384         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
8385         Handle negative step.
8386         (vect_enhance_data_refs_alignment): Likewise.
8387         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
8388         (vect_create_cond_for_align_checks): Likewise.
8389         (vect_create_cond_for_alias_checks): Likewise.
8390
8391 2010-10-22  Ira Rosen  <irar@il.ibm.com>
8392
8393         PR tree-optimization/46126
8394         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
8395         vectorizable_shift in case of basic block vectorization.
8396
8397 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
8398
8399         * target.h (enum opt_levels, struct default_options): New.
8400         * target.def (handle_ofast): Remove hook.
8401         (target_option.optimization): Change to
8402         target_option.optimization_table.
8403         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
8404         TARGET_OPTION_OPTIMIZATION_TABLE.
8405         (CAN_DEBUG_WITHOUT_FP): Remove.
8406         * doc/tm.texi: Regenerate.
8407         * opts.c (maybe_default_option, maybe_default_options,
8408         default_options_table): New.
8409         (default_options_optimization): Take extra parameters.  Don't
8410         assert that global_options and global_options_set are in use.  Use
8411         maybe_default_options.
8412         (decode_options): Pass extra parameters to
8413         default_options_optimization.
8414         * common.opt (falign-loops): Use value 0 with Var.
8415         (frerun-cse-after-loop, ftree-ter): Remove Init.
8416         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
8417         TARGET_OPTION_OPTIMIZATION): Remove.
8418         * targhooks.c (empty_optimization_table): New.
8419         * targhooks.h (empty_optimization_table): Declare.
8420         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
8421         * config/alpha/alpha.c (alpha_option_optimization_table,
8422         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8423         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
8424         * config/arm/arm.c (arm_option_optimization: Change to
8425         arm_option_optimization_table.
8426         (TARGET_OPTION_OPTIMIZATION): Change to
8427         TARGET_OPTION_OPTIMIZATION_TABLE.
8428         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
8429         * config/avr/avr.c (avr_option_optimization_table,
8430         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8431         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
8432         * config/cris/cris.c (cris_option_optimization): Change to
8433         cris_option_optimization_table.
8434         (TARGET_OPTION_OPTIMIZATION): Change to
8435         TARGET_OPTION_OPTIMIZATION_TABLE.
8436         * config/crx/crx.c (crx_option_optimization): Change to
8437         crx_option_optimization_table.
8438         (TARGET_OPTION_OPTIMIZATION): Change to
8439         TARGET_OPTION_OPTIMIZATION_TABLE.
8440         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
8441         * config/fr30/fr30.c (fr30_option_optimization_table,
8442         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8443         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
8444         * config/frv/frv.c (frv_option_optimization_table,
8445         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8446         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
8447         * config/h8300/h8300.c (h8300_option_optimization): Change to
8448         h8300_option_optimization_table.
8449         (TARGET_OPTION_OPTIMIZATION): Change to
8450         TARGET_OPTION_OPTIMIZATION_TABLE.
8451         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
8452         * config/i386/i386.c (ix86_option_optimization): Change to
8453         ix86_option_optimization_table.
8454         (TARGET_OPTION_OPTIMIZATION): Change to
8455         TARGET_OPTION_OPTIMIZATION_TABLE.
8456         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
8457         as initializer.
8458         * config/ia64/ia64.c (ia64_option_optimization): Change to
8459         ia64_option_optimization_table.
8460         (TARGET_OPTION_OPTIMIZATION): Change to
8461         TARGET_OPTION_OPTIMIZATION_TABLE.
8462         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
8463         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
8464         initializer.
8465         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
8466         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8467         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
8468         * config/lm32/lm32.c (lm32_option_optimization_table,
8469         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8470         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
8471         * config/m32r/m32r.c (m32r_option_optimization): Change to
8472         m32r_option_optimization_table.
8473         (TARGET_OPTION_OPTIMIZATION): Change to
8474         TARGET_OPTION_OPTIMIZATION_TABLE.
8475         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
8476         CAN_DEBUG_WITHOUT_FP): Remove.
8477         * config/mcore/mcore.c (mcore_option_optimization): Change to
8478         mcore_option_optimization_table.
8479         (TARGET_OPTION_OPTIMIZATION): Change to
8480         TARGET_OPTION_OPTIMIZATION_TABLE.
8481         * config/mep/mep.c (mep_option_optimization): Change to
8482         mep_option_optimization_table.
8483         (TARGET_OPTION_OPTIMIZATION): Change to
8484         TARGET_OPTION_OPTIMIZATION_TABLE.
8485         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
8486         * config/microblaze/microblaze.c
8487         (microblaze_option_optimization_table,
8488         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8489         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
8490         * config/mips/mips.c (mips_option_optimization_table,
8491         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8492         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
8493         * config/mmix/mmix.c (mmix_option_optimization): Change to
8494         mmix_option_optimization_table.
8495         (TARGET_OPTION_OPTIMIZATION): Change to
8496         TARGET_OPTION_OPTIMIZATION_TABLE.
8497         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
8498         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
8499         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8500         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
8501         * config/pa/pa.c (pa_option_optimization_table,
8502         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8503         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
8504         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
8505         pdp11_option_optimization_table.
8506         (TARGET_OPTION_OPTIMIZATION): Change to
8507         TARGET_OPTION_OPTIMIZATION_TABLE.
8508         * config/picochip/picochip.c (picochip_option_optimization_table,
8509         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8510         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
8511         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
8512         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8513         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
8514         * config/rx/rx.c (rx_option_optimization_table,
8515         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8516         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
8517         * config/s390/s390.c (s390_option_optimization): Change to
8518         s390_option_optimization_table.
8519         (s390_option_override): Update comment.
8520         (TARGET_OPTION_OPTIMIZATION): Change to
8521         TARGET_OPTION_OPTIMIZATION_TABLE.
8522         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
8523         * config/score/score.c (score_option_optimization_table,
8524         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8525         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
8526         * config/sh/sh.c (sh_option_optimization): Change to
8527         sh_option_optimization_table.
8528         (TARGET_OPTION_OPTIMIZATION): Change to
8529         TARGET_OPTION_OPTIMIZATION_TABLE.
8530         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
8531         (sh_option_override, expand_block_move, multcosts, find_barrier,
8532         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
8533         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
8534         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
8535         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
8536         instead of TARGET_SMALLCODE.
8537         * config/sh/sh.opt (mspace): Make into an alias for -Os.
8538         * config/sparc/sparc.c (sparc_option_optimization_table,
8539         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8540         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
8541         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
8542         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8543         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
8544         * config/v850/v850.c (v850_option_optimization): Change to
8545         v850_option_optimization_table.
8546         (TARGET_OPTION_OPTIMIZATION): Change to
8547         TARGET_OPTION_OPTIMIZATION_TABLE.
8548         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
8549         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
8550         xtensa_option_optimization_table.
8551         (TARGET_OPTION_OPTIMIZATION): Change to
8552         TARGET_OPTION_OPTIMIZATION_TABLE.
8553         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
8554
8555 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
8556
8557         Based on the CFString implementation in FSF apple/trunk branch.
8558
8559         * target.def (objc_construct_string): New Hook.
8560         * doc/tm.texi (objc_construct_string): Document.
8561         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
8562         * config/t-darwin: Amend build rules for darwin.o.
8563         * config/darwin.opt: Add cfstrings flags.
8564         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
8565         (darwin_objc_construct_string): New.
8566         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
8567         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
8568         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
8569         (darwin_fold_builtin): Likewise.
8570         (darwin_build_constant_cfstring): Likewise.
8571         (darwin_objc_construct_string): Likewise.
8572         (darwin_cfstring_p): Likewise.
8573         (darwin_enter_string_into_cfstring_table): Likewise.
8574         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
8575         * config/darwin.c (darwin_running_cxx): New var.
8576         (machopic_select_section): Return cfstring_constant_object_section.
8577         (darwin_override_options): Set darwin_running_cxx.
8578         (add_builtin_field_decl): New.
8579         (darwin_init_cfstring_builtins): New.
8580         (darwin_build_constant_cfstring): New.
8581         (darwin_fold_builtin): New.
8582         (cfstring_hash): New.
8583         (cfstring_eq): New.
8584         (darwin_enter_string_into_cfstring_table): New.
8585         * config/darwin-sections.def (cfstring_constant_object_section): New.
8586         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
8587         (TARGET_OBJC_CONSTRUCT_STRING): Define.
8588
8589 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8590
8591         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
8592         TYPE_STUB_DECL instead of TREE_CHAIN.
8593         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
8594         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
8595         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
8596         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
8597         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
8598         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
8599         Likewise.
8600         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
8601
8602 2010-10-22  Jie Zhang  <jie@codesourcery.com>
8603
8604         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
8605         (copy_blkmode_from_reg): Likewise.
8606         (read_complex_part): Likewise.
8607         (expand_expr_real_1): Calculate packedp and pass it to
8608         extract_bit_field.
8609         * expr.h (extract_bit_field): Update declaration.
8610         * calls.c (store_unaligned_arguments_into_pseudos): Update call
8611         to extract_bit_field.
8612         * expmed.c (extract_fixed_bit_field): Update calls to
8613         extract_fixed_bit_field.
8614         (store_split_bit_field): Likewise.
8615         (extract_bit_field_1): Add new argument packedp.
8616         (extract_bit_field): Add new argument packedp.
8617         (extract_fixed_bit_field): Add new argument packedp and let
8618         packed attribute override volatile.
8619         * stmt.c (expand_return): Update call to extract_bit_field.
8620
8621 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8622
8623         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
8624
8625 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8626
8627         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
8628         of gcc_checking_assert.
8629         * sel-sched.c (code_motion_process_successors): Likewise.
8630
8631 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
8632
8633         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
8634         when stopping because of a different locus on edge or insn.
8635         (try_optimize_cfg): Add comment.
8636         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
8637         block is a forwarder block, propagate locus on the edge.
8638         (cfg_layout_merge_blocks): Likewise.
8639
8640 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
8641
8642         PR target/45946
8643         * config/i386/i386.md (*pushti2): New insn pattern.
8644         (pushti2 splitter): New insn splitter.
8645         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
8646         DWI mode iterator.
8647
8648 2010-10-21  Paul Koning  <ni1d@arrl.net>
8649
8650         * config/pdp11/pdp11-protos.md (arith_operand,
8651         const_immediate_operand, expand_shift_operand,
8652         immediate15_operand): Delete
8653         * config/pdp11/pdp11.c: Ditto.
8654         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
8655         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
8656         EXTRA_CONSTRAINT): Delete.
8657         * config/pdp11/pdp11.md (various): Use standard constraints
8658         instead of removed ones.
8659         * config/pdp11/constraints.md: New file.
8660         * config/pdp11/predicates.md: New file.
8661
8662 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
8663
8664         PR c/45834
8665         * alias.c (true_dependence_1): Remove obsolete check for QImode.
8666         (may_alias_p): Ditto.
8667
8668 2010-10-21  Martin Jambor  <mjambor@suse.cz>
8669
8670         PR tree-optimization/45875
8671         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
8672
8673 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8674
8675         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
8676         variables.
8677         (create_new_def_for): Likewise.
8678
8679 2010-10-21  Nick Clifton  <nickc@redhat.com>
8680
8681         * config/mn10300/mn10300.c: Fold code to 80-character width.
8682         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8683         MEM, CONST_INT and CONST_DOUBLE.
8684         (targetm): Move initialization to end of file.
8685         (print_operand): Rename to mn10300_print_operand.
8686         (print_operand_address): Rename to mn10300_print_operand_address.
8687         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
8688         (expand_prologue): Rename to mn10300_expand_prologue.
8689         (expand_epilogue): Rename to mn10300_expand_epilogue.
8690         (initial_offset): Rename to mn10300_initial_offset.
8691         (function_arg): Rename to mn10300_function_arg.
8692         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
8693         (symbolic_operand): Rename to mn10300_symbolic_operand.
8694         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
8695         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
8696         * config/mn10300/mn10300-protos.h: Update prototypes.
8697         * config/mn10300/mn10300.h: Fold code to 80-character width.
8698         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8699         MEM, CONST_INT and CONST_DOUBLE.
8700         (CPP_SPEC): Move to...
8701         (TARGET_CPU_CPP_BUILTINS): ... here.
8702         * config/mn10300/mn10300.md: Fold code to 80-character width.
8703         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8704         MEM, CONST_INT and CONST_DOUBLE.
8705
8706 2010-10-21  Ira Rosen  <irar@il.ibm.com>
8707
8708         PR tree-optimization/46049
8709         PR tree-optimization/46052
8710         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
8711         (vect_get_slp_defs): Add arguments.
8712         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
8713         operands to vect_get_slp_defs.
8714         (vectorizable_reduction): Fix comment, pass scalar operands to
8715         vect_get_slp_defs.
8716         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
8717         type to determine number of units in the created vector.
8718         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
8719         (vectorizable_conversion): Fix comment.
8720         (vectorizable_shift): New function.
8721         (vectorizable_operation): Move code that handles shifts to
8722         vectorizable_shift.
8723         (vectorizable_type_demotion): Fix comment, pass scalar operands to
8724         vect_get_slp_defs.
8725         (vectorizable_type_promotion, vectorizable_store): Likewise.
8726         (vectorizable_condition): Fix comment.
8727         (vect_analyze_stmt): Call vectorizable_shift.
8728         (vect_transform_stmt): Likewise.
8729         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
8730         Use it as the operand to create vectors for, except reduction
8731         initial definition and store.  Use operands type.
8732         (vect_get_slp_defs): Add new arguments.  Pass them to
8733          vect_get_constant_vectors.
8734
8735 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8736
8737         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
8738         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
8739         * cfghooks.c (fixup_reorder_chain): Likewise.
8740         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
8741         * cgraph.c (cgraph_add_thunk): Likewise.
8742         (cgraph_create_edge_1): Likewise.
8743         (cgraph_create_virtual_clone): Likewise.
8744         * ddg.c (add_cross_iteration_register_deps): Likewise.
8745         * dwarf2out.c (modified_type_die): Likewise.
8746         * emit-rtl.c (set_mem_alias_set): Likewise.
8747         * ggc-zone.c (zone_allocate_marks): Likewise.
8748         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
8749         * gimple.c (iterative_hash_gimple_type): Likewise.
8750         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
8751         (create_single_exit_edge): Likewise.
8752         * haifa-sched.c (choose_ready): Likewise.
8753         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8754         * passes.c (execute_todo): Likewise.
8755         * sched-ebb.c (begin_schedule_ready): Likewise.
8756         * sel-sched.c (code_motion_process_successors): Likewise.
8757         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
8758         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
8759         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
8760         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
8761         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
8762         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
8763         (ssa_conflicts_add): Likewise.
8764         * tree-ssa-copy.c (replace_exp): Likewise.
8765         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
8766         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
8767         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
8768         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
8769         (compute_antic): Likewise.
8770         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
8771         (add_dependence): Likewise.
8772         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
8773         * tree-vrp.c (supports_overflow_infinity): Likewise.
8774         (make_overflow_infinity, negative_overflow_infinity): Likewise.
8775         (avoid_overflow_infinity, register_new_assert_for): Likewise.
8776         (process_assert_insertions_for): Likewise.
8777         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
8778         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
8779         (intersect_loc_chains, variable_merge_over_cur): Likewise.
8780
8781 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8782
8783         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
8784         * reload1.c (has_nonexceptional_receiver): Likewise.
8785         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
8786         (create_new_def_for): Likewise.
8787         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
8788         (merge_phi_nodes): Likewise.
8789         (has_abnormal_incoming_edge_p): Delete.
8790
8791 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
8792
8793         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
8794
8795 2010-10-21  Richard Guenther  <rguenther@suse.de>
8796             Michael Matz  <matz@suse.de>
8797
8798         PR tree-optimization/45764
8799         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
8800         Adjust initial misalignment for negative DR_STEP.
8801         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
8802         do not have the same alignment over the whole iteration domain.
8803
8804 2010-10-21  Richard Guenther  <rguenther@suse.de>
8805
8806         PR tree-optimization/46111
8807         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
8808
8809 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8810
8811         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
8812
8813 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8814
8815         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
8816         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
8817
8818 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8819
8820         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
8821         signal_frame.
8822         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
8823
8824 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8825
8826         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
8827         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
8828
8829 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
8830
8831         * basic-block.h (find_fallthru_edge): Define.
8832         * cfgcleanup.c (merge_blocks_move): Use it.
8833         (try_crossjump_bb): Likewise.
8834         * cfglayout.c (fixup_reorder_chains): Likewise.
8835         (fixup_fallthru_exit_predecessor): Likewise.
8836         * cfgrtl.c (rtl_split_edge): Likewise.
8837         (rtl_verify_flow_info): Likewise.
8838         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8839         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
8840         * ifcvt.c (block_fallthru): Likewise.
8841         * reload1.c (fixup_abnormal_edges): Likewise.
8842         * sched-ebb.c (being_schedule_ready): Likewise.
8843         (schedule_ebb): Likwise.
8844         * sched-rgn.c (find_single_block_region): Likewise.
8845         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
8846         * tree-complex.c (expand_complex_move): Likewise.
8847         * sched-int.h (find_fallthru_edge): Rename to...
8848         (find_fallthru_edge_from): ...this.
8849         * haifa-sched.c (find_fallthru_edge): Rename to...
8850         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
8851         (init_before_recovery): Call find_fallthru_edge_from.
8852         * sel-sched-ir.c (merge_fences): Likewise.
8853         * sel-sched.c (in_fallthru_bb_p): Likewise.
8854         (move_cond_jump): Likewise.
8855
8856 2010-10-20  Paul Koning  <ni1d@arrl.net>
8857
8858         * config/pdp11/pdp11.md (various): Fix conditions on a number of
8859         insn to check for target 11/40 or higher.
8860
8861 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
8862
8863         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
8864         bool instead of a tree.
8865         (c_parser_objc_method_decl): Added bool argument.  Updated call to
8866         objc_build_method_signature.
8867         (c_parser_objc_method_definition): Do not call
8868         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
8869         c_parser_objc_method_decl and objc_start_method_definition.
8870         (c_parser_objc_methodproto): Do not call objc_set_method_type.
8871         Updated calls to c_parser_objc_method_type,
8872         c_parser_objc_method_decl and objc_add_method_declaration.
8873
8874 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
8875
8876         PR tree-optimization/45919
8877         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
8878         array members.
8879
8880         PR tree-optimization/46066
8881         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
8882         instead of gsi_last_bb.
8883
8884 2010-10-20  DJ Delorie  <dj@redhat.com>
8885
8886         * config/m32c/m32c.c (m32c_option_override): Always disable
8887         function-cse in 16-bit mode.  Indirect calls are always worse than
8888         direct calls as there is no 16-bit indirect call opcode.
8889         (m32c_override_options_after_change): New, likewise.
8890
8891 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
8892
8893         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
8894         emitting the conditional move in the inner mode of the SUBREG.
8895
8896 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
8897
8898         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
8899         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
8900         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8901         (ia64_preferred_reload_class): Make static.  Change rclass argument
8902         and result types from enum reg_class to reg_class_t.
8903
8904 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
8905
8906         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
8907         call for single operand expression.
8908
8909 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
8910
8911         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
8912         if there is a call statement to pure or const function in the block.
8913
8914 2010-10-20  Paul Koning  <pkoning@equallogic.com>
8915
8916         Fix several build errors for pdp11 target.
8917         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
8918         (cbranchdf4): Conditional on TARGET_FPU.
8919         (movdf): Ditto; correct alternatives check.
8920         (movmemhi): Fix predicate and constraint.
8921         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
8922
8923 2010-10-20  Richard Guenther  <rguenther@suse.de>
8924
8925         PR lto/45667
8926         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
8927         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
8928         (verify_gimple_assign_single): Disable ADDR_EXPR type check
8929         when in LTO.
8930
8931 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
8932
8933         PR fortran/42169
8934         * ira-emit.c (store_can_be_removed_p): Return false instead of
8935         gcc_unreachable.
8936
8937 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
8938
8939         * fold-const.c (fold_binary_loc): New transformation.
8940
8941 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
8942
8943         PR target/46085
8944         * config/i386/sse.md (reduc_splus_v8sf): Updated.
8945         (reduc_splus_v4df): Likewise.
8946
8947 2010-10-20  Richard Guenther  <rguenther@suse.de>
8948
8949         PR tree-optimization/45860
8950         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
8951         conditional store replacement for non-register type stores.
8952
8953 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
8954
8955         * stor-layout.c (skip_simple_constant_arithmetic): New function.
8956         (self_referential_size): Use it instead of skip_simple_arithmetic.
8957
8958 2010-10-20  Olivier Hainque  <hainque@adacore.com>
8959
8960         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
8961         If the current function calls eh_return, claim live all registers
8962         that we need to check for liveness otherwise.
8963
8964 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
8965
8966         * c-decl.c (c_write_global_declarations): Call
8967         objc_write_global_declarations when compiling Objective-C.
8968         * c-lang.c (finish_file): Removed.
8969
8970 2010-10-19  DJ Delorie  <dj@redhat.com>
8971
8972         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
8973         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
8974         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
8975         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
8976         * doc/tm.texi: Regenerate.
8977         * targhooks.h (default_label_align_after_barrier_max_skip,
8978         default_loop_align_max_skip, default_label_align_max_skip,
8979         default_jump_align_max_skip): Declare.
8980         * target.def (label_align_after_barrier_max_skip): New.
8981         (loop_align_max_skip): New.
8982         (label_align_max_skip): New.
8983         (jump_align_max_skip): New.
8984         * system.h (poison): Add those macros to the list.
8985         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
8986         (LOOP_ALIGN_MAX_SKIP): Remove.
8987         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
8988         (JUMP_ALIGN_MAX_SKIP): Remove.
8989         (default_label_align_after_barrier_max_skip): New.
8990         (default_loop_align_max_skip): New.
8991         (default_label_align_max_skip): New.
8992         (default_jump_align_max_skip): New.
8993         (compute_alignments): Use the new hooks.
8994         (shorten_branches): Likewise.
8995
8996 2010-10-19  Richard Henderson  <rth@redhat.com>
8997
8998         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
8999         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
9000         (fma4i_fmadd_<mode>): New.
9001         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
9002         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
9003         standard fma patterns.
9004         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
9005         enable for FMA.
9006         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
9007         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
9008         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
9009
9010 2010-10-19  Paul Koning  <pkoning@equallogic.com>
9011
9012         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
9013         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
9014
9015 2010-10-19  Richard Henderson  <rth@redhat.com>
9016
9017         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
9018         (fmadf4, *fmsdf4, *nfmadf4): New.
9019         (fmaxf4, *fmsxf4, *nfmaxf4): New.
9020
9021 2010-10-19  Michael Eager  <eager@eagercon.com>
9022
9023         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
9024         Use sjlj unwind info for exceptions.
9025
9026 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
9027
9028         PR fortran/43414
9029         * dwarf2out.c (add_calling_convention_attribute): Flag main
9030         Fortran subroutine with DW_AT_main_subprogram.
9031
9032 2010-10-19  Nick Clifton  <nickc@redhat.com>
9033
9034         * config/rx/rx.c (rx_function_value): Small integer types are
9035         promoted to SImode.
9036         (rx_promote_function_mode): New function.
9037         (TARGET_PROMOTE_FUNCTION_MODE): Define.
9038
9039 2010-10-19  Nick Clifton  <nickc@redhat.com>
9040
9041         * config/mep/mep.c (mep_print_operand): Use
9042         targetm.strip_name_encoding.
9043         (mep_output_aligned_common): Likewise.
9044
9045 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
9046
9047         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
9048
9049 2010-10-18  Richard Henderson  <rth@redhat.com>
9050
9051         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
9052         (fma (neg a) (neg b) c) and (fma a (neg b) c).
9053
9054 2010-10-18  Richard Henderson  <rth@redhat.com>
9055
9056         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
9057         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
9058         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
9059         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
9060         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
9061         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
9062         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
9063         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
9064         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
9065         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
9066         (bdesc_multi_arg): Remove the corresponding builtins.
9067         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
9068         (UNSPEC_FMA4_FMSUBADD): Remove.
9069         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
9070         * config/i386/sse.md (FMA4MODEF4): Remove.
9071         (FMAMODE): Add.
9072         (fma<mode>4): New expander.
9073         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
9074         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
9075         (*fma4i_fmsub_<mode>): Similarly.
9076         (*fma4i_fnmadd_<mode>): Similarly.
9077         (*fma4i_fnmsub_<mode>): Similarly.
9078         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
9079         with the first operand.
9080         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
9081         of explicit arithmetic.  Macroize with AVXMODEF2P.
9082         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
9083         (xop_frcz<mode>2): Macroize with FMAMODE.
9084         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
9085         the first operand.
9086         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
9087         extra negations.
9088         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
9089         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
9090         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
9091         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
9092         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
9093         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
9094         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
9095         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
9096
9097 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
9098
9099         PR rtl-optimization/45966
9100         * combine.c (try_combine): If added_sets_2, deal with the case
9101         where i0 feeds i1 and i1 feeds i2.
9102
9103 2010-10-18  Jan Hubicka  <jh@suse.cz>
9104
9105         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
9106         preserve flags before trying to guess on visibility.
9107         (varpool_externally_visible_p): New function.
9108         (function_and_variable_visibility): Use it.
9109
9110 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9111
9112         Implemented parsing @synthesize and @dynamic for Objective-C.
9113         * c-parser.c (c_parser_external_declaration): Recognize
9114         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
9115         (c_parser_objc_at_synthesize_declaration): New.
9116         (c_parser_objc_at_dynamic_declaration): New.
9117
9118 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9119
9120         * c-parser.c (c_parser_objc_class_declaration): After finding an
9121         error, parse the whole declaration then reset parser->error.
9122
9123 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
9124
9125         PR target/46041
9126         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
9127         * builtins.c (mode_has_fma): Ditto.
9128
9129 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
9130
9131         PR target/36898
9132         PR middle-end/43760
9133         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
9134
9135 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
9136
9137         * config/i386/i386.c (ix86_option_override_internal): Define and
9138         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
9139         default.
9140         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
9141         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
9142
9143 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9144
9145         Merge from 'apple/trunk' branch on FSF servers.
9146         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
9147         following Objective-C change:
9148
9149         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
9150
9151         Radar 4301047
9152         * c-parse.in (objc_quals): Build objc qualifier list same way
9153         as gcc-3.3
9154
9155 2010-10-18  Jan Hubicka  <jh@suse.cz>
9156
9157         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
9158         function_and_variable_visibility): Revert accidental commit.
9159
9160 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9161
9162         Merge from 'apple/trunk' branch on FSF servers.
9163         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
9164         the following Objective-C change:
9165
9166         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
9167
9168         Radar 4204796
9169         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
9170         'volatilized' type used in a typeof operator.
9171
9172 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
9173
9174         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
9175         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
9176         rewrite modelled on gimple_purge_dead_eh_edges.
9177         (gimple_purge_all_dead_abnormal_call_edges): New function.
9178         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
9179         directly instead of through gimple_purge_dead_abnormal_call_edges.
9180         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
9181         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
9182         removed AB side-effects from one of its statements.
9183         (init_pre): Initialize need_ab_cleanup.
9184         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
9185         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
9186
9187 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
9188
9189         PR c/46015
9190         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
9191         on computed goto argument.
9192
9193 2010-10-18  Richard Guenther  <rguenther@suse.de>
9194
9195         PR tree-optimization/45967
9196         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
9197         (could_have_pointers): Likewise.
9198         (handle_rhs_call, handle_const_call, handle_pure_call,
9199         find_func_aliases, intra_create_variable_infos): Remove calls to them.
9200         (struct fieldoff): Add must_have_pointers field.
9201         (type_must_have_pointers): New function.
9202         (field_must_have_pointers): Likewise.
9203         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
9204         Adjust field merging.
9205         (create_function_info_for): May-have-pointers of varinfo is
9206         almost always true.
9207         (create_variable_info_for_1): Likewise.
9208
9209 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
9210
9211         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
9212         of operands to vec_concat.
9213
9214 2010-10-18  Richard Guenther  <rguenther@suse.de>
9215
9216         PR lto/44950
9217         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
9218         also clear references to entries of it.
9219
9220 2010-10-18  Andi Kleen  <ak@linux.intel.com>
9221
9222         PR other/43448
9223         * gccbug.in: Remove.
9224         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
9225         (doc, distclean, install-common): Remove reference to gccbug.
9226         * configure: Regenerate.
9227         * configure.ac (all_outputs): Remove gccbug.
9228         * doc/configfiles.texi: Remove references to gccbug.
9229         * doc/sourcebuild.texi: Dito.
9230
9231 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
9232
9233         PR middle-end/46019
9234         * fold-const.c (fold_binary_loc): If integer_pow2p has
9235         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
9236
9237 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
9238             Jeremie Salvucci  <jeremie.salvucci@free.fr>
9239
9240         * gengtype.c (verbosity_level): Add variable.
9241         (set_gc_used): Count variables for verbosity.
9242         (close_output_files): Backing up files, counting written ones
9243         verbosily.
9244         (write_types): Count emitted functions for verbosity. Added
9245         debug messages.
9246         (write_enum_defn): Count structures for verbosity. Added debug
9247         messages.
9248         (gengtype_long_options): Add "verbose" & "backupdir".
9249         (print_usage): Ditto.
9250         (main): Verbose display of parsed files.
9251
9252         * gengtype.h (verbosity_level): Add declaration.
9253
9254 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
9255
9256         * gengtype.c (parse_program_options): Add allocation of
9257         plugin_files, and correct test on nb_plugin_files.
9258
9259 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9260
9261         Merge from 'apple/trunk' branch on FSF servers.
9262
9263         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
9264
9265         Radar 4133425
9266         * c-decl.c (undeclared_variable): Issue diagnostic on
9267         private 'ivar' access.
9268
9269 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
9270
9271         PR target/46051
9272         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
9273         generated sequence to match *avx_vperm2f128<mode>_nozero.
9274         (vec_interleave_lowv4df): Ditto.
9275         (vec_interleave_highv8sf): Ditto.
9276         (vec_interleave_lowv8sf): Ditto.
9277
9278 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
9279
9280         * libgcov.c (create_file_directory): Enable it for win32 case.
9281         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
9282         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
9283         (GCOV_PREFIX_SKIP): Likewise.
9284
9285 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9286
9287         * doc/objc.texi (GNU Objective-C runtime API): New section.
9288         (Modern GNU Objective-C runtime API): New section.
9289         (Traditional GNU Objective-C runtime API): New section.
9290         (Executing code before main): Mention that this section is
9291         specific to the GNU Objective-C runtime.
9292         (Garbage Collection): Same.
9293
9294 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
9295
9296         * c-parser.c (c_parser_for_statement): Move initialization of
9297         cond and incr before if.
9298
9299 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
9300
9301         * target.def (preferred_output_reload_class): New hook.
9302         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
9303         * doc/tm.texi: Regenerate.
9304         * targhooks.c (default_preferred_output_reload_class): New function.
9305         * targhooks.h (default_preferred_output_reload_class): Declare.
9306         * reload.c (find_dummy_reload): Change rclass argument type from
9307         enum reg_class to reg_class_t. Change this_alternative array type
9308         from enum reg_class to reg_class_t.
9309         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
9310         (push_reload): Change preferred_class variable type to reg_class_t.
9311         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
9312         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
9313         argument type from enum reg_class to reg_class_t. Use
9314         HARD_REGISTER_NUM_P predicate.
9315         * recog.h (reg_fits_class_p): Update prototype.
9316
9317         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
9318         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
9319         Remove.
9320         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
9321         static. Change regclass argument and result types from enum reg_class
9322         to reg_class_t.
9323         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
9324
9325 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
9326
9327         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
9328         visibility enum, and handle @package.
9329
9330 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9331
9332         * doc/objc.texi (What you can and what you cannot do in +load):
9333         Document that sending messages to constant string objects in +load
9334         is not guaranteed to work.
9335
9336 2010-10-16  Jan Hubicka  <jh@suse.cz>
9337
9338         PR middle-end/44206
9339         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
9340         existence of refrences before removing the function.
9341
9342 2010-10-16  Jan Hubicka  <jh@suse.cz>
9343
9344         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
9345         only_called_at_startup and only_called_at_exit.
9346         (cgraph_propagate_frequency): Compute only_called_at_startup and
9347         only_called_at_exit.
9348         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
9349         only_called_at_exit.
9350         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
9351         flags.
9352         * predict.c (compute_function_frequency): Initialize the new flags.
9353
9354 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
9355
9356         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
9357         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
9358         on the bounds of its domain.
9359         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
9360
9361 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
9362
9363         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
9364         * config/avr/avr-protos.h (preferred_reload_class): Remove.
9365         * config/avr/avr.c (preferred_reload_class): Remove.
9366         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
9367         * config/pa/pa.c (emit_move_sequence): Update comment
9368         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
9369         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
9370         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
9371         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
9372         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
9373         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
9374         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
9375         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
9376         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
9377         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
9378         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
9379         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
9380         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
9381
9382 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
9383
9384         * opts.c (set_fast_math_flags,
9385         set_unsafe_math_optimizations_flags): Make static.
9386         * toplev.h (set_fast_math_flags,
9387         set_unsafe_math_optimizations_flags): Remove prototypes.
9388
9389 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
9390
9391         * config/arm/arm.c (arm_option_optimization): Set
9392         flag_section_anchors to 1 not 2.
9393         * config/i386/i386.c (ix86_option_override_internal): Check
9394         global_options_set.x_flag_zee and
9395         global_options_set.x_flag_omit_frame_pointer.
9396         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
9397         flag_zee to 2.
9398         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9399         global_options_set.x_flag_omit_frame_pointer.
9400         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
9401         opts->x_flag_section_anchors to 1 not 2.
9402         * config/sh/sh.c (sh_option_optimization): Don't set
9403         flag_schedule_insns to 2.
9404         (sh_option_override): Check
9405         global_options_set.x_flag_schedule_insns.
9406         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
9407
9408 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
9409
9410         * configure.ac: Make sure inhibit_libc remains false for mingw targets
9411         as cross.
9412         * configure: Regenerated.
9413
9414 2010-10-15  Xinliang David Li  <davidxl@google.com>
9415
9416         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
9417         function.
9418         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
9419         into a recursive function.
9420
9421 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
9422
9423         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
9424         (*movdfcc_1): ditto.
9425
9426 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9427
9428         * target.def (target_option.init_struct): New hook.
9429         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
9430         * doc/tm.texi: Regenerate.
9431         * hooks.c (hook_void_gcc_optionsp): New.
9432         * hooks.h (hook_void_gcc_optionsp): Declare.
9433         * langhooks-def.h (lhd_init_options_struct): Remove.
9434         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
9435         * langhooks.c (lhd_init_options_struct): Remove.
9436         * opts.c (init_options_struct): Also call
9437         targetm.target_option.init_struct.
9438         * config/i386/i386.c (ix86_option_init_struct,
9439         TARGET_OPTION_INIT_STRUCT): New.
9440         (ix86_option_optimization): Move some settings to
9441         ix86_option_init_struct.
9442         * config/pdp11/pdp11.c (pdp11_option_init_struct,
9443         TARGET_OPTION_INIT_STRUCT): New.
9444         (pdp11_option_optimization): Move some settings to
9445         pdp11_option_init_struct.
9446         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
9447         rs6000_option_init_struct.  Use options structure pointer.
9448         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
9449         * config/s390/s390.c (s390_option_init_struct,
9450         TARGET_OPTION_INIT_STRUCT): New.
9451         (s390_option_optimization): Don't set
9452         flag_asynchronous_unwind_tables here.
9453         * config/sh/sh.c (sh_option_init_struct,
9454         TARGET_OPTION_INIT_STRUCT): New.
9455         (sh_option_optimization): Don't set flag_finite_math_only here.
9456         * config/spu/spu.c (spu_option_optimization): Replace by
9457         spu_option_optimization.  Use options structure pointer.
9458         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
9459
9460 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9461
9462         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
9463
9464         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
9465         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
9466         (Standard names): Document fma.
9467
9468         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
9469         __FP_FAST_FMAF, __FP_FAST_FMAL.
9470
9471         * builitns.c (expand_builtin_mathfn_ternary): New function for
9472         expanding ternary math functions, like fma.
9473         (expand_builtin): Call it for the fma builtins.
9474
9475         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
9476         ops at present.
9477
9478         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
9479         vectorizable functions to support vectorizing fma.
9480
9481         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
9482         Handle fma builtins.
9483
9484         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
9485         (UNSPEC_VSX_MSUB): Ditto.
9486         (UNSPEC_VSX_NMADD): Ditto.
9487         (UNSPEC_VSX_NMSUB): Ditto.
9488         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
9489         of UNSPEC. Renumber combiner patterns.
9490         (vsx_fmsub<mode>4*): Ditto.
9491         (vsx_fnmadd<mode>4*): Ditto.
9492         (vsx_fnmsub<mode>4*): Ditto.
9493
9494         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
9495         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
9496         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
9497         (altivec_vmaddfp_1): Ditto.
9498         (altivec_vmaddfp_2): Ditto.
9499         (atlivec_mulv4sf3): Ditto.
9500         (altivec_vnmsubfp): Ditto.
9501         (altivec_vnmsubfp_1): Ditto.
9502         (altivec_vnmsubfp_2): Ditto.
9503         (altivec_vnmsubfp_3): Delete.
9504
9505         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
9506         (fmasf4_fpr): Ditto.
9507         (fmssf4_fpr): Ditto.
9508         (fnmasf4_fpr): Ditto.
9509         (fnmssf4_fpr): Ditto.
9510         (fmadf4): Ditto.
9511         (fmadf4_fpr): Ditto.
9512         (fmsdf4_fpr): Ditto.
9513         (fnmadf4_fpr): Ditto.
9514         (fnmsdf4_fpr): Ditto.
9515
9516         * optabs.h (OTI_fma): Add fma optab.
9517         (fma_optab): Ditto.
9518
9519         * genopinit.c (optabs): Set fma optab.
9520
9521         * rtl.def (FMA): Add FMA rtl.
9522
9523         * tree.h (mode_has_fma): New function to return if MODE supports a
9524         fast multiply and add instruction.
9525         * builtins.c (mode_has_fma): Ditto.
9526
9527 2010-10-15  Jan Hubicka  <jh@suse.cz>
9528
9529         * lto-streamer-out.c (write_symbol): Use pointer set of seen
9530         objects instead of bitmap.
9531         (produce_symtab): Likewise; output defined symbols first.
9532
9533 2010-10-15  Jie Zhang  <jie@codesourcery.com>
9534
9535         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
9536         Option Summary and Index.
9537
9538 2010-10-15  Richard Guenther  <rguenther@suse.de>
9539
9540         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
9541         for automatic variables again.
9542
9543 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9544
9545         * doc/extend.texi (Variable Length): Don't refer to VLAs not
9546         conforming to C99.
9547
9548 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9549
9550         * config/rx/rx.c (rx_option_optimization): Change to
9551         rx_override_options_after_change.  Don't change
9552         flag_lto_compression_level.  Don't check for changes to whether
9553         FPU instructions can be used.  Check and set only
9554         flag_finite_math_only, not other fast-math flags.
9555         (rx_option_override): Call rx_override_options_after_change.
9556         (TARGET_OPTION_OPTIMIZATION): Remove.
9557         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
9558
9559 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9560
9561         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
9562         disable section anchors for lang_hooks.name[4] != 'O'.
9563
9564 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9565
9566         * config/frv/frv.c (frv_option_optimization,
9567         TARGET_OPTION_OPTIMIZATION): Remove.
9568         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
9569
9570 2010-10-15  Michael Matz  <matz@suse.de>
9571
9572         * cgraphunit.c (clone_of_p): Define unconditionally.
9573
9574 2010-10-15  Richard Guenther  <rguenther@suse.de>
9575
9576         PR lto/45957
9577         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
9578
9579 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
9580
9581         * ifcvt.c (find_active_insn_before): New function.
9582         (find_active_insn_after): New function.
9583         (cond_exec_process_if_block): Use new functions to replace
9584         prev_active_insn() and next_active_insn().
9585
9586 2010-10-14  Yao Qi  <yao@codesourcery.com>
9587
9588         PR target/45447
9589         * config/arm/arm.c (arm_build_builtin_va_list): Assign
9590         va_list_name to TYPE_STUB_DECL (va_list_type).
9591
9592 2010-10-14  Jan Hubicka  <jh@suse.cz>
9593
9594         PR middle-end/45621
9595         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
9596         redirected to clone, be happy.
9597         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
9598         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
9599         former_clone_of unconditionally.
9600
9601 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
9602
9603         Merge from FSF apple 'trunk' branch.
9604         2006 Fariborz Jahanian  <fjahanian@apple.com>
9605
9606         Radars 4436866, 4505126, 4506903, 4517826
9607         * c-parser.c (c_parser, objc_property_attr_context) New flag.
9608         (c_lex_one_token): Handle property attributes.
9609         (c_parser_external_declaration): Handle @property.
9610         (c_parser_declaration_or_fndef): Warn on invalid attributes before
9611         @alias, @class, @end and @property objc keywords.
9612         (c_parser_objc_methodprotolist): Handle @property.
9613         (c_parser_objc_property_attrlist): New.
9614         (c_parser_objc_at_property): New.
9615         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
9616         (build_modify_expr): Likewise.
9617
9618 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
9619
9620         PR tree-optimization/46008
9621         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
9622
9623 2010-10-14  Richard Guenther  <rguenther@suse.de>
9624
9625         PR tree-optimization/44913
9626         * tree-data-ref.c (disjoint_objects_p): Remove.
9627         (dr_may_alias_p): Simplify.  Only hand the base object to
9628         the alias-oracle.
9629         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
9630         some more trees, bail out instead of asserting.
9631         (ptr_derefs_may_alias_p): Likewise.  Export.
9632         (refs_may_alias_p_1): Handle STRING_CSTs.
9633         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
9634
9635 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
9636
9637         PR c/45969
9638         * c-typeck.c (build_binary_op): Don't try to compute a semantic
9639         type with excess precision for boolean operations.
9640
9641 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
9642             Basile Starynkevitch  <basile@starynkevitch.net>
9643
9644         * gengtype.c:  Include getopt.h and version.h.
9645
9646         (lang_bitmap, struct outf, outf_p)
9647         (get_output_file_with_visibility, oprintf): Definitions moved to
9648         gengtype.h
9649         (output_files, header_file, srcdir, srcdir_len, this_file)
9650         (do_dump): No more static variables.
9651         (do_debug): New.
9652         (dbgprint_count_type_at): Added new function.
9653         (gengtype_long_options): New.
9654         (print_usage, print_version, parse_program_options): New.
9655         (main): Call parse_program_options, and removed old option
9656         handling code.  Added some debug output.
9657
9658         * gengtype.h:  Updated copyright year.
9659         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
9660         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
9661         Moved from gengtype.c to here.
9662         (do_debug, read_state_filename, write_state_filename): New variables.
9663         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
9664
9665         * Makefile.in:
9666         (REVISION): Always defined.
9667         (version.o): Removed ifdef REVISION_c.
9668         (s-gtype): Pass arguments to build/gengtype program.
9669         (build/version.o): Added building rule.
9670         (build/gengtype$(build_exeext)): Added build/version.o.
9671
9672 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
9673
9674         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
9675         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
9676         __strong macros.
9677
9678 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
9679
9680         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
9681         may_trap_or_fault_p instead of may_trap_p predicate.
9682         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
9683         (substitute_placeholder_in_expr): Likewise.
9684         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
9685         flag on MEM_REF nodes.
9686         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
9687         flags on INDIRECT_REF nodes.
9688
9689 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
9690
9691         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
9692         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
9693         (arm*-*-eabi*) <tm_file>: Likewise.
9694         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
9695         (frv-*-*linux*) <tm_file>: Likewise.
9696         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
9697         and associated helper macros.
9698         * config/frv/frv-abi.h: Delete.
9699
9700 2010-10-14  Richard Guenther  <rguenther@suse.de>
9701
9702         PR lto/44561
9703         * tree.def (NULLPTR_TYPE): New tree code.
9704         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
9705         * dwarf2out.c (is_base_type): Likewise.
9706         (gen_type_die_with_usage): Likewise.
9707         * sdbout.c (plain_type_1): Likewise.
9708         * tree.c (build_int_cst_wide): Likewise.
9709         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
9710
9711 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
9712
9713         * params.c (params_finished): New.
9714         (add_params): Assert !params_finished.
9715         (finish_params): New.
9716         (set_param_value_internal): Take params and params_set
9717         parameters.  Assert params_finished.
9718         (set_param_value, maybe_set_param_value): Take params and
9719         params_set parameters.  Update calls to set_param_value_internal.
9720         (set_default_param_value): Assert !params_finished.  Don't use
9721         set_param_value_internal.
9722         (default_param_value, init_param_values): New.
9723         * params.h (struct param_info): Change value to default_value.
9724         Remove set.
9725         (set_param_value, maybe_set_param_value): Add params and
9726         params_set parameters.
9727         (PARAM_VALUE): Get parameters from global_options.
9728         (PARAM_SET_P): Remove.
9729         (finish_params, default_param_value, init_param_values): New.
9730         * common.opt (param_values): New Variable.
9731         * config/arm/arm.c (arm_option_override): Pass extra arguments to
9732         maybe_set_param_value.
9733         * config/i386/i386.c (ix86_option_override_internal): Pass extra
9734         arguments to maybe_set_param_value.
9735         * config/picochip/picochip.c (picochip_option_override): Pass
9736         extra arguments to maybe_set_param_value.
9737         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
9738         extra arguments to maybe_set_param_value.
9739         * config/s390/s390.c (s390_option_override): Use
9740         maybe_set_param_value instead of set_param_value.  Pass extra
9741         arguments to maybe_set_param_value.
9742         * config/sparc/sparc.c (sparc_option_override): Pass extra
9743         arguments to maybe_set_param_value.
9744         * config/spu/spu.c (spu_option_override): Pass extra arguments to
9745         maybe_set_param_value.
9746         * opts.c (handle_param): Take opts and opts_set parameters.
9747         Update call to set_param_value.
9748         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
9749         initial_loop_invariant_max_bbs_in_loop): Remove.
9750         (init_options_once): Don't set them.
9751         (init_options_struct): Initialize parameters structures.
9752         (default_options_optimization): Use default_param_value when
9753         restoring defaults.  Update calls to maybe_set_param_value.
9754         (finish_options): Update calls to maybe_set_param_value.
9755         (common_handle_option): Update calls to handle_param and
9756         set_param_value.
9757         * toplev.c (DEFPARAM): Update definition for changes to param_info.
9758         (general_init): Call finish_params.
9759
9760 2010-10-14  Nick Clifton  <nickc@redhat.com>
9761
9762         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
9763         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
9764         (FIRST_PSEUDO_REGISTER): Increase by one.
9765         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
9766         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
9767         (MODES_TIEABLE): Call mn10300_modes_tieable.
9768         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
9769         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
9770         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
9771         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
9772         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
9773         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
9774         (mn10300_cc_status_mdep): Delete.
9775         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
9776         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
9777         the combine-stack-adjust pass.
9778         (print_operand): Use the mode of the comparison operation to
9779         select the comparison suffix.
9780         (notice_update_cc): Delete.
9781         (mn10300_secondary_reload_class): Remove test for stack pointer
9782         based arithmetic.
9783         (output_tst): Rename to mn10300_output_cmp.
9784         (impossible_plus_operand): Move into predicates.md.
9785         (mn10300_legitimize_address): Make static.
9786         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
9787         constant pic operands.
9788         (mn10300_legitimate_constant_p): New function.
9789         (mn10300_case_values_threshold): Make static.
9790         (mn10300_hard_regno_mode_ok): New function.
9791         (mn10300_modes_tieable): New function.
9792         (mn10300_select_cc_mode): New function.
9793         * config/mn10300/predicates.md (impossible_plus_operand): Define.
9794         * config/mn10300/mn10300-protos.h: Tidy.
9795         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
9796         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
9797         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
9798         with clobbers or sets of CC_REG.
9799         (CC_REG): Define.
9800         (mov*): Remove use of CLR instruction.
9801         (cbranch_si4_<code>): New pattern/split.
9802         (integer_conditional_branch): New pattern.
9803         (cbranch_sf4_<code>): New pattern/split.
9804         (float_conditional_branch): New pattern.
9805         (casesi): Use addsi3 pattern instead of movsi pattern to add and
9806         move a value at the same time.
9807         (cc0 peepholes): Remove.
9808
9809 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9810
9811         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
9812         on RTX_FRAME_RELATED_P insns and the insn to which
9813         NOTE_INSN_EPILOGUE_BEG is attached.
9814         * sched-vis.c (print_value): Allow NULL value.
9815
9816 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9817
9818         PR rtl-optimization/45570
9819         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
9820         assert that we are pipelining outer loops.  Allow returning
9821         zero predecessors.
9822
9823 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9824
9825         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
9826         (tidy_control_flow): Tidy vertical space.
9827         (sel_remove_bb): New variable idx.  Use it to remember the basic
9828         block index before deleting the block.
9829         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
9830         (sel_merge_blocks): ... here.
9831         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
9832
9833 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
9834
9835         * cse.c (is_dead_reg): Change into inline function that is not
9836         called through for_each_rtx.
9837         (set_live_p): Adjust caller.
9838         (insn_live_p): Don't reset DEBUG_INSNs here.
9839         (struct dead_debug_insn_data): New data.
9840         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
9841         (delete_trivially_dead_insns): If there is just one setter for the
9842         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
9843         and add DEBUG_INSN for it right before the removed setter and
9844         use the DEBUG_EXPR instead of the dead pseudo.
9845
9846 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
9847
9848         * et-forest.c (et_nca): Return NULL immediately when
9849         the dominance forest has disjoint components.
9850
9851 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
9852
9853         * ira.c (setup_class_hard_regs): Fix typo in indexing
9854         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
9855
9856 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
9857
9858         * graph.c (inbb): New variable.
9859         (start_bb): Set inbb to 1 if output is inside of a building block.
9860         (end_bb): Check if output is inside of a building block.
9861
9862 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
9863
9864         PR rtl-optimization/45912
9865         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
9866         regno of registers instead of their index to compute the alignment.
9867
9868 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
9869
9870         * config/i386/i386.c (ix86_build_const_vector): Check vector
9871         mode instead of scalar mode.
9872         (ix86_build_signbit_mask): Likewise.
9873         (ix86_expand_fp_absneg_operator): Updated.
9874         (ix86_expand_copysign): Likewise.
9875         (ix86_expand_int_vcond): Likewise.
9876         (ix86_emit_swdivsf): Likewise.
9877         (ix86_sse_copysign_to_positive): Likewise.
9878         (ix86_expand_sse_fabs): Likewise.
9879         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
9880         * config/i386/sse.md (copysign<mode>3): Likewise.
9881         (sse2_cvtudq2ps): Likewise.
9882         (vec_unpacku_float_hi_v4si): Likewise.
9883         (vec_unpacku_float_lo_v4si): Likewise.
9884
9885         * config/i386/i386.c (ix86_builtins): Add
9886         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
9887         (bdesc_args): Likewise.
9888         (ix86_builtin_vectorized_function): Support
9889         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
9890         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
9891         and IX86_BUILTIN_CVTPS2DQ256.
9892         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
9893
9894         * config/i386/sse.md (STORENT_MODE): New.
9895         (VEC_FLOAT_MODE): Likewise.
9896         (VEC_EXTRACT_MODE): Likewise.
9897         (*avx_cvtdq2pd256_2): Likewise.
9898         (vec_pack_trunc_v4df): Likewise.
9899         (vec_interleave_highv8sf): Likewise.
9900         (vec_interleave_lowv8sf): Likewise.
9901         (storent<mode>): Macroized.
9902         (<code><mode>2: absneg): Likewise.
9903         (copysign<mode>3): Likewise.
9904         (vec_extract<mode>): Likewise.
9905
9906         PR target/44180
9907         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
9908         for V8SFmode.
9909
9910 2010-10-13  Richard Guenther  <rguenther@suse.de>
9911             H.J. Lu  <hongjiu.lu@intel.com>
9912
9913         * config/i386/sse.md (reduc_splus_v8sf): Add.
9914         (reduc_splus_v4df): Likewise.
9915         (vec_unpacks_hi_v8sf): Likewise.
9916         (vec_unpacks_lo_v8sf): Likewise.
9917         (*avx_cvtps2pd256_2): Likewise.
9918         (vec_unpacks_float_hi_v8si): Likewise.
9919         (vec_unpacks_float_lo_v8si): Likewise.
9920         (vec_interleave_highv4df): Likewise.
9921         (vec_interleave_lowv4df): Likewise.
9922
9923 2010-10-13  Richard Guenther  <rguenther@suse.de>
9924
9925         PR objc/45878
9926         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
9927         alone if there are no virtual methods.
9928
9929 2010-10-13  Richard Henderson  <rth@redhat.com>
9930
9931         * expr.c (build_personality_function): Take parameter LANG instead
9932         of parameter NAME.  Build the name based on the lang prefix and the
9933         unwind method in use.
9934         * tree.c (lhd_gcc_personality): Update call to
9935         build_personality_function.
9936
9937 2010-10-13  Richard Guenther  <rguenther@suse.de>
9938
9939         PR objc/45878
9940         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
9941
9942 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
9943
9944         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
9945         Canonicalize input operands of ASM_OPERANDS insns.
9946
9947 2010-10-13  Richard Guenther  <rguenther@suse.de>
9948
9949         PR tree-optimization/45788
9950         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
9951         EH update until fixup-cfg.
9952
9953 2010-10-13  Julian Brown  <julian@codesourcery.com>
9954
9955         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
9956         from CORE_REGS and GENERAL_REGS classes.
9957         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
9958         final constraint for register preferencing.
9959
9960 2010-10-13  Richard Guenther  <rguenther@suse.de>
9961
9962         PR tree-optimization/45970
9963         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
9964         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
9965         (stmt_kills_ref_p): Likewise.
9966         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
9967
9968 2010-10-13  Richard Guenther  <rguenther@suse.de>
9969
9970         PR tree-optimization/45982
9971         * tree-ssa-structalias.c (make_constraints_to): New function.
9972         (make_constraint_to): Implement in terms of make_constraints_to.
9973         (find_func_aliases): Properly make return values of pure/const
9974         functions escape if they assign to sth that is not a pointer.
9975
9976 2010-10-13  Richard Guenther  <rguenther@suse.de>
9977
9978         PR middle-end/45874
9979         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
9980         Fixup the CFG when EH was fixed up.
9981
9982 2010-10-13  Ira Rosen  <irar@il.ibm.com>
9983
9984         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
9985         Use operand's type for POINTER_PLUS_EXPR.
9986
9987 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
9988
9989         * c-parser.c (c_parser_for_statement): Initialize incr.
9990
9991 2010-10-12  Xinliang David Li  <davidxl@google.com>
9992
9993         PR tree-optimization/45972
9994         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
9995         with too many arguments.
9996
9997 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
9998
9999         PR fortran/45636
10000         * tree-ssa-forwprop.c: Include expr.h.
10001         (constant_pointer_difference, simplify_builtin_call): New functions.
10002         (tree_ssa_forward_propagate_single_use_vars): Call
10003         simplify_builtin_call on builtin calls.
10004
10005 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
10006
10007         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
10008         (*adddi3_extend_sp32): Likewise.
10009         (*subdi3_insn_sp32): Likewise.
10010         (*subdi3_extend_sp32): Likewise.
10011         (*negdi2_sp32): Use negative test for consistency.
10012
10013 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
10014
10015         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
10016         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
10017         * config/fixed-bit.h: Likewise.
10018         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
10019         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
10020         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
10021         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
10022         (DF_SIZE): Likewise.
10023         * doc/tm.texi: Regenerate.
10024
10025 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
10026
10027         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
10028         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
10029         (*isel_reversed_unsigned_<mode>): New.
10030         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
10031         as valid comparisons and adjust operands and output appropriately.
10032         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
10033
10034 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
10035
10036         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
10037         DATA_ALIGNMENT and add COND parameter. Update comments above.
10038         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
10039         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
10040
10041 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
10042
10043         PR bootstrap/45958
10044         * exec-tool.in: Support '-plugin' as the second option to the linker.
10045
10046 2010-10-12  Richard Henderson  <rth@redhat.com>
10047
10048         PR middle-end/45962
10049         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
10050         (expand_stack_vars): Assert large base allocated when used.
10051
10052 2010-10-12  Richard Guenther  <rguenther@suse.de>
10053
10054         * tree-ssa-structalias.c (get_constraint_for_1): Constants
10055         only point to nonlocal, not anything.
10056
10057 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
10058
10059         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
10060         unwind info for exceptions.
10061
10062 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10063
10064         PR testsuite/45851
10065         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
10066         Document optional target selector.
10067
10068 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
10069
10070         * flag-types.h: New.
10071         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
10072         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
10073         options.h.
10074         (OPTIONS_H): Define.
10075         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
10076         of options.h.
10077         * configure.ac (tm_include_list): Include options.h not flags.h.
10078         * configure: Regenerate.
10079         * flags.h: Include flag-types.h.  Include options.h at top of file
10080         again.
10081         (enum debug_info_type, enum debug_info_level, enum
10082         debug_info_usage, enum symbol_visibility, struct visibility_flags,
10083         enum ira_algorithm, enum ira_region, enum excess_precision, enum
10084         graph_dump_types, enum stack_check_type,
10085         enum warn_strict_overflow_code): Move to flag-types.h
10086         * opth-gen.awk: Include flag-types.h in options.h.
10087
10088 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
10089
10090         * expr.c (store_expr): Share code for STRING_CST and
10091         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
10092         check if target is a MEM.
10093
10094         * rtl.h: Include hashtab.h.
10095         (iterative_hash_rtx): New prototype.
10096         * rtl.c (iterative_hash_rtx): New function.
10097         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
10098         (output_loc_list): Return immediately if emitted is set, set it.
10099         (hash_loc_operands, hash_locs, hash_loc_list,
10100         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
10101         optimize_location_lists_1, optimize_location_lists): New function.
10102         (dwarf2out_finish): Call optimize_location_lists.
10103         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
10104
10105 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10106
10107         PR testsuite/45974
10108         Revert:
10109         * Makefile.in ($(lang_checks_parallel))
10110         ($(lang_checks_parallelized)): Use single quotes for
10111         $(RUNTESTFLAGS), to allow passing quoted content.
10112
10113 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10114
10115         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
10116         actual_oldval.  Use __builtin_expect.
10117         (SUBWORD_VAL_CAS): Likewise.
10118
10119 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
10120
10121         * recog.c (nonmemory_operand): Call immediate_operand for
10122         CONSTANT_P operands.
10123
10124 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
10125
10126         * config/i386/i386.md (movmem<mode>): Macroize expander from
10127         movmem{si,di} using SWI48 mode iterator.
10128         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
10129         *strmovsi_rex_1 using P mode iterator.
10130         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
10131         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
10132         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
10133         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
10134         (setmem<mode>): Macroize expander from setmem{si,di} using
10135         SWI48 mode iterator.
10136         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
10137         *strsetsi_rex_1 using P mode iterator.
10138         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
10139         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
10140         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
10141         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
10142         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
10143         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
10144         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
10145         mode iterator.
10146         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
10147         *strlenqi_rex_1 using P mode iterator.
10148
10149 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
10150
10151         PR bootstrap/45445
10152         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
10153         static functions.
10154         (mark_ref_live, mark_ref_dead): Use them.
10155         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
10156         Save the original reg, and use the new functions.
10157         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
10158         changed.
10159         (check_and_make_def_conflict): Save the original reg.
10160
10161 2010-10-11  Martin Jambor  <mjambor@suse.cz>
10162
10163         PR middle-end/45699
10164         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
10165         thunks.
10166
10167 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10168
10169         * Makefile.in ($(lang_checks_parallel))
10170         ($(lang_checks_parallelized)): Use single quotes for
10171         $(RUNTESTFLAGS), to allow passing quoted content.
10172
10173         PR bootstrap/35855
10174         * opt-functions.awk (BEGIN): New section.
10175         (lower, upper, digit, alnum): New variables.
10176         (static_var, opt_sanitized_name): Use alnum instead of character
10177         classes, for non-C locale.
10178         * optc-gen.awk: Likewise.
10179         * opth-gen.awk: Likewise.
10180
10181 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
10182
10183         * target.def (preferred_reload_class): New hook.
10184         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
10185         * doc/tm.texi: Regenerate.
10186         * targhooks.c (default_preferred_reload_class): New function.
10187         * targhooks.h (default_preferred_reload_class): Declare.
10188         * reload.c (find_dummy_reload): Change preferred_class variable type
10189         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
10190         target hook.
10191         (find_reloads): Change goal_alternative array type from int to
10192         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
10193         (push_reload, find_reloads_address_part): Use
10194         TARGET_PREFERRED_RELOAD_CLASS target hook.
10195         * reload1.c (emit_input_reload_insns): Ditto.
10196         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
10197         hook. Change rclass argument and secondary_class variable types from
10198         'enum reg_class' to reg_class_t.
10199
10200         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
10201         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
10202         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
10203         Change regclass argument and result types from enum reg_class to
10204         reg_class_t.
10205         (TARGET_PREFERRED_RELOAD_CLASS): Define.
10206
10207 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
10208
10209         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
10210         in masking operations.
10211         (simplify_const_unary_operation): Likewise.
10212         (simplify_binary_operation_1): Likewise.
10213         (simplify_const_binary_operation): Likewise.
10214         (simplify_const_relational_operation): Likewise.
10215         (simplify_ternary_operation): Likewise.
10216         (simplify_immed_subreg): Likewise.
10217
10218 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10219
10220         PR middle-end/45862
10221         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
10222         (TARGET_SUPPORTS_WEAK): New.
10223         * doc/tm.texi: Regenerate.
10224         * defaults.h (SUPPORTS_WEAK): Update comment.
10225         (TARGET_SUPPORTS_WEAK): New.
10226         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
10227         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
10228         SUPPORTS_WEAK.
10229         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
10230         make_decl_one_only): Likewise.
10231         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
10232         TARGET_SUPPORTS_WEAK.
10233         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
10234         instead of SUPPORTS_WEAK.
10235
10236 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10237
10238         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
10239
10240 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
10241
10242         * vec.h (VEC_qsort): Define.
10243         * dbxout.c (output_used_types): Use it.
10244         * df-scan.c (df_sort_and_compress_refs): Likewise.
10245         (df_sort_and_compress_mws): Likewise.
10246         * genautomata.c (uniq_sort_alt_states): Likewise.
10247         (evaluate_equiv_classes): Likewise.
10248         (output_trans_table): Likewise.
10249         (output_state): Likewise.
10250         * gimplify.c (compare_case_labels): Likewise.
10251         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
10252         * ipa.c (build_cdtor_fns): Likewise.
10253         * lto.c (lto_wpa_write_files): Likewise.
10254         * sel-sched.c (fill_vec_av_set): Likewise.
10255         * tree-predcom.c (determine_roots_comp): Likewise.
10256         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
10257         (splice_param_accesses): Likewise.
10258         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
10259         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
10260         (reassociate_bb): Likewise.
10261         * tree-ssa-sccvn.c (sort_scc): Likewise.
10262         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
10263
10264 2010-10-11  Ian Lance Taylor  <iant@google.com>
10265
10266         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
10267         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
10268         TREE_THIS_NOTRAP when appropriate.
10269         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
10270         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
10271         newly created MEM_REF.
10272
10273 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
10274
10275         Nathan Froyds patch to hooks FUNCTION_ARG etc.
10276         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
10277         (picochip_incoming_function_arg): Delete.
10278         (picochip_arg_advance): Delete.
10279         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
10280         (FUNCTION_INCOMING_ARG): Delete.
10281         (FUNCTION_ARG_ADVANCE): Delete.
10282         * config/picochip/picochip.c (picochip_function_arg): Take a
10283         const_tree and a bool.
10284         (picochip_incoming_function_arg): Likewise.
10285         (picochip_arg_advance): Likewise.
10286         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
10287         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10288
10289 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10290
10291         PR middle-end/45955
10292         * ipa.c (build_cdtor): Delete endless loop.
10293
10294 2010-10-07  Andi Kleen  <ak@linux.intel.com>
10295
10296         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
10297         checksum-options.
10298         (checksum-options): Add.
10299         (cc1-dummy): Remove.
10300         (cc1-checksum): Change to run checksum over object files
10301         and options only.
10302         * dummy-checksum.c: Remove.
10303         * genchecksum.c: Update copyright.
10304         (usage): Allow multiple arguments.
10305         (BLOCKSIZE): Add.
10306         (dosum): Change for incremental checksum. Remove C output.
10307         (main): Iterate over all argument files. Add C output.
10308
10309 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
10310
10311         * params.c (set_param_value_internal): New.
10312         (set_param_value): Use set_param_value_internal.
10313         (maybe_set_param_value, set_default_param_value): New.
10314         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
10315         (maybe_set_param_value, set_default_param_value): Declare.
10316         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
10317         * config/i386/i386.c (ix86_option_override_internal): Use
10318         maybe_set_param_value.
10319         * config/ia64/ia64.c (ia64_option_default_params,
10320         TARGET_OPTION_DEFAULT_PARAMS): New.
10321         (ia64_option_optimization): Move some code to
10322         ia64_option_default_params.
10323         * config/picochip/picochip.c (picochip_option_override): Use
10324         maybe_set_param_value.
10325         * config/rs6000/rs6000.c (rs6000_option_default_params,
10326         TARGET_OPTION_DEFAULT_PARAMS): New.
10327         (rs6000_option_override_internal): Use maybe_set_param_value.
10328         (rs6000_option_optimization): Move some code to
10329         rs6000_option_default_params.
10330         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
10331         * config/sh/sh.c (sh_option_default_params,
10332         TARGET_OPTION_DEFAULT_PARAMS): New.
10333         (sh_option_optimization): Move some code to sh_option_default_params.
10334         * config/sparc/sparc.c (sparc_option_override): Use
10335         maybe_set_param_value.
10336         * config/spu/spu.c (spu_option_default_params,
10337         TARGET_OPTION_DEFAULT_PARAMS): New.
10338         (spu_option_optimization): Move some code to spu_option_default_params.
10339         (spu_option_override): Use maybe_set_param_value.
10340         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
10341         * doc/tm.texi: Regenerate.
10342         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
10343         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
10344         compiler_params.
10345         (default_options_optimization): Use maybe_set_param_value.
10346         (finish_options): Use maybe_set_param_value.
10347         * target.def (target_option.default_params): New hook.
10348         * toplev.c (general_init): Call targetm.target_option.default_params.
10349
10350 2010-10-11  Ira Rosen  <irar@il.ibm.com>
10351
10352         PR tree-optimization/45902
10353         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
10354         vector type for constants, unless it's a pointer.
10355
10356 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10357
10358         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
10359
10360 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
10361
10362         PR target/45870
10363         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
10364         (ix86_delegitimize_address): Use it.
10365
10366 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
10367
10368         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
10369
10370 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
10371
10372         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
10373         to cum struct in the call to function_arg_advance.
10374         (alpha_function_arg_advance): Mark named as unused.
10375
10376 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
10377
10378         * config/mips/mips.c (mips_handle_option): Make "value" with
10379         ATTRIBUTE_UNUSED.
10380
10381 2010-10-09  Richard Henderson  <rth@redhat.com>
10382
10383         PR rtl-opt/33721
10384         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
10385         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
10386         required_align, tidy the code a bit.  Emit split_stack code in the
10387         right place.  Mark the return value with the alignment properly.
10388         * expr.h (allocate_dynamic_stack_space): Update decl.
10389         * builtins.c (expand_builtin_apply): Update call to
10390         allocate_dynamic_stack_space.
10391         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
10392         * calls.c (initialize_argument_information): Update call to
10393         allocate_dynamic_stack_space.
10394         (expand_call): Likewise.
10395
10396         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
10397         Don't update_stack_alignment here.
10398         (alloc_stack_frame_space): Make ALIGN unsigned.
10399         (stack_var_cmp): Sort by alignment too.
10400         (partition_stack_vars): Don't merge large and small alignment vars.
10401         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
10402         Take care when BASE is not virtual_stack_vars_rtx.
10403         (expand_stack_vars): Allocate dynamic stack space for large
10404         alignment variables.
10405         (expand_one_stack_var): Update all to expand_one_stack_var_at.
10406         (defer_stack_allocation): True for large alignment vars.
10407         (update_stack_alignment): Merge into ...
10408         (expand_one_var): ... here.
10409         (gimple_expand_cfg): Place code from expand_stack_vars.
10410
10411 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10412
10413         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10414         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
10415         (pdp11_function_arg_advance): New function.
10416         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10417
10418 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10419
10420         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
10421         * libgcc2.c: Likewise.
10422
10423 2010-10-09  Richard Guenther  <rguenther@suse.de>
10424
10425         PR lto/45956
10426         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
10427         Properly check if a decl is an automatic var.
10428
10429 2010-10-09  Richard Guenther  <rguenther@suse.de>
10430
10431         PR lto/45947
10432         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
10433
10434 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10435
10436         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
10437         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10438         * config/mmix/mmix.c (mmix_function_arg): Rename to...
10439         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
10440         bool arguments.
10441         (mmix_function_arg): New function.
10442         (mmix_function_incoming_arg): New function.
10443         (mmix_function_arg_advance): New function.
10444         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
10445         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10446
10447 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10448
10449         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10450         * config/vax/vax.c (vax_function_arg): New function.
10451         (vax_function_arg_advance): New function.
10452         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10453
10454 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10455
10456         * config/pa/pa-protos.h (function_arg): Delete.
10457         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10458         * config/pa/pa.c (function_arg): Rename to...
10459         (pa_function_arg): ...this.  Make static.  Take a const_tree and
10460         a bool.
10461         (pa_function_arg_advance): New function.
10462         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10463
10464 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10465
10466         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10467         * config/m68k/m68k.c (m68k_function_arg): New function.
10468         (m68k_function_arg_advance): New function.
10469         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10470
10471 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10472
10473         * config/avr/avr-protos.h (function_arg): Delete.
10474         (function_arg_advance): Delete.
10475         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10476         * config/avr/avr.c (function_arg): Rename to...
10477         (avr_function_arg): ...this.  Make static.  Take a const_tree and
10478         a bool.
10479         (function_arg_advance): Rename to...
10480         (avr_function_arg_advance): ...this.  Make static.  Take a
10481         const_tree and a bool.
10482         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10483
10484 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10485
10486         * config/alpha/alpha-protos.h (function_arg): Delete.
10487         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10488         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
10489         * config/alpha/alpha.c (function_arg): Rename to...
10490         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
10491         a bool.  Delete TARGET_ABI_UNICOSMK code.
10492         (alpha_function_arg_advance): New function.
10493         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10494
10495 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10496
10497         * config/mep/mep-protos.h (mep_function_arg): Delete.
10498         (mep_function_arg_advance): Delete.
10499         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10500         * config/mep/mep.c (mep_function_arg): Make static.  Take a
10501         const_tree and a bool.
10502         (mep_function_arg_advance): Likewise.
10503         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10504
10505 2010-10-09  Richard Guenther  <rguenther@suse.de>
10506
10507         PR tree-optimization/45945
10508         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
10509
10510 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
10511
10512         PR tree-optimization/45612
10513         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
10514         Test LABEL_DECLs as well.  Fix formatting issues.
10515         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
10516         whose label is present in NON_SSA_VARS.
10517         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
10518         as well.  Fix formatting issues.
10519         (visit_bb): Fix typos and formatting issue.
10520
10521 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10522
10523         PR tree-optimization/45950
10524         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
10525         before initializing vno->op.
10526
10527 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
10528
10529         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
10530         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
10531
10532 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
10533
10534         PR target/45913
10535         * config/i386/i386.c (ix86_binary_operator_ok): Support
10536         "andhi/andsi/anddi" as a zero-extending move.
10537
10538 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10539
10540         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
10541         into a temporary array.
10542
10543 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
10544
10545         PR tree-optimization/45903
10546         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
10547         of {A,L}SHIFTRT of MEM.
10548
10549 2010-10-08  Richard Guenther  <rguenther@suse.de>
10550
10551         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
10552         Re-construct BLOCK_VARS.
10553         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
10554         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
10555         * tree.c (free_lang_data_in_block): Remove.
10556         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
10557         Do not touch the BLOCK tree.
10558         * expr.c (expand_expr_real_1): Allow externals.
10559
10560 2010-10-08  Richard Guenther  <rguenther@suse.de>
10561
10562         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
10563         Do not output BLOCK_SUBBLOCKS.
10564         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
10565         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
10566         Re-construct BLOCK_SUBBLOCKS of parent block.
10567         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
10568         for BINFO_BASE_ACCESSES.
10569
10570 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
10571
10572         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
10573         (TREE_H): Include $(FLAGS_H) instead of options.h.
10574         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
10575         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
10576         * common.opt (flag_complex_method, flag_evaluation_order,
10577         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
10578         Variable declarations.
10579         * configure.ac (tm_include_list): Include flags.h instead of options.h.
10580         * configure: Regenerate.
10581         * flags.h: Condition out contents for target libraries.  Include
10582         options.h at end of file.
10583         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
10584         flag_evaluation_order, flag_warn_unused_result): Remove.
10585         * gcc.c (main): Intialize global_options with global_options_init.
10586         * langhooks-def.h (lhd_init_options_struct): Declare.
10587         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
10588         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
10589         * langhooks.c (lhd_init_options_struct): New.
10590         * langhooks.h (struct lang_hooks): Add init_options_struct.
10591         Update comment on init_options.
10592         * optc-gen.awk: Generate initializer for global_options_init, not
10593         global_options.
10594         * opth-gen.awk: Condition out structure declarations for target
10595         libraries.  Declare global_options_init.
10596         * opts-common.c: Include flags.h instead of options.h.
10597         * opts.c (flag_warn_unused_result): Remove.
10598         (read_cmdline_options): Take gcc_options parameters.  Pass them to
10599         read_cmdline_option.
10600         (initial_lang_mask, initial_min_crossjump_insns,
10601         initial_max_fields_for_field_sensitive,
10602         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
10603         (init_options_once): New.  Split out of decode_options.
10604         (init_options_struct): New.  Split out of decode_options.
10605         (decode_cmdline_options_to_array_default_mask): New.
10606         (default_options_optimization): New.  Split out of decode_options.
10607         (decode_options): Move most code to other functions.  Update call
10608         to read_cmdline_options.
10609         (finish_options): New.  Split out of decode_options.
10610         * opts.h (decode_options): Add gcc_options parameters.
10611         (init_options_once, init_options_struct,
10612         decode_cmdline_options_to_array_default_mask): New.
10613         * toplev.c (flag_complex_method, flag_ira_algorithm,
10614         flag_ira_region, flag_evaluation_order): Remove.
10615         (general_init): Use global_options_init for initial flag values
10616         for global_dc.
10617         (toplev_main): Call init_options_once, init_options_struct,
10618         lang_hooks.init_options_struct,
10619         decode_cmdline_options_to_array_default_mask and
10620         lang_hooks.init_option before decode_options.  Update arguments to
10621         decode_options.
10622         * tree.h: Include flags.h instead of options.h.
10623
10624 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10625
10626         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10627
10628 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10629
10630         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
10631         Delete.
10632         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
10633         (FUNCTION_INCOMING_ARG): Delete.
10634         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
10635         (function_arg_slotno): Likewise.  Take bool arguments.
10636         (sparc_arg_partial_bytes): Update call to it.
10637         (function_arg): Rename to...
10638         (sparc_function_arg_1): ...this.  Take bool arguments.
10639         (sparc_function_arg, sparc_function_incoming_arg): New functions.
10640         (function_arg_advance): Rename to...
10641         (sparc_function_arg_advance): ...this.  Take bool argument.
10642         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
10643         (TARGET_FUNCTION_INCOMING_ARG): Define.
10644
10645 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10646
10647         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
10648         Delete.
10649         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10650         * config/bfin/bfin.c (function_arg_advance): Rename to...
10651         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
10652         and bool arguments.
10653         (function_arg): Rename to...
10654         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
10655         arguments.
10656         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10657
10658 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10659
10660         * config/score/score-protos.h (score_function_arg): Delete.
10661         (score_function_arg_advance): Delete.
10662         * config/score/score3.h (score3_function_arg_advance): Take a
10663         const_tree and a bool.
10664         (score3_function_arg): Likewise.
10665         * config/score/score7.h (score7_function_arg_advance): Likewise.
10666         (score7_function_arg): Likewise.
10667         * config/score/score3.c (score3_classify_arg): Likewise.
10668         (score3_function_arg_advance, score3_function_arg): Likewise.
10669         * config/score/score7.c (score7_classify_arg): Likewise.
10670         (score7_function_arg_advance, score7_function_arg): Likewise.
10671         * config/score/score.c (score_function_arg_advance): Likewise.
10672         (score_function_arg): Likewise.  De-const-ify `cum' argument.
10673         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10674
10675 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10676
10677         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
10678         (s390_function_arg): Delete.
10679         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10680         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
10681         (s390_function_arg_integer): Likewise.
10682         (s390_function_arg_advance): Make static.  Take a const_tree and
10683         a bool.
10684         (s390_function_arg): Likewise.
10685         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10686
10687 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10688
10689         * config/spu/spu-protos.h (spu_function_arg): Delete.
10690         * config/spu/spu.h (FUNCTION_ARG): Delete.
10691         (FUNCTION_ARG_ADVANCE): Move code to ...
10692         * config/spu/spu.c (spu_function_arg_advance): New function.
10693         (spu_function_arg): Make static.  Take a const_tree and a bool.
10694         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
10695         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10696
10697 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10698
10699         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10700
10701 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10702
10703         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
10704         (init_vn_nary_op_from_op): New function.
10705         (init_vn_nary_op_from_stmt): New function.
10706         (vn_nary_op_lookup_1): New function.
10707         (sizeof_vn_nary_op): New function.
10708         (alloc_vn_nary_op_noinit): New function.
10709         (alloc_vn_nary_op): New function.
10710         (vn_nary_op_insert_into): New function.
10711         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
10712         (vn_nary_op_lookup): Likewise.
10713         (vn_nary_op_lookup_stmt): Likewise.
10714         (vn_nary_op_insert_pieces): Likewise.
10715         (vn_nary_op_insert): Likewise.
10716         (vn_nary_op_insert_stmt): Likewise.
10717         (copy_nary): Likewise.
10718         (set_value_id_for_result): New function.
10719         (set_hashtable_value_ids): Call it.
10720
10721 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10722
10723         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10724         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
10725
10726 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10727
10728         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
10729         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10730
10731 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
10732
10733         PR debug/45656
10734         * cse.c (cse_extended_basic_block): Preserve cc0 info across
10735         debug isnsn.  Skip them when searching for cc0 setter.
10736         (set_live_p): Skip debug insns when searching for cc0 user.
10737
10738 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
10739
10740         PR debug/45673
10741         PR debug/45604
10742         PR debug/45419
10743         PR debug/45408
10744         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
10745         type of MEM_REFs to INTEGER_CSTs.
10746
10747 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
10748
10749         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
10750         m68hc11_print_operand_address.
10751
10752 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
10753
10754         * builtins.c (rewrite_call_expr): Move code to...
10755         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
10756         (rewrite_call_expr_array): New function.
10757         (fold_builtin_sprintf_chk_1): New function.
10758         (fold_builtin_sprintf_chk): Call it.
10759         (gimple_fold_builtin_sprintf_chk): Likewise.
10760         (fold_builtin_snprintf_chk_1): New function.
10761         (fold_builtin_snprintf_chk): Call it.
10762         (gimple_fold_builtin_snprintf_chk): Likewise.
10763         (gimple_rewrite_call_expr): Delete.
10764
10765 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10766
10767         * config.host: Update copyright year.
10768
10769 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10770
10771         * config.host (host_lto_plugin_soname): New shell variable.
10772         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
10773         * config.in: Regenerate.
10774         * configure: Regenerate.
10775         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
10776         LTO plugin shared library.
10777
10778 2010-10-07  Richard Henderson  <rth@redhat.com>
10779
10780         * target.h (enum unwind_info_type): Move ...
10781         * coretypes.h: ... here.
10782
10783 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
10784
10785         * doc/objc.texi (Fast enumeration protocol): Mention that
10786         'unsigned int' can also be used instead of 'unsigned long' in
10787         countByEnumeratingWithState:objects:count:.
10788
10789 2010-10-07  Martin Jambor  <mjambor@suse.cz>
10790
10791         * tree-sra.c (struct access): New field grp_assignment_write.
10792         (dump_access): Dump grp_assignment_write.
10793         (build_accesses_from_assign): Set grp_assignment_write.
10794         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
10795         (mark_read_status): Renamed to mark_rw_status, individual values
10796         renamed too.
10797         (analyze_access_subtree): Changed type of mark_write to
10798         mark_read_status.  Fixed propagating of mark_read and
10799         mark_write.  Changed benefit estimate.  Updated comment.
10800
10801 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
10802
10803         PR Tree-Vect/45847
10804         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
10805         check for vectype_out returned by get_vectype_for_scalar_type().
10806
10807 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
10808
10809         PR target/45805
10810         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
10811         constraint, add register specifier in instruction template.
10812         (neon_vec_pack_trunc_<mode>): Likewise.
10813         (neon_vec_<US>mult_<mode>): Add register specifier to
10814         instruction template.
10815
10816 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10817
10818         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
10819         cygwin2.o.
10820         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
10821         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
10822         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
10823         (cygwin2.o): Likewise.
10824         * config/i386/cygwin1.c: Delete file.
10825         * config/i386/cygwin2.c: Likewise.
10826         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
10827         make all {%!mno-cygwin} ones unconditional.
10828         (STARTFILE_SPEC): Likewise.
10829         (REAL_LIBGCC_SPEC): Likewise.
10830         (LIB_SPEC): Likewise.
10831         (CXX_WRAP_SPEC): Likewise.
10832         (LINK_SPEC): Likewise.
10833         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
10834         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
10835         (cygwin_gplusplus_include_dir): Delete now-unused array.
10836         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
10837         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
10838         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
10839         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
10840         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
10841         (cygwin_local_include_dir): Delete now-unused array.
10842         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
10843         (cygwin_cross_include_dir): Delete now-unused array.
10844         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
10845         (cygwin_tool_include_dir): Delete now-unused array.
10846         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
10847         (cygwin_standard_include_dir): Delete now-unused array.
10848         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
10849         (GEN_CVT_ARRAY): Delete now-unused macro definition.
10850         (cvt_to_mingw): Delete now-unused array.
10851         (mingw_scan): Remove prototype of deleted function.
10852         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
10853         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
10854         * doc/invoke.texi (-mcygwin): Don't document removed option.
10855         (-mno-cygwin): Likewise.
10856
10857 2010-10-07  Richard Guenther  <rguenther@suse.de>
10858
10859         * machmode.h (mode_for_vector): Declare.
10860         * stor-layout.c (mode_for_vector): New function, split out from ...
10861         (layout_type): ... here.
10862         * tree-vectorizer.h (current_vector_size): Declare.
10863         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
10864         mask vector type is available.
10865         (get_vectype_for_scalar_type): Rename to ...
10866         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
10867         size argument.
10868         (get_vectype_for_scalar_type): New wrapper around
10869         get_vectype_for_scalar_type_and_size using current_vector_size.
10870         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
10871         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
10872         of vect_analyze_loop here.
10873         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
10874         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
10875         to autodetect.
10876         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
10877         V8SF to V8SI conversion builtin.
10878
10879 2010-10-07  Richard Guenther  <rguenther@suse.de>
10880
10881         * target.def (autovectorize_vector_sizes): New target hook.
10882         * targhooks.c (default_autovectorize_vector_sizes): New function.
10883         * targhooks.h (default_autovectorize_vector_sizes): Declare.
10884         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
10885         Document.
10886         * doc/tm.texi: Update.
10887         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
10888         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
10889
10890 2010-10-07  Richard Guenther  <rguenther@suse.de>
10891
10892         * target.def (units_per_simd_word): Rename to ...
10893         (preferred_simd_mode): ... this.  Return mode instead of size.
10894         * targhooks.c (default_units_per_simd_word): Rename to ...
10895         (default_preferred_simd_mode): ... this.  Return word_mode.
10896         * targhooks.h (default_preferred_simd_mode): Declare.
10897         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
10898         (arm_preferred_simd_mode): ... this.  Re-implement.
10899         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
10900         (ix86_preferred_simd_mode): ... this.  Re-implement.
10901         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
10902         (sparc_preferred_simd_mode): ... this.  Re-implement.
10903         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
10904         (mips_preferred_simd_mode): ... this.  Re-implement.
10905         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
10906         (rs6000_preferred_simd_mode): ... this.  Re-implement.
10907         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
10908         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
10909         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
10910         * doc/tm.texi: Update.
10911
10912 2010-10-07  Richard Guenther  <rguenther@suse.de>
10913
10914         PR middle-end/45869
10915         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
10916         of pointers.
10917
10918 2010-10-07  Alan Modra  <amodra@gmail.com>
10919
10920         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
10921         rather than sign extension by hand.
10922
10923 2010-10-07  Jan Hubicka  <jh@suse.cz>
10924
10925         PR middle-end/45926
10926         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
10927
10928 2010-10-07  Richard Guenther  <rguenther@suse.de>
10929
10930         PR bootstrap/45914
10931         * configure.ac: Fix typo.
10932         * configure: Regenerated.
10933
10934 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10935
10936         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
10937         define_builtin_std where it's unnecessary.
10938         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
10939
10940 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
10941
10942         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
10943         * doc/tm.texi.in: Regenerate.
10944         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
10945         * targhooks.c (default_class_likely_spilled_p): Don't use the
10946         CLASS_LIKELY_SPILLED_P macro.
10947
10948         * config/arm/arm.md: Update comment.
10949
10950 2010-10-06  Jan Hubicka  <jh@suse.cz>
10951
10952         * ipa.c (cgraph_remove_unreachable_nodes): External references can
10953         always be removed.
10954         (cgraph_externally_visible_p): We can not bring local comdats that
10955         are known to linker; fix handling of internal visibility.
10956         (function_and_variable_visibility): Likewise.
10957
10958 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
10959
10960         PR rtl-optimization/45394
10961         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
10962         (struct rtx_subst_pair): Remove AFTER field.
10963         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
10964         (propagate_for_debug): Remove MOVE parameter and adjust.
10965         (try_combine): In the special case where I2 is a PARALLEL, combine only
10966         destinations of SETs and set I2SRC to the I2 source.
10967         Adjust calls to propagate_for_debug throughout.
10968         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
10969         insns.
10970
10971 2010-10-06  Olivier Hainque  <hainque@adacore.com>
10972
10973         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
10974         switch on insn codes as sequence of ifs.
10975
10976 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
10977
10978         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
10979         be UI_NONE for picochip.
10980         (picochip_option_override): Do not disable exception flags.
10981         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
10982         Declare.
10983
10984 2010-10-06  Richard Guenther  <rguenther@suse.de>
10985
10986         * Makefile.in (regmove.o): Depend on $(TARGET_H).
10987
10988 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
10989
10990         Implemented fast enumeration for Objective-C.
10991         * c-parser.c (objc_could_be_foreach_context): New.
10992         (c_lex_one_token): Recognize RID_IN keyword in a potential
10993         Objective-C foreach context.
10994         (c_parser_declaration_or_fndef): Added parameter.  Accept
10995         Objective-C RID_IN keyword as terminating a declaration; in that
10996         case, return the declaration in the new parameter.
10997         (c_parser_extenral_declaration): Updated calls to
10998         c_parser_declaration_or_fndef.
10999         (c_parser_declaration_or_fndef): Same change.
11000         (c_parser_compound_statement_nostart): Same change.
11001         (c_parser_label): Same change.
11002         (c_parser_objc_methodprotolist): Same change.
11003         (c_parser_omp_for_loop): Same change.
11004         (c_parser_for_statement): Detect and parse Objective-C foreach
11005         statements.
11006         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
11007         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
11008         fast enumeration parsing code to turn off the c99 error but still
11009         perform checks on the loop declarations.
11010         * c-tree.h (check_for_loop_decls): Updated declaration.
11011         * doc/objc.texi: Document fast enumeration.
11012
11013 2010-10-06  Nick Clifton  <nickc@redhat.com>
11014
11015         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
11016         (MDR_REGNUM): Define.
11017         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
11018         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
11019         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
11020         (REGISTER_NAMES): Add MDR.
11021         (DWARF2_DEBUGGING_INFO): Define to 1.
11022         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
11023         (F): New function.  Sets RTX_FRAME_RELATED_P.
11024         (mn10300_gen_multiple_store): Use F.
11025         (expand_prologue): Use F.  Use gen_movsf() to push floating
11026         point registers.
11027         (expand_epilogue): Use gen_movsf() to pop floating point registers.
11028         (mn10300_option_override): Disable combine stack adjust pass.
11029
11030 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
11031
11032         PR target/45901
11033         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
11034         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
11035
11036 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
11037
11038         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
11039         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
11040         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
11041         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
11042         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
11043         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
11044         BUILT_IN_TOUPPER): Mark as leaf.
11045
11046         PR middle-end/45838
11047         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
11048         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
11049         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
11050         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
11051         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
11052         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
11053         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
11054
11055 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
11056
11057         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
11058         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11059         (m68hc11_class_likely_spilled_p): New function.
11060
11061 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
11062
11063         * c-parser.c (c_parser_objc_method_definition): Updated comment.
11064
11065 2010-10-05  Jan Hubicka  <jh@suse.cz>
11066
11067         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
11068         Document.
11069         * opts.c (decode_options): Handle lto partitions.
11070         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
11071         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
11072
11073 2010-10-05  Jan Hubicka  <jh@suse.cz>
11074
11075         * cgraphunit.c (assemble_function): Output thunks and aliases before
11076         the function itself.
11077
11078 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
11079
11080         * config/picochip/picochip.c (picochip_option_override): Disable
11081         exception flags for picochip.
11082
11083 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
11084
11085         * opts-common.c (handle_option, handle_generated_option,
11086         read_cmdline_option, set_option): Add diagnostic_context
11087         parameter.  Update calls among these functions.
11088         (set_option): Don't use global_dc.
11089         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
11090         (decode_options): Pass global_dc to enable_warning_as_error.
11091         (common_handle_option): Pass global_dc to enable_warning_as_error.
11092         (enable_warning_as_error): Add diagnostic_context parameter.
11093         Document parameters.  Don't use global_dc.  Pass
11094         diagnostic_context parameter to handle_generated_option.
11095         * opts.h (set_option, handle_option, handle_generated_option,
11096         read_cmdline_option, enable_warning_as_error): Add
11097         diagnostic_context parameter.
11098         * Makefile.in (lto-opts.o): Update dependencies.
11099         * coretypes.h (struct diagnostic_context, diagnostic_context):
11100         Declare here.
11101         * diagnostic.h (diagnostic_context): Don't declare typedef here.
11102         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
11103         * langhooks-def.h (struct diagnostic_context): Don't declare here.
11104         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
11105         using diagnostic_context typedef.
11106         * langhooks.c (lhd_initialize_diagnostics): Declare using
11107         diagnostic_context typedef.
11108         * langhooks.h (struct diagnostic_context): Don't declare here.
11109         (initialize_diagnostics, print_error_function): Declare using
11110         diagnostic_context typedef.
11111         * lto-opts.c: Include diagnostic.h.
11112         (lto_reissue_options): Pass global_dc to set_option.  Pass
11113         DK_UNSPECIFIED not 0.
11114         * plugin.c (plugins_internal_error_function): Declare using
11115         diagnostic_context typedef.
11116         * plugin.h (struct diagnostic_context): Don't declare here.
11117         (plugins_internal_error_function): Declare using
11118         diagnostic_context typedef.
11119
11120 2010-10-05  Olivier Hainque  <hainque@adacore.com>
11121             Nicolas Roche  <roche@adacore.com>
11122
11123         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
11124         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
11125
11126 2010-10-05  Ira Rosen  <irar@il.ibm.com>
11127
11128         PR tree-optimization/45752
11129         * tree-vect-slp.c (vect_get_mask_element): Remove static
11130         variables, make them function arguments.
11131         (vect_transform_slp_perm_load): Pass new arguments to
11132         vect_get_mask_element.
11133
11134 2010-10-05  Richard Guenther  <rguenther@suse.de>
11135
11136         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
11137         (gimple_mod_pow2): Likewise.
11138         (gimple_mod_subtract): Likewise.
11139         (gimple_ic): Likewise.
11140         (gimple_stringop_fixed_value): Likewise.
11141         * tree-profile.c (tree_init_edge_profiler): Mark profile
11142         functions nothrow and leaf.
11143         (add_abnormal_goto_call_edges): Remove.
11144         (tree_gen_edge_profiler): Work on SSA form.
11145         (tree_gen_ic_profiler): Likewise.  Simplify.
11146         (do_tree_profiling): Update SSA form.
11147         (pass_tree_profile): Remove.
11148         (do_tree_profiling): Likewise.
11149         (gate_tree_profile_ipa): New function.
11150         (pass_ipa_tree_profile): New.
11151         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
11152         state of instrumented functions.
11153         * passes.c (init_optimization_passes): Remove early non-SSA
11154         inlining.  Move profiling after early optimizations.
11155         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
11156         (pass_ipa_early_inline): Likewise.
11157         * tree-pass.h (pass_ipa_early_inline): Remove.
11158         (pass_tree_profile): Likewise.
11159         (pass_ipa_tree_profile): Declare.
11160
11161 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11162             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
11163
11164         * config/s390/s390.c (z196_cost): New.
11165         (s390_handle_arch_option): Add -march=z196.
11166         (s390_option_override): Use the new cost function and use the z10
11167         defaults also for z196.
11168         (legitimate_reload_constant_p): Adjust comment.
11169         (legitimate_reload_fp_constant_p): New function.
11170         (s390_preferred_reload_class): Distingiush between FP and Int constants.
11171         (preferred_la_operand_p): Avoid la with index on z196.
11172         (s390_adjust_priority): Trigger also for z196.
11173         (s390_issue_rate): Issue rate for z196 is 3.
11174         (s390_z10_fix_long_loop_prediction): Rename to ...
11175         (s390_fix_long_loop_prediction): ... this.
11176         (s390_reorg): Apply the z10 adjustments also for z196.
11177         (s390_loop_unroll_adjust): Do this also for z196.
11178         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
11179         (enum processor_flags): Add PF_Z196.
11180         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
11181         (TARGET_CPU_Z196, TARGET_Z196): New macros.
11182         * config.gcc: Enable z196 for --with-arch.
11183         * config/s390/2817.md: New file.
11184         * config/s390/2084.md: New type for multiply and add.
11185         * config/s390/2097.md: Likewise.
11186         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
11187         (UNSPECV_ATOMIC_OP): New constants.
11188         (fmadddf, fmaddsf): New values for type attribute.
11189         (z196prop): New insn attribute.
11190         (cpu, cpu_facility): Add z196.
11191         (ATOMIC_Z196): New code iterator.
11192         (noxa): New code attribute.
11193         (gk): New mode attribute.
11194         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
11195         Support load zero for fp constants.
11196         (fixuns_truncdddi2, fixuns_trunctddi2)
11197         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
11198         for z196.
11199         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
11200         (popcounthi2, popcountqi2): New expander.
11201         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
11202         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
11203         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
11204         insn definition.
11205         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
11206         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
11207         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
11208         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
11209         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
11210         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
11211         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
11212         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
11213         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
11214         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
11215         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
11216         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
11217         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
11218         Support new z196 instructions.
11219
11220 2010-10-05  Richard Guenther  <rguenther@suse.de>
11221
11222         PR middle-end/45877
11223         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
11224         case where gimplification optimizes away the stmt.
11225
11226 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
11227
11228         PR debug/45849
11229         * var-tracking.c (strip_pointer_flags): New function.
11230         (emit_note_insn_var_location): If rtx_equal_p check failed,
11231         retry on locations simplified with simplify_replace_fn_rtx
11232         and strip_pointer_flags as its callback.
11233
11234 2010-10-04  Jan Hubicka  <jh@suse.cz>
11235
11236         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
11237         (can_refer_decl_in_current_unit_p): ... this one; reverse return
11238         value; handle comdats too.
11239         (canonicalize_constructor_val): Use it; handle function_decls
11240         correctly.
11241         (gimple_fold_obj_type_ref_known_binfo): Likewise.
11242         * gimple.c (get_base_address): Accept all kinds of decls.
11243
11244 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11245
11246         * flags.h (g_switch_value, g_switch_set): Remove.
11247         * opts.c (g_switch_value, g_switch_set): Remove.
11248         * config/g.opt (G): Add Var(g_switch_value).
11249         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
11250         (alpha_option_override): Check global_options_set.x_g_switch_value
11251         instead of g_switch_set.
11252         (alpha_in_small_data_p): Remove cast in comparison with
11253         g_switch_value.
11254         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
11255         g_switch_value to unsigned HOST_WIDE_INT.
11256         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
11257         with g_switch_value.
11258         (frv_handle_option): Don't handle -G here.
11259         (frv_option_override): Check global_options_set.x_g_switch_value
11260         instead of g_switch_set.  Don't modify g_switch_set.
11261         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
11262         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
11263         g_switch_value to unsigned HOST_WIDE_INT.
11264         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
11265         (ia64_option_override): Check global_options_set.x_g_switch_value
11266         instead of g_switch_set.
11267         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
11268         Remove.
11269         (lm32_in_small_data_p): Remove cast in comparison with
11270         g_switch_value.
11271         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
11272         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
11273         HOST_WIDE_INT.
11274         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
11275         (m32r_init): Check global_options_set.x_g_switch_value instead of
11276         g_switch_set.
11277         (m32r_in_small_data_p): Remove cast in comparison with
11278         g_switch_value.
11279         (m32r_file_start): Format g_switch_value with %d.
11280         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
11281         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
11282         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
11283         handle -G here.
11284         (microblaze_option_override): Check
11285         global_options_set.x_g_switch_value instead of g_switch_set.
11286         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
11287         (mips_option_override): Check global_options_set.x_g_switch_value
11288         instead of g_switch_set.
11289         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
11290         (rs6000_file_start): Format g_switch_value with %d.
11291         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
11292         comparisons with g_switch_value.
11293         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
11294         global_options_set.x_g_switch_value instead of g_switch_set.
11295         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11296         global_options_set.x_g_switch_value instead of g_switch_set.
11297         * config/score/score.c (score_handle_option): Don't handle -G here.
11298         * config/score/score3.c (score3_option_override): Check
11299         global_options_set.x_g_switch_value instead of g_switch_set.
11300         * config/score/score7.c (score7_option_override): Check
11301         global_options_set.x_g_switch_value instead of g_switch_set.
11302
11303 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
11304
11305         * common.opt (fira-coalesce): Remove.
11306
11307         * doc/invoke.texi (flag_ira_coalesce): Remove.
11308
11309         * ira-color.c (allocno_coalesced_p): Move before
11310         copy_freq_compare_func.
11311         processed_coalesced_allocno_bitmap): Ditto.
11312         (update_conflict_hard_regno_costs): Don't use
11313         ALLOCNO_FIRST_COALESCED_ALLOCNO.
11314         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
11315         (assign_hard_reg): Assume no coalesced allocnos.
11316         (get_coalesced_allocnos_attributes): Remove.
11317         (bucket_allocno_compare_func): Assume no coalesced allocnos.
11318         (push_allocno_to_stack): Ditto.
11319         (remove_allocno_from_bucket_and_push): Use
11320         ira_print_expanded_allocno instead of print_coalesced_allocno.
11321         (push_allocnos_to_stack): Assume uncoalesced allocnos.
11322         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
11323         all_conflicting_hard_regs.
11324         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
11325         (setup_allocno_left_conflicts_size): Ditto.
11326         (put_allocno_into_bucket): Ditto.
11327         (copy_freq_compare_func): Remove.
11328         (copy_freq_compare_func, merge_allocnos): Move before
11329         coalesced_pseudo_reg_freq_compare.
11330         coalesced_allocno_conflict_p): Ditto.
11331         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
11332         parameter.  Assume it true.
11333         (color_allocnos): Assume uncoalesced allocnos.  Use
11334         ira_print_expanded_allocno instead of print_coalesced_allocno.
11335         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
11336         parameter.
11337
11338         * ira.c: Remove comment about coalescing.
11339
11340 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11341
11342         * config/mips/mips.h (target_flags_explicit): Declare for
11343         GENERATOR_FILE.
11344
11345 2010-10-04  Andi Kleen  <ak@linux.intel.com>
11346
11347         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
11348         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
11349
11350 2010-10-04  Matthias Klose  <doko@ubuntu.com>
11351
11352         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
11353         multilib osdirname if it exists.
11354         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
11355
11356 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
11357
11358         PR middle-end/45876
11359         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
11360         arg0's type or its unsigned counterpart as utype.  Convert
11361         arg1 to utype unconditionally.
11362
11363 2010-10-04  Julian Brown  <julian@codesourcery.com>
11364
11365         * expr.c (expand_assignment): Add assertion to prevent emitting
11366         null rtx for movmisalign pattern.
11367         (expand_expr_real_1): Likewise.
11368         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
11369         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
11370         (arm_vector_alignment_reachable): New.
11371         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
11372         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
11373         (arm_print_operand): Include alignment qualifier in %A.
11374         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
11375         (movmisalign<mode>): New expander.
11376         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
11377         insn patterns.
11378
11379 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11380
11381         * optc-gen.awk: Define global_options_set.  Don't define
11382         target_flags_explicit.
11383         * opth-gen.awk: Declare global_options_set.  Define
11384         target_flags_explicit as macro.
11385         * opts-common.c (handle_option): Take opts_set and generated_p
11386         parameters.
11387         (handle_generated_option, read_cmdline_option, set_option): Take
11388         opts_set parameter.
11389         (set_option): Use opts_set instead of hardcoding target_flags and
11390         target_flags_explicit.
11391         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
11392         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
11393         flag_value_profile_transformations_set, flag_peel_loops_set,
11394         flag_branch_probabilities_set, flag_inline_functions_set,
11395         flag_ipa_cp_set, flag_ipa_cp_clone_set,
11396         flag_predictive_commoning_set, flag_unswitch_loops_set,
11397         flag_gcse_after_reload_set): Remove.
11398         (common_handle_option, lang_handle_option, target_handle_option):
11399         Take opts_set parameter.  Assert that it is &global_options_set.
11400         (common_handle_option): Don't set _set variables.  Check opts_set
11401         instead of such variables.
11402         (enable_warning_as_error): Pass &global_options_set to
11403         handle_generated_option.
11404         * opts.h (cl_option_handler_func.handler, set_option,
11405         handle_option, handle_generated_option, read_cmdline_option): Add
11406         opts_set parameters.
11407         (handle_option): Add generated_p parameter.
11408         * config/i386/i386.c (ix86_function_specific_save,
11409         ix86_function_specific_restore): Updat for renaming of
11410         target_flags_explicit field.
11411         * config/i386/i386.opt (target_flags_explicit): Rename to
11412         ix86_target_flags_explicit.
11413         * config/ia64/ia64.c (ia64_override_options_after_change): Check
11414         global_options_set.x_flag_selective_scheduling and
11415         global_options_set.x_flag_selective_scheduling2, not
11416         sel_sched_switch_set.
11417         * flags.h (sel_sched_switch_set,
11418         flag_speculative_prefetching_set): Remove.
11419         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
11420         that it is &global_options_set.
11421         (process_command): Pass &global_options_set to read_cmdline_option.
11422         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
11423         set_option.
11424         * toplev.c (target_flags_explicit): Remove.
11425
11426 2010-10-04  Jan Hubicka  <jh@suse.cz>
11427
11428         PR middle-end/45871
11429         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
11430         use get_ref_base_and_offset to handle references.
11431         (fold_const_aggregate_ref): Update.
11432
11433 2010-10-04  Martin Jambor  <mjambor@suse.cz>
11434
11435         PR tree-optimization/45572
11436         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
11437         ipa_check_create_node_params.
11438         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
11439
11440 2010-10-04  Yao Qi  <yao@codesourcery.com>
11441
11442         * doc/passes.texi: Clean up.
11443
11444 2010-10-03  Ian Lance Taylor  <iant@google.com>
11445
11446         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
11447         referring to a field using a typedef name.
11448         (find_anonymous_field_with_type): New static function.
11449         (convert_to_anonymous_field): New static function.
11450         (convert_for_assignment): If -fplan9-extensions, permit converting
11451         pointer to struct to pointer to anonymous field.
11452         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
11453         (is_duplicate_field): New static function.
11454         (detect_field_duplicates_hash): If -fplan9-extensions, check for
11455         typedef names duplicating field names.
11456         (detect_field_duplicates): Likewise.
11457         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
11458         (C Dialect Options): Document -fplan9-extensions.
11459         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
11460
11461 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
11462
11463         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
11464         revision 164914.
11465         (vect_create_data_ref_ptr): Likewise.
11466         * tree-vect-stmts.c (vectorizable_store): Likewise.
11467         (perm_mask_for_reverse): Likewise.
11468         (reverse_vec_elements): Likewise.
11469         (vectorizable_load): Likewise.
11470
11471 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11472
11473         * cppbuiltin.c: New file.
11474         * cppbuiltin.h: New file.
11475         * Makefile.in: Take into account cppbuiltin.{h,c}.
11476
11477 2010-10-03  Andi Kleen  <ak@linux.intel.com>
11478
11479         * lto-cgraph.c (input_cgraph): Check for missing sections.
11480
11481 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
11482
11483         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
11484         to nonimmediate_operand.  Force operand 2 to register when allowed.
11485         (*<shiftrt_insn><mode>3_mask): Ditto.
11486         (*<rotate_insn><mode>3_mask): Ditto.
11487
11488 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
11489
11490         PR tree-optimization/45720
11491         PR tree-optimization/45764
11492         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11493         Don't accept backwards consecutive accesses.
11494         (vect_create_data_ref_ptr): Disallow negative steps.
11495
11496         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
11497         (perm_mask_for_reverse): Removed.
11498         (reverse_vec_elements): Likewise.
11499         (vectorizable_load): Don't handle negative steps.
11500
11501 2010-10-02  Jan Hubicka  <jh@suse.cz>
11502
11503         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
11504         call destination is known.
11505
11506 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11507
11508         PR target/45820
11509         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
11510         earlier.
11511
11512 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11513
11514         * doc/install.texi (Configuration): Document build_configargs,
11515         host_configargs, target_configargs.
11516
11517 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
11518
11519         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
11520         (*<shiftrt_insn><mode>3_mask): Ditto.
11521         (*<rotate_insn><mode>3_mask): Ditto.
11522
11523 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
11524
11525         PR tree-optimization/44716
11526         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
11527         (HOT_TEXT_SECTION_NAME): Define.
11528
11529 2010-10-01  Nick Clifton  <nickc@redhat.com>
11530
11531         * common.opt: Add -fcombine-stack-adjustments.
11532         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
11533         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
11534         flag_combine_stack_adjustments.
11535         * doc/invoke.texi: Document the new option.
11536
11537 2010-10-01  Richard Guenther  <rguenther@suse.de>
11538
11539         PR tree-optimization/45854
11540         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
11541
11542 2010-10-01  Anthony Green  <green@moxielogic.com>
11543
11544         * config.gcc: Fix moxie-*-rtems* configuration.
11545
11546 2010-10-01  Richard Guenther  <rguenther@suse.de>
11547
11548         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
11549         (gen_decl_die): Likewise.
11550
11551 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11552
11553         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
11554         to the function code for SPU MD builtins.
11555         (spu_expand_builtin): Update.
11556         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
11557
11558 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11559
11560         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
11561         sjlj_except_unwind_info.
11562
11563 2010-10-01  Tristan Gingold  <gingold@adacore.com>
11564
11565         * configure.ac: Define the nop insn for avr*-*-*
11566         * configure: Regenerate.
11567
11568 2010-10-01  Alan Modra  <amodra@gmail.com>
11569
11570         PR target/45807
11571         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
11572         extend toc_restore_insn.
11573
11574 2010-09-30  Richard Guenther  <rguenther@suse.de>
11575
11576         PR tree-optimization/43959
11577         * function.c (gimplify_parameters): Use create_tmp_reg instead of
11578         create_tmp_var.
11579
11580 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
11581
11582         * config/sh/sh.c (sh_expand_prologue): Set
11583         current_function_static_stack_size.
11584
11585 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11586
11587         * configure.ac: Check for Solaris 8 ld with .hidden support.
11588         * configure: Regenerate.
11589
11590 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11591
11592         PR middle-end/45758
11593         * graphite.c (graphite_initialize): Call scev_reset.
11594
11595 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11596
11597         * sese.h (scev_analyzable_p): Return false for real or floating
11598         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
11599
11600 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11601
11602         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
11603         and ps.
11604         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
11605         domain.
11606         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
11607         Do not allocate ub_expr, it is passed in initialized.
11608
11609 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11610
11611         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
11612         (build_cloog_prog): Dump CLooG input file when
11613         flag_graphite_dump_cloog is set.  This is disabled on trunk.
11614         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
11615
11616 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11617
11618         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
11619         verify_dominators for CDI_POST_DOMINATORS.
11620         * sese.h: Remove comment about CDI_POST_DOMINATORS.
11621         (recompute_all_dominators): Remove call to free_dominance_info
11622         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
11623         for CDI_POST_DOMINATORS.
11624
11625 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11626
11627         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
11628         over pbb_dim_iter_domain.
11629
11630 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11631
11632         * graphite-flattening.c: Fix comments.
11633
11634 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11635
11636         * Makefile.in (OBJS-common): Add graphite-flattening.o.
11637         (graphite-flattening.o): New rule.
11638         * common.opt (floop-flatten): New flag.
11639         * doc/invoke.texi (-floop-flatten): Documented.
11640         * graphite-flattening.c: New.
11641         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
11642         * graphite-poly.h (flatten_all_loops): Declared.
11643         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
11644         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
11645         is set, also set flag_graphite.
11646
11647 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11648
11649         * graphite-poly.c (cloog_checksum): New.
11650         * graphite-poly.h (cloog_checksum): Declared.
11651
11652 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11653
11654         * graphite-poly.c (pbb_number_of_iterations): Removed.
11655         (pbb_number_of_iterations_at_time): Correctly compute the number
11656         of iterations in the transformed loop.
11657         * graphite-poly.h (pbb_number_of_iterations): Removed.
11658
11659 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11660
11661         * graphite-poly.h (lst_update_scattering_seq): Removed.
11662         (lst_update_scattering): Correctly handle outermost loop dewey
11663         renumbering.
11664
11665 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11666
11667         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
11668         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
11669         * graphite-poly.h (lst_niter_for_loop): New.
11670
11671 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11672
11673         * graphite-poly.c (apply_poly_transforms): Do not abort when the
11674         transform read from disk is not legal.  Call fatal_error instead.
11675
11676 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11677
11678         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
11679         (print_scop_header): Removed.  Inlined in the only call place...
11680         (print_scop): ... here.
11681
11682 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11683
11684         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
11685
11686 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11687
11688         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
11689
11690 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11691
11692         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
11693         (dot_deps_stmt): Same.
11694         * graphite-poly.c (dot_lst): Same.
11695
11696 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11697
11698         * graphite-blocking.c (scop_do_strip_mine): Do not call
11699         graphite_legal_transform.
11700         (scop_do_block): Same.
11701
11702 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
11703
11704         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
11705         description.
11706
11707 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11708
11709         * tree-scalar-evolution.c (instantiate_array_ref): New.
11710         (instantiate_scev_r): Also handle ARRAY_REFs.
11711
11712 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11713
11714         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
11715         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
11716         RESULT_DECL, and FIELD_DECL.  Return false for an
11717         SSA_NAME_IS_DEFAULT_DEF.
11718         (compute_scalar_evolution_in_loop): Do not further analyze the
11719         scalar evolution when no_evolution_in_loop_p returns true.
11720
11721 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11722
11723         * tree-chrec.h (evolution_function_is_affine_p): Do not check
11724         whether CHREC_LEFT is invariant.  A function is affine when
11725         CHREC_RIGHT is invariant.
11726
11727 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11728
11729         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
11730         is_gimple_reg.
11731         (rewrite_degenerate_phi): Same.
11732         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
11733
11734 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
11735
11736         * graphite-scop-detection.c (graphite_can_represent_scev,
11737         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
11738         graphite_can_represent_loop): Remove outermost_loop.
11739
11740 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11741
11742         PR middle-end/45229
11743         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
11744         handle GIMPLE_CALLs with no LHS.
11745
11746 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11747
11748         * graphite-poly.c (init_graphite_out_file): New.
11749         (init_graphite_in_file): New.
11750         (apply_poly_transforms): Updated to enable reading and writing of
11751         multiple scop files.
11752
11753 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
11754
11755         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
11756         redundant checks.
11757
11758 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11759
11760         * graphite-clast-to-gimple.c (precision_for_value): Adjust
11761         computation of precision by 1.
11762
11763 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11764
11765         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
11766         (openscop_read_polyhedron_matrix): New.
11767         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
11768         (openscop_read_N_int): Same.
11769         * graphite-poly.c (openscop_read_N_int): New.
11770         (openscop_read_one_int): New.
11771         (openscop_read_N_string): New.
11772         (openscop_read_one_string): New.
11773         (openscop_read_powerset_matrix): New.
11774         (graphite_read_transforms): Remove.
11775         (graphite_read_scatt): New.
11776         (graphite_read_scop_file): New.
11777         (apply_poly_transforms): Updated to call graphite_read_scop_file.
11778
11779 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11780
11781         * graphite-poly.c: Change include order.
11782
11783 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11784
11785         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
11786         (cloog_matrix_nrows): New.
11787
11788 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11789
11790         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
11791         from matrix lines.
11792         * graphite-poly.c (openscop_print_scattering_function_1): Same.
11793         (print_scattering_function_1): Same.
11794         (openscop_print_pbb_domain): Same.
11795         (openscop_print_scop_context): Same.
11796         (print_scop_context): Same.
11797
11798 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
11799
11800         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
11801         (openscop_print_pdr_polyhedron): Print pph.
11802
11803 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11804
11805         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
11806         priority signed types.
11807
11808 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11809
11810         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
11811         the call to lang_hooks.types.type_for_size.  Call
11812         build_nonstandard_integer_type.
11813
11814 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11815
11816         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
11817         (openscop_print_polyhedron_matrix): New.
11818         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
11819         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
11820         (openscop_print_pdr_powerset): New.
11821         (openscop_print_powerset_matrix): New.
11822         (openscop_print_scattering_function_1): New.
11823         (print_scattering_function): Add support for scattering names and
11824         OpenScop format.
11825         (graphite_write_transforms): Remove.
11826         (print_pdr_access_layout): Updated to support OpenScop format.
11827         (print_pdr): Same.
11828         (openscop_print_pbb_domain): New.
11829         (print_pbb_body): Added a parameter to allow indicating that pbb_body
11830         is not provided.
11831         (print_pbb): Updated to call the new print_pbb_body.
11832         (openscop_print_scop_context): New.
11833         (print_scop_header): New.
11834         (print_scop): Updated to call print_scop_header.
11835         * graphite-poly.h: Document OpenScop format.
11836
11837 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
11838
11839         * config/cris/m32c.c (cris_memory_move_cost): New.
11840         (cris_register_move_cost): Make static. Change arguments type from
11841         enum reg_class to reg_class_t.
11842         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
11843         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11844         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
11845
11846 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
11847
11848         PR target/45843
11849         * config/i386/i386.c (ix86_gimplify_va_arg): Use
11850         INTVAL (XEXP (slot, 1)) as prev_size.
11851
11852 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
11853
11854         PR target/45837
11855         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
11856         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
11857         defined.
11858         * config/rs6000/option-defaults.h (toplevel): Change #if
11859         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
11860         global option changes.
11861
11862 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
11863
11864         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
11865
11866         PR tree-optimization/31261
11867         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
11868         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
11869
11870 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11871
11872         PR bootstrap/45796
11873         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
11874         special-casing for generators and turn into ...
11875         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
11876         rule, for better error messages in case of toplevel dependency errors.
11877         (genprog): Add hooks, rename to ...
11878         (genprogerr): ... this, and let genprog also contain check,
11879         checksum, condmd.
11880         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
11881         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
11882         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
11883
11884 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
11885             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11886
11887         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
11888         for GMP, MPFR and MPC.
11889
11890 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11891
11892         * config/sparc/sparc.opt (mimpure-text): Move ...
11893         * config/sol2.opt: ... here.  Correct description.
11894         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
11895         * doc/invoke.texi (Option Summary, SPARC Options): Move
11896         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
11897         (Option Summary, Solaris 2 Options): ... here.
11898         (Submodel Options, Solaris 2 Options): New menu entry.
11899         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
11900         (Solaris 2 Options): ... here.
11901
11902 2010-09-30  Michael Eager  <eager@eagercon.com>
11903
11904         * extend.texi (interrupt_handler): Add MicroBlaze to list.
11905         (save_volatiles): Describe option for MicroBlaze.
11906         * invoke.texi: Add MicroBlaze Options.
11907         * contrib.texi: Add acknowledgment.
11908         * md.texi: Add MicroBlaze d and z constraints.
11909         * install.texi: Add microblaze-*-elf.
11910         * configure.ac: Add microblaze-*-* to target list.
11911         * configure: Regenerate.
11912         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
11913         * config/microblaze/microblaze-protos.h: New.
11914         * config/microblaze/crti.s: New.
11915         * config/microblaze/predicates.md: New.
11916         * config/microblaze/linux.h: New.
11917         * config/microblaze/microblaze.md: New.
11918         * config/microblaze/constraints.md: New.
11919         * config/microblaze/crtn.s: New.
11920         * config/microblaze/microblaze.opt: New.
11921         * config/microblaze/microblaze-c.c: New.
11922         * config/microblaze/t-microblaze: New.
11923         * config/microblaze/microblaze.c: New.
11924         * config/microblaze/microblaze.h: New.
11925
11926 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
11927
11928         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
11929         parse @optional/@required and set the flags as appropriate.
11930
11931 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
11932
11933         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
11934
11935 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
11936
11937         * opt-functions.awk (static_var): Update comment.
11938         (var_ref): Return offsetof expression or -1, not variable address.
11939         * optc-gen.awk: Generate structure field initializers instead of
11940         static variables.  Expect -1 for missing variables instead of null
11941         pointer.  Add gcc_options parameters to generated functions.
11942         * opth-gen.awk: Generate structure fields for static variables.
11943         Add gcc_options parameters to generated functions.
11944         * common.opt (optimize, optimize_size): Add variables.
11945         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
11946         &global_options to cl_target_option_restore.
11947         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
11948         &global_options to cl_optimization_restore, cl_target_option_save
11949         and cl_target_option_restore.
11950         (ix86_set_current_function): Pass &global_options to
11951         cl_target_option_restore.
11952         * config/pdp11/pdp11.h (optimize): Remove.
11953         * config/rs6000/rs6000.h (optimize): Remove.
11954         * config/sh/sh.h (optimize): Remove.
11955         * config/xtensa/xtensa.h (optimize): Remove.
11956         * coretypes.h (struct gcc_options): Declare.
11957         * diagnostic.c (diagnostic_initialize): Initialize
11958         context->option_state.
11959         (diagnostic_report_diagnostic): Pass option_state to
11960         option_enabled hook.
11961         * diagnostic.h (diagnostic_context.option_enabled): Add void *
11962         parameter.
11963         (diagnostic_context.option_state): New field.
11964         * final.c (final_start_function, final, final_scan_insn): Rename
11965         optimize parameter to optimize_p.
11966         * flags.h (optimize, optimize_size): Remove.
11967         * function.c (invoke_set_current_function_hook): Pass
11968         &global_options to cl_optimization_restore.
11969         * gcc.c (driver_handle_option): Take gcc_options parameter.
11970         Assert that it is &global_options.
11971         (process_command): Pass &global_options to read_cmdline_option.
11972         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
11973         option_enabled.
11974         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
11975         &global_options to set_option.
11976         * opts-common.c (handle_option, handle_generated_option,
11977         read_cmdline_option, set_option): Take explicit gcc_options
11978         parameters.  Use option_flag_var.
11979         (option_flag_var): New.
11980         * opts.c (common_handle_option, lang_handle_option,
11981         target_handle_option): Take gcc_options parameter.  Assert that it
11982         is &global_options.
11983         (read_cmdline_options): Pass &global_options to read_cmdline_option.
11984         (print_filtered_help): Use option_flag_var.  Pass &global_options
11985         to option_enabled.
11986         (common_handle_option): Use option_flag_var.
11987         (option_enabled): Take opts parameter.  Use option_flag_var.
11988         (get_option_state): Take gcc_options parameter.  Use
11989         option_flag_var.  Pass gcc_options parameter to option_enabled.
11990         (enable_warning_as_error): Pass &global_options to
11991         handle_generated_option.
11992         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
11993         (cl_option_handler_func.handler): Take gcc_options parameter.
11994         (option_enabled, get_option_state, set_option, handle_option,
11995         handle_generated_option, read_cmdline_option): Take gcc_options
11996         parameters.
11997         * toplev.c (optimize, optimize_size): Remove.
11998         (print_switch_values): Pass &global_options to option_enabled.
11999         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
12000         to get_option_state.
12001         (general_init): Initialize global_dc->option_state.
12002         * tree.c (build_optimization_node): Pass &global_options to
12003         cl_optimization_save.
12004         (build_target_option_node): Pass &global_options to
12005         cl_target_option_save.
12006
12007 2010-09-30  Martin Jambor  <mjambor@suse.cz>
12008
12009         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
12010         zero sized bit-fields.
12011
12012 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
12013
12014         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
12015         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
12016         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
12017         (c_parser_objc_class_declaration): Same change.
12018         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
12019         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
12020         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
12021         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
12022         and RID_AT_PUBLIC instead of RID_PUBLIC.
12023         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
12024         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
12025
12026 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
12027
12028         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
12029         Add links to current providers of packages for Solaris and IRIX.
12030
12031 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
12032
12033         Merge from 'apple/trunk' branch on FSF servers.
12034         * c-parser.c: Applied change originally in c-parse.in.
12035
12036         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
12037
12038         Radar 4281748
12039         * c-decl.c (start_decl): Check for redeclaration of class name.
12040         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
12041
12042 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
12043
12044         * config/ia64/ia64.c (ia64_builtin_decl): New.
12045         (TARGET_BUILTIN_DECL): Define.
12046         (ia64_builtins): New.
12047         (ia64_init_builtins): Save decls in ia64_builtins.
12048
12049 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
12050
12051         PR target/40457
12052         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
12053         (move2add_use_add3_insn): Likewise.
12054         (reload_cse_move2add): Likewise.
12055         * rtlanal.c (get_full_rtx_cost): New function.
12056         * rtl.h (struct full_rtx_costs): New.
12057         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
12058         costs_add_n_insns): New inline functions.
12059         (get_full_rtx_cost): Declare.
12060
12061         PR c/45054
12062         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
12063         invariants.  Check for reg_equiv_invariant.
12064         (reload): Assert that spilled_pseudos is empty when returning.
12065
12066 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
12067
12068         * config/i386/mingw32.h (TARGET_64BIT): replaced by
12069         TARGET_64BIT_DEFAULT in #if check.
12070
12071 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
12072
12073         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
12074
12075 2010-09-29  Mike Stump  <mikestump@comcast.net>
12076
12077         * config/darwin.h (flag_mkernel): Remove.
12078         (flag_apple_kext): Likewise.
12079
12080 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
12081             Jack Howarth  <howarth@bromo.med.uc.edu>
12082
12083         * config/darwin.opt (undefined): Add.
12084
12085 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
12086
12087         PR testsuite/45664
12088         * configure.ac: Add --enable-indirect-function option.
12089         * config.gcc: Add default_gnu_indirect_function.
12090         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
12091         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
12092         * varasm.c (do_assemble_alias): Adjust for macro name change.
12093         * configure: Rebuilt.
12094         * doc/install.texi: Document --enable-indirect-function.
12095
12096 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
12097
12098         * doc/options.texi (Variable, Var, Init): Update documentation
12099         without reference to VarExists.
12100         (VarExists): Remove.
12101         * common.opt, config/i386/i386.opt, config/linux.opt,
12102         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
12103         Don't use VarExists.
12104
12105 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
12106
12107         * optc-gen.awk: Generate global_options initializer instead of
12108         individual variables.  Add x_ prefix to names of structure members.
12109         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
12110         names of structure members.
12111         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12112         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
12113         * doc/tm.texi: Regenerate.
12114         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12115         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
12116         * c-parser.c (disable_extension_diagnostics,
12117         restore_extension_diagnostics): Update names of cpp_options members.
12118         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12119         * common.opt (fcompare-debug-second): Don't use Var.
12120         * config/alpha/alpha.h (target_flags): Remove.
12121         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12122         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
12123         * config/bfin/bfin.h (target_flags): Remove.
12124         * config/cris/cris.h (target_flags): Remove.
12125         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
12126         cl_target_option members.
12127         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
12128         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
12129         ix86_can_inline_p): Update names of cl_target_option members.
12130         * config/i386/i386.h (ix86_isa_flags): Remove.
12131         * config/lm32/lm32.h (target_flags): Remove.
12132         * config/mcore/mcore.h (mcore_stack_increment): Remove.
12133         * config/mcore/mcore.md (addsi3): Remove extern declaration of
12134         flag_omit_frame_pointer.
12135         * config/mep/mep.h (target_flags): Remove.
12136         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12137         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
12138         * config/mmix/mmix.h (target_flags): Remove.
12139         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
12140         flag_expensive_optimizations): Remove.
12141         * config/s390/s390.h (flag_pic): Remove.
12142         * config/score/score-conv.h (target_flags): Remove.
12143         * config/sh/sh.h (sh_fixed_range_str): Remove.
12144         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
12145         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
12146         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12147         * diagnostic.c (diagnostic_initialize): Update names of
12148         diagnostic_context members.
12149         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
12150         warn_system_headers.
12151         (diagnostic_report_warnings_p): Update for new names.
12152         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
12153         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
12154         HARD_FRAME_POINTER_IS_ARG_POINTER.
12155         * flags.h (flag_compare_debug): Declare.
12156         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12157         * opts.c (flag_compare_debug): Define.
12158         (common_handle_option): Update names of diagnostic_context
12159         members.  Handle -fcompare-debug-second.
12160         (fast_math_flags_struct_set_p): Update names of cl_optimization
12161         members.
12162         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12163         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12164         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12165         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12166         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12167         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12168         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
12169         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12170         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
12171
12172 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
12173
12174         * config/picochip/picochip.c (picochip_output_internal_label):
12175         This function can now be called for debug CFI labels, which can come
12176         in the middle of a vliw instruction.  Postpone until end of vliw.
12177
12178 2010-09-29  Richard Guenther  <rguenther@suse.de>
12179
12180         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
12181         (DECL_FILE_SCOPE_P): Use it.
12182         (TYPE_FILE_SCOPE_P): New macro.
12183
12184 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
12185
12186         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
12187         a CPP_NAME which is a reserved word, clearly separate cases for
12188         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
12189
12190 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
12191
12192         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
12193         token->value with the canonical spelling.  Do exactly like C and
12194         C++ and leave it as it is.
12195
12196 2010-09-28  Richard Henderson  <rth@redhat.com>
12197
12198         * config/alpha/alpha.c (alpha_builtins): New.
12199         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
12200         (alpha_builtin_function): New.
12201         (alpha_add_builtins, alpha_init_builtins): Use it.
12202
12203 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
12204
12205         * doc/standards.texi (Standards): Expanded the section on
12206         Objective-C and Objective-C++.
12207
12208 2010-09-28  DJ Delorie  <dj@redhat.com>
12209
12210         PR target/45800
12211         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
12212         volatile MEMs.
12213
12214 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
12215
12216         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
12217         attributes on methods.
12218          (c_parser_objc_method_definition): Handle attributes.
12219         (c_parser_objc_methodproto): Likewise.
12220         (c_parser_objc_maybe_method_attributes): New.
12221         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
12222         missing definition, similar to that in ObjC++.
12223
12224 2010-09-28  Richard Henderson  <rth@redhat.com>
12225
12226         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
12227         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
12228         (CONFIG_SJLJ_EXCEPTIONS): Remove.
12229         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
12230         (STACK_CHECK_PROTECT): Likewise.
12231         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
12232         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
12233         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
12234         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
12235         (dwarf2out_assembly_start): Likewise.
12236         * except.c (init_eh): Use targetm.except_unwind_info.
12237         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
12238         (output_one_function_exception_table): Likewise.
12239         * final.c: Unconditionally include dwarf2out.h.
12240         (final_start_function): Unconditionally call dwarf2out routines.
12241         (final_end_function, final_scan_insn): Likewise.
12242         * function.c (expand_function_end): Use targetm.except_unwind_info.
12243         * opts.c (decode_options): Use targetm.except_unwind_info.
12244         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
12245         * target.def (debug_unwind_info, except_unwind_info): New.
12246         * target.h (enum unwind_info_type): New.
12247         * targhooks.c (default_debug_unwind_info): New.
12248         (default_except_unwind_info): New.
12249         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
12250         * targhooks.h: Declare them.
12251         * tree-tailcall.c: Include "target.h"
12252         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
12253         * Makefile.in (tree-tailcall.o): Update.
12254         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
12255         (lhd_gcc_personality): Likewise.
12256
12257         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
12258         (TARGET_EXCEPT_UNWIND_INFO): New.
12259         (DWARF2_UNWIND_INFO): Update.
12260         (TARGET_DEBUG_UNWIND_INFO): New.
12261         * doc/tm.texi: Rebuild.
12262
12263         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
12264         targetm.except_unwind_info.
12265
12266         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
12267         (arm_except_unwind_info): New.
12268         (arm_compute_func_type): Use it.
12269         (arm_expand_prologue, thumb_pushpop): Likewise.
12270         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
12271         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
12272         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
12273         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
12274         (DWARF2_UNWIND_INFO): Remove.
12275         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
12276         (ARM_EABI_UNWIND_TABLES): Remove.
12277
12278         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
12279         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
12280         (ia64_except_unwind_info): New.
12281         (ia64_output_function_prologue): Use it.
12282         (ia64_add_bundle_selector_before): Likewise.
12283         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
12284         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
12285         (TARGET_UNWIND_INFO): Remove.
12286
12287         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
12288
12289 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
12290
12291         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
12292         (c_parser_objc_protocol_definition): Likewise.
12293         (c_parser_external_declaration): Provide dummy attribute arguments.
12294         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
12295         (c_parser_objc_class_definition): Handle attributes.
12296         (c_parser_objc_protocol_definition): Likewise.
12297
12298 2010-09-28  Tobias Burnus  <burnus@net-b.de>
12299
12300         PR fortran/40569
12301         PR fortran/40568
12302         * toplev.h (save_decoded_options, save_decoded_options_count):
12303         New global variables.
12304         * toplev.c (save_decoded_options, save_decoded_options_count):
12305         Export variables.
12306
12307 2010-09-28  Ian Lance Taylor  <iant@google.com>
12308
12309         * config/i386/i386.c (ix86_supports_split_stack): Test
12310         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
12311
12312 2010-09-28  Ian Lance Taylor  <iant@google.com>
12313
12314         PR target/45815
12315         * opts.c (decode_options): Don't test whether the target supports
12316         split stack if flag_split_stack == 0.
12317
12318 2010-09-28  Jan Hubicka  <jh@suse.cz>
12319
12320         * builtin-attrs.def (ATTR_LEAF): New attribute.
12321         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
12322         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
12323         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
12324         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
12325         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
12326         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
12327         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
12328         * sync-builtins.def: Annotate all builtins by leaf.
12329         * omp-builtins.def: Annotate all builtins by leaf.
12330         * builtins.def: Annotate relevant builtins with leaf attribute.
12331         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
12332         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
12333         leaf.
12334
12335 2010-09-28  Jan Hubicka  <jh@suse.cz>
12336
12337         * tree-ssa-ccp.c (fold_ctor_reference): New function.
12338         (fold_const_aggregate_ref): Use it.
12339         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
12340         into external static.
12341
12342 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12343
12344         PR target/44452
12345         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
12346         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
12347         (ix86_solaris_return_in_memory): Remove.
12348         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
12349         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
12350         (TARGET_SUBTARGET_DEFAULT): Redefine.
12351         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
12352         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
12353         (TARGET_SUBTARGET_DEFAULT): Redefine.
12354         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
12355         -mvect8-ret-in-mem.
12356         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
12357
12358 2010-09-29  Alan Modra  <amodra@gmail.com>
12359
12360         PR target/45807
12361         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
12362         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
12363         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
12364         Delete.
12365         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
12366         (rs6000_emit_prologue): Don't just create frame save info for r2,
12367         actually save r2.
12368
12369 2010-09-28  Richard Henderson  <rth@redhat.com>
12370
12371         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
12372         when 8 bytes are requested.
12373
12374 2010-09-28  Tristan Gingold  <gingold@adacore.com>
12375
12376         * config/avr/avr.c (expand_prologue): Set
12377         current_function_static_stack_size.
12378
12379 2010-09-28  Tristan Gingold  <gingold@adacore.com>
12380
12381         * config/alpha/alpha.md: Change the initial condition of the
12382         probing loop.
12383
12384 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
12385
12386         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
12387         Split from *avx_<maxmin:code><mode>3.
12388         (*avx_<smaxmin:code><mode>3): Ditto.
12389         * config/i386/i386.md (maxmin): Remove code iterator.
12390
12391 2010-09-27  Ian Lance Taylor  <iant@google.com>
12392
12393         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
12394         requires assembler support for CFI directives.
12395
12396 2010-09-27  Richard Henderson  <rth@redhat.com>
12397
12398         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
12399
12400 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
12401
12402         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
12403         that AFTER is not in the range FROM..TO, inclusive.
12404
12405 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
12406             Bernd Schmidt  <bernds@codesourcery.com>
12407
12408         PR rtl-optimization/45792
12409         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
12410         If not all insns are to be merged, for each edge, stash the
12411         next candidate after the to-be-merged insns before doing the
12412         merge, and use them for the retry at the new insertion point.
12413         Handle CC0 targets when retrying.
12414
12415 2010-09-27  Ian Lance Taylor  <iant@google.com>
12416
12417         * common.opt (fsplit-stack): New option.
12418         * opts.c (decode_options): Set flag_split_stack to final value.
12419         * target.def (supports_split_stack): New hook.
12420         * gcc.c (STACK_SPLIT_SPEC): Define.
12421         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
12422         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
12423         (Code Gen Options): Document -fsplit-stack.
12424         * doc/extend.texi (Function Attributes): Mention no_split_stack.
12425         (Function Attributes): Document no_split_stack.
12426         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
12427         TARGET_SUPPORTS_SPLIT_STACK.
12428         * doc/tm.texi: Rebuild.
12429         * function.c (thread_prologue_and_epilogue_insns): If
12430         flag_split_stack, add split stack prologue.
12431         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
12432         * varasm.c (saw_no_split_stack): New static variable.
12433         (assemble_start_function): Set saw_no_split_stack if the function
12434         has the no_split_stack attribute.
12435         (file_end_indicate_split_stack): New function.
12436         * output.h (file_end_indicate_split_stack): Declare.
12437         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
12438         and function.
12439         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
12440         routines.
12441         * config/i386/i386.c (ix86_option_override_internal): Don't set
12442         expand_builtin_va_start to NULL if -fsplit-stack.
12443         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
12444         -fsplit-stack.
12445         (ix86_va_start): If -fsplit-stack, get overflow pointer from
12446         scratch register set by prologue.
12447         (ix86_code_end): If -fsplit-stack, call
12448         file_end_indicate_split_stack.
12449         (ix86_supports_split_stack): New static function.
12450         (SPLIT_STACK_AVAILABLE): Define.
12451         (split_stack_prologue_scratch_regno): New static function.
12452         (split_stack_fn): New static variable.
12453         (ix86_expand_split_stack_prologue): New function.
12454         (ix86_live_on_entry): New static function.
12455         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
12456         (output_pic_addr_const): Likewise.
12457         (i386_asm_output_addr_const_extra): Likewise.
12458         (ix86_expand_call): Change return type to rtx.  Return the new
12459         call instruction.
12460         (TARGET_SUPPORTS_SPLIT_STACK): Define.
12461         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
12462         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
12463         (split_stack_prologue, split_stack_return): New insns.
12464         (split_stack_space_check): New insn.
12465         * config/i386/i386.h (struct machine_function): Add
12466         split_stack_varargs_pointer field.
12467         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
12468         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
12469         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
12470         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
12471         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
12472         Declare.
12473         (ix86_expand_call): Update declaration.
12474
12475 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
12476
12477         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
12478         code.  Added byref, which was missing in the list of codes.
12479         Explain that enumeration values are encoded as the integer type
12480         that the compiler uses to store them.  Explain and make examples
12481         of how 'const' interacts with pointers, and the complication of
12482         the encoding of 'const char *'.
12483         (Legacy type encoding): New subsection, explaining that GCC emits
12484         incorrect type encodings for the NeXT runtime for compatibility
12485         reasons.
12486         (@@encode): New subsection, explaining @encode and particularly
12487         that protocol qualifiers are not recognized inside an @encode()
12488         expression.
12489         (Method signatures): New subsection, explaining how method
12490         signatures are encoded.
12491
12492 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
12493
12494         Merge from 'apple/trunk' branch on FSF servers.  Removed small
12495         change in build_conditional_expr that had been added when fixing
12496         PR objc/27377 and which did the same check in a less complete way.
12497
12498         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
12499
12500         Radar 4229905
12501         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
12502         looking for objective-c common pointer types.
12503
12504         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
12505
12506         Radar 4154928
12507         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
12508         use their ObjC common type.
12509
12510 2010-09-27  Richard Guenther  <rguenther@suse.de>
12511
12512         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
12513
12514 2010-09-27  Jie Zhang  <jie@codesourcery.com>
12515
12516         * print-tree.c (print_node): Print in-constant-pool.
12517
12518 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
12519
12520         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
12521         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
12522         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
12523         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
12524
12525 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
12526
12527         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
12528         from pro_epilogue_adjust_stack_<mode>_{1,2}.
12529         (pro_epilogue_adjust_stack_<mode>_add): Rename from
12530         pro_epilogue_adjust_stack_<mode>_3.
12531         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
12532         renamed pro_epilogue_adjust_stack_{si,di}_add.
12533         (ix86_expand_prologue): Use indirect functions.  Update for renamed
12534         pro_epilogue_adjust_stack_{si,di}_sub.
12535
12536 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
12537
12538         * config/i386/i386.md (movmsk_df): New insn.
12539         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
12540         sequence for TARGET_SSE_MATH.
12541
12542 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
12543
12544         * config/mips/mips.c (mips_builtin_decls): Declare.
12545         (mips_init_builtins): Store function declarations in
12546         mips_builtin_decls.
12547         (mips_builtin_decl): New function.
12548         (TARGET_BUILTIN_DECL): Define.
12549
12550 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
12551             Richard Henderson  <rth@redhat.com>
12552
12553         * config/i386/cygwin.asm: Include auto-host.h.
12554         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
12555         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
12556         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
12557         alignment code from the 64-bit path.  Use gas local labels.
12558         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
12559         from _di_2.  Remove the useless constant integer argument.
12560         (pro_epilogue_adjust_stack_<mode>_3): New.
12561         (allocate_stack_worker_probe_<mode>): Macroize from
12562         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
12563         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
12564         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
12565         (__chkstk_ms): New function.
12566         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
12567         * config/i386/t-interix: Likewise.
12568         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
12569         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
12570         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
12571         * configure, config.in: Rebuild.
12572
12573 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
12574
12575         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
12576         statements because of the return slot optimization.
12577
12578 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
12579
12580         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
12581         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
12582         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12583         (class_likely_spilled_p): Rename to...
12584         (avr_class_likely_spilled_p): ...this. Make static. Change argument
12585         type to reg_class_t.
12586
12587 2010-09-24  Jan Hubicka  <jh@suse.cz>
12588
12589         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
12590         (lto_symtab_resolve_symbols): Set it.
12591         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
12592         store resolution field in cgraph/varpool.
12593         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
12594         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
12595         (cgraph_dump_node): Drop used_from_object_file.
12596         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
12597         (cgraph_function_body_availability): Use decl_replaceable_p.
12598         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
12599         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
12600         cgraph_used_from_object_file_p.
12601         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
12602         cgraph_used_from_object_file_p.
12603         (resolution_used_from_other_file_p): New functoin.
12604         (cgraph_used_from_object_file_p): New predicate.
12605         * cgraph.h: Include plugin-api.h
12606         (struct cgraph_local_info): Remove used_from_object_file.
12607         (struct cgraph_node): Add resolution field.
12608         (struct varpool_node): Likewise; remove used_from_object_file;
12609         reove const_value_known.
12610         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
12611         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
12612         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
12613         varpool_used_from_object_file_p): Declare.
12614         (varpool_get_node, varpool_extra_name_alias): Update prototype.
12615         * tree.h (DECL_REPLACEABLE_P): Remove.
12616         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
12617         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
12618         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
12619         input_overwrite_node, input_node, input_varpool_node): Stream
12620         resolution.
12621         * expr.c (expand_expr_real_1): Use const_value_known_p
12622         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
12623         const_value_known.
12624         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
12625         (function_and_variable_visibility): Set resolution for local vars
12626         and functions; use varpool_used_from_object_file_p.
12627         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
12628         static functions.
12629         (default_binds_local_p_1): Use resolutoin info.
12630         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
12631         * varpool.c (varpool_get_node): Constify.
12632         (const_value_known_p): Do not use vnode->const_value_known;
12633         use decl_replaceable_p.
12634         (varpool_finalize_decl): Do not set const_value_known.
12635         (cgraph_variable_initializer_availability): Use decl_replaceable_p
12636         (varpool_extra_name_alias): Return new node.
12637         (varpool_used_from_object_file_p): New function.
12638
12639 2010-09-24  Richard Henderson  <rth@redhat.com>
12640
12641         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
12642         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
12643         (do_spill): Use REG_CFA_OFFSET.
12644         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
12645         as appropriate.
12646         (ia64_expand_epilogue): Likewise.
12647         (process_set): Split into ...
12648         (process_cfa_adjust_cfa): this,
12649         (process_cfa_register): this,
12650         (process_cfa_offset): and this new function.
12651         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
12652         instead of REG_FRAME_RELATED_EXPR.
12653
12654 2010-09-24  Olivier Hainque  <hainque@adacore.com>
12655
12656         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
12657
12658 2010-09-24  Jan Hubicka  <jh@suse.cz>
12659
12660         * doc/extend.texi: (attribute leaf): Document.
12661         * tree.c (local_define_builtin): Handle ECF_LEAF.
12662         (build_common_builtin_nodes): Set ECF_LEAF where needed.
12663         * tree.h (ECF_LEAF): New.
12664         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
12665         overwrittable and unavailable functions.
12666         (ipa_init): Put all_module_statics into optimization_summary_obstack.
12667         (copy_global_bitmap): Do not copy all_module_statics.
12668         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
12669         (propagate): Handle overwritable and unavailable leaf functions;
12670         initialize global info for overwritable and unavailable leaf functions;
12671         do not free all module statics.
12672         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
12673         local statics.
12674         * calls.c (flags_from_decl_or_type): Handle leaf.
12675         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
12676         abnormal gotos.
12677
12678 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
12679
12680         * gengtype.c: Reindented.
12681         * gengtype.h: Reindented.
12682         * gengtype-parse.c: Reindented.
12683
12684 2010-09-24  Jan Hubicka  <jh@suse.cz>
12685
12686         PR tree-optimization/45738
12687         PR tree-optimization/45741
12688         * expr.c (string_constant): Allow CONST_DECL too;
12689         check that DECL_INITIAL is set.
12690         * varpool.c (const_value_known_p): Only look into VAR_DECL
12691         and CONST_DECL.
12692
12693 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
12694
12695         * common.opt (undef): New.
12696
12697 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
12698
12699         PR middle-end/45234
12700         * rtl.h (enum global_rtl_index): Add
12701         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
12702         (LAST_VIRTUAL_POINTER_REGISTER): Define.
12703         (virtual_preferred_stack_boundary_rtx,
12704         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
12705         (LAST_VIRTUAL_REGISTER): Increase by one.
12706         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
12707         instead of LAST_VIRTUAL_REGISTER.
12708         * function.c (instantiate_new_reg): Handle
12709         virtual_preferred_stack_boundary_rtx.
12710         * emit-rtl.c (init_virtual_regs): Handle
12711         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
12712         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
12713         * explow.c (round_push): If crtl->preferred_stack_boundary
12714         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
12715         virtual_preferred_stack_boundary_rtx alignment instead of
12716         crtl->preferred_stack_boundary alignment.
12717         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
12718         macros.  Never decrease crtl->preferred_stack_boundary,
12719         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
12720         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
12721         stack_pointer_delta in dynamic allocation, even when size
12722         is constant.
12723         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
12724         macro.
12725         * print-rtl.c (print_rtx): Handle
12726         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
12727         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
12728         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
12729         * config/frv/frv.c (frv_emit_movsi): Likewise.
12730         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
12731         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
12732         Likewise.
12733
12734         Revert:
12735         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12736
12737         PR middle-end/45234
12738         * calls.c (expand_call): Make sure that all variable sized
12739         adjustments are multiple of preferred stack boundary after
12740         stack alignment.
12741
12742 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
12743             Dominique Dhumieres  <dominiq@lps.ens.fr>
12744
12745         PR bootstrap/45751
12746         * config/darwin-driver.c (darwin_default_min_version):
12747         Adjust size passed to memcpy in two places.
12748
12749 2010-09-24  Richard Guenther  <rguenther@suse.de>
12750
12751         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
12752         Make sure to not call set_type_context with error_mark_node.
12753         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
12754
12755 2010-09-24  Richard Guenther  <rguenther@suse.de>
12756
12757         * Makefile.in (OBJS-onestep): Remove.
12758         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
12759         (libbackend.a): Remove onestep support.
12760         (libbackend.o): Remove.
12761         * configure.ac (--enable-intermodule): Remove.
12762         * configure: Regenerate.
12763
12764 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
12765
12766         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
12767         reaching the end of a block if it occurs at a DEBUG_INSN.
12768
12769 2010-09-09  Tristan Gingold  <gingold@adacore.com>
12770
12771         PR target/44242
12772         * config/vms/vms-crt0-64.c: Removed.
12773         * config/vms/vms-crt0.c: Removed.
12774         * config/vms/vms-psxcrt0-64.c: Removed.
12775         * config/vms/vms-psxcrt0.c: Removed.
12776         * config/vms/vms-ucrt0.c: New file.
12777         * config/vms/t-vms64: Removed.
12778         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
12779         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
12780         * config.gcc (alpha-dec-vms): Use t-vms.
12781
12782 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
12783
12784         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
12785         underfull hbox in DVI output.
12786         (-fobjc-class-cxx-cdtors): Same change.
12787         (-fobjc-exceptions): Tidied up documentation.  Explain what the
12788         option does, but moved the (lenghty) description of the exception
12789         syntax into objc.texi.
12790         (-fobjc-gc): Explain that the option is not useful with the GNU
12791         runtime.
12792         (-fzero-link): Explain that the GNU runtime always works in
12793         "zero-link" mode.
12794         * doc/objc.texi: All sections: simplified @node declarations
12795         removing specification of next, previous, up node.
12796         (Objective-C): Updated introduction.
12797         (Garbage Collection): Updated.  The bohem-gc library is now
12798         included in gcc itself.  Mention that this section only applies to
12799         the GNU Objective-C runtime.
12800         (compatibility_alias): Small tidy up.
12801         (Exceptions): New section mostly containing text previously in the
12802         description of the -fobjc-exception command-line option.
12803         (Synchronization): Same.
12804
12805 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
12806
12807         * config/i386/i386.md (ix86_code_end): Move the initialization of
12808         xops array near the consumer.  Use AX_REG and SP_REG instead of
12809         numerical constants.
12810
12811 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
12812
12813         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
12814         method [methodname]' for an Objective-C method instead of the less
12815         satisfactory 'too many arguments to function' (with no method name).
12816
12817 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
12818
12819         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
12820         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
12821         (execute_update_addresses_taken): Remove parameter.  Execute the
12822         optimization unconditionally.
12823         * passes.c (execute_function_todo): Call execute_update_addresses_taken
12824         unconditionally if TODO_rebuild_alias is set, else only when optimizing
12825         if TODO_update_address_taken is set.
12826
12827 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
12828
12829         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12830         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
12831         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12832         (arm_output_addr_const_extra): Make static.
12833
12834 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
12835
12836         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
12837         define as unspec_volatile.
12838         ("nops"): Define as unspec_volatile. Use fputs to write to
12839         asm_out_file directly.  Output NOPs on separate lines using while loop.
12840         * config/i386/i386.c (ix86_code_end): Use fputs to write to
12841         asm_out_file directly.  Output NOPs on separate lines using while loop.
12842
12843 2010-09-23  Richard Guenther  <rguenther@suse.de>
12844
12845         PR tree-optimization/45565
12846         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
12847         Make sure to adjust the fndecl before replacing the stmt.
12848
12849 2010-09-23  Richard Guenther  <rguenther@suse.de>
12850
12851         PR middle-end/45750
12852         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
12853         gimplifying MEM_REF.
12854
12855 2010-09-23  Alan Modra  <amodra@gmail.com>
12856
12857         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
12858         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
12859
12860 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
12861
12862         PR rtl-optimization/44374
12863         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
12864         * df-core.c (df_set_bb_dirty): Set it.
12865         * ifcvt.c (find_memory): Remove function.
12866         (dead_or_predicable): Use can_move_insns_across.
12867         * df.h (can_move_insns_across): Declare function.
12868         * cfgcleanup.c (block_was_dirty): New static variable.
12869         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
12870         than df_get_bb_dirty.
12871         (try_head_merge_bb): New static function.
12872         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
12873         is set.
12874         * df-problems.c: Include "target.h"
12875         (df_simulate_find_uses): New static function.
12876         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
12877         (find_memory, find_memory_store): New static functions.
12878         (can_move_insns_across): New function.
12879         * Makefile.in (df-problems.o): Update dependencies.
12880
12881 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
12882
12883         PR java/44095
12884         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
12885         is specified and the suffix of the file isn't ".c".
12886         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12887
12888 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12889
12890         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
12891         * doc/cppopts.texi: Fix markup of index entry.
12892         * doc/extend.texi (Constructing Calls): Fix markup of
12893         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
12894         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
12895         (Vague Linkage, C++ Attributes): Fix markup of index entries and
12896         keywords.
12897         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
12898         avoid long lines.
12899         (C Dialect Options, C++ Dialect Options, Warning Options)
12900         (Debugging Options, Spec Files, Darwin Options)
12901         (i386 and x86-64 Options, MIPS Options)
12902         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
12903         index entries, avoid abbreviations, allow URLs to wrap, avoid
12904         long lines, avoid overlong pages from long @itemx lists.
12905         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
12906         * doc/standards.texi (Standards): Likewise.
12907         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
12908
12909 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
12910
12911         * opts-common.c (prune_options): Make static.  Work with decoded
12912         options.
12913         (decode_cmdline_options_to_array): Call prune_options.  Don't
12914         resize option array here.
12915         * opts.h (prune_options): Remove prototype.
12916         * gcc.c (process_command): Take decoded options; don't call
12917         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
12918         (main): Call decode_cmdline_options_to_array here instead of
12919         prune_options.  Update call to process_command.
12920         * config/darwin-driver.c: Include opts.h.
12921         (darwin_default_min_version): Work with decoded options.  Don't
12922         handle -b or -V here.
12923         * config/darwin.h (darwin_default_min_version): Update prototype.
12924         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
12925         darwin_default_min_version.
12926         * config/i386/cygwin.h (mingw_scan): Update prototype.
12927         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
12928         * config/i386/cygwin1.c: Include opts.h.
12929         (mingw_scan): Work with decoded options.
12930         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
12931         * config/t-darwin (darwin-driver.o): Update dependencies.
12932
12933 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
12934
12935         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
12936         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
12937         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
12938         -force-link, -force-link=, -language, -language=,
12939         -library-directory, -library-directory=, -no-canonical-prefixes,
12940         -no-standard-libraries, -no-warnings, -optimize, -output,
12941         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
12942         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
12943         -print-file-name=, -print-libgcc-file-name,
12944         -print-multi-directory, -print-multi-lib,
12945         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
12946         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
12947         -profile, -save-temps, -shared, -specs, -specs=, -static,
12948         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
12949         symbolic): New.
12950         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
12951         * gcc.c (A Short Introduction to Adding a Command-Line Option):
12952         Remove comment.
12953         (cc1_options): Correct specs for passing down --help,
12954         --target-help and --help=*.  Add spec for passing down --version.
12955         (struct option_map, option_map, target_option_translations,
12956         translate_options): Remove.
12957         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
12958         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
12959         OPT_fhelp_ and OPT_ftarget_help.
12960         (process_command): Don't call translate_options.  Call
12961         decode_cmdline_options_to_array before checking for
12962         -no-canonical-prefixes using decoded options.
12963         * opts-common.c (tm.h): Update comment on #include.
12964         (find_opt): Allow abbreviations of long options.
12965         (struct option_map, option_map): New.
12966         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
12967         and -mno handling.
12968         (target_option_translations): New.
12969         (decode_cmdline_options_to_array): Handle
12970         TARGET_OPTION_TRANSLATE_TABLE in driver.
12971         * opts.c (common_handle_option): Don't handle OPT_fhelp,
12972         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
12973
12974 2010-09-22  Richard Guenther  <rguenther@suse.de>
12975
12976         * tree-inline.c (optimize_inline_calls): Schedule cleanups
12977         only if we inlined something.  Block compaction and conditional
12978         folding are done by cfg cleanup.  Schedule update-address-taken.
12979         (tree_function_versioning): Remove redundant call to number_blocks.
12980         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
12981         folding is done by cfg cleanup.
12982         * passes.c (init_optimization_passes): Remove update-address-taken
12983         pass after IPA inlining.
12984
12985 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
12986
12987         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
12988         to update conditions. Fix reg_mode[] check.
12989
12990 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
12991
12992         * config/picochip/picochip.md (movhicc): Use expand to check whether
12993         movhicc is available and split it after reload.
12994
12995 2010-09-22  Richard Guenther  <rguenther@suse.de>
12996
12997         * tree-ssanames.c (release_dead_ssa_names): Do not remove
12998         callee edges here.
12999         * passes.c (init_optimization_passes): Remove early CFG cleanup.
13000         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
13001         (pass_cleanup_cfg): Likewise.
13002         (execute_fixup_cfg): Cleanup.
13003         * tree-pass.h (pass_cleanup_cfg): Remove.
13004
13005 2010-09-22  Martin Jambor  <mjambor@suse.cz>
13006
13007         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
13008         builtins if it is true.
13009         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
13010         parameter.
13011
13012 2010-09-22  Martin Jambor  <mjambor@suse.cz>
13013
13014         * tree-sra.c (struct access): New field grp_no_warning.
13015         (create_access_replacement): Set TREE_NO_WARNING according to
13016          grp_no_warning.
13017         (create_artificial_child_access): Use build_ref_for_model and set
13018         grp_no_warning if build_user_friendly_ref_for_offset fails.
13019         (propagate_subaccesses_across_link): Likewise.
13020
13021 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
13022
13023         PR target/35664
13024         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
13025         ('f'): Likewise.
13026
13027 2010-09-22  Tristan Gingold  <gingold@adacore.com>
13028
13029         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
13030
13031 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
13032
13033         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
13034         * config/i386/i386.c (decide_alg): Update for rename.
13035
13036 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
13037
13038         PR rtl-optimization/45739
13039         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
13040         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
13041
13042 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
13043
13044         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
13045         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
13046         Remove.
13047         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
13048         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13049
13050 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
13051
13052         PR objc/23710
13053         * c-parser.c (c_parser_objc_method_definition): Check the return
13054         value of objc_start_method_definition and if false is returned,
13055         parse the method definition but emit no code.
13056
13057 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
13058
13059         PR objc/25965
13060         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
13061         call objc_get_interface_ivars ().
13062
13063 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
13064
13065         PR target/45694
13066         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
13067         static chain-register is used for 64-bit.
13068
13069 2010-09-21  Richard Guenther  <rguenther@suse.de>
13070
13071         * dwarf2out.c (is_cu_die): New function.
13072         (add_pubtype): Use it.
13073         (gen_subprogram_die): Likewise.
13074         (gen_struct_or_union_type_die): Likewise.
13075         (dwarf2out_finish): Likewise.
13076         (comp_unit_die): Rename to ...
13077         (single_comp_unit_die): ... this.
13078         (comp_unit_die): New function lazily constructing and
13079         returning single_comp_unit_die.
13080         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
13081         base_type_die, subrange_type_die, modified_type_die,
13082         lower_bound_default, add_bound_info, add_prototyped_attribute,
13083         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
13084         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
13085         force_decl_die, gen_namespace_die, dwarf2out_decl,
13086         dwarf2out_start_source_file, dwarf2out_end_source_file,
13087         prune_unused_types, dwarf2out_finish): Use it.
13088         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
13089         the global list of translation-unit decls.
13090         (dwarf2out_init): Do not create single_comp_unit_die here.
13091         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
13092
13093 2010-09-21  Richard Guenther  <rguenther@suse.de>
13094
13095         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
13096         for bool for C++.
13097
13098 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
13099
13100         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
13101         (qhs_extenddi_cstr): Likewise.
13102         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
13103         them for the source operand.
13104
13105 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
13106
13107         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
13108         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
13109         (ix86_split_ashr): Ditto.
13110         (ix86_split_lshr): Ditto.
13111
13112 2010-09-21  Richard Guenther  <rguenther@suse.de>
13113
13114         PR tree-optimization/45580
13115         * tree-ssa-propagate.c (substitute_and_fold): Always replace
13116         regular uses.
13117         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
13118         virtuals fold the call into a regular indirect one.
13119
13120 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
13121
13122         PR rtl-optimization/42775
13123         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
13124         scheduling is enabled.
13125
13126 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
13127
13128         PR rtl-optimization/45728
13129         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
13130         gen_lowpart_common first and if that fails, force_reg first
13131         before calling gen_lowpart.
13132
13133         PR middle-end/45678
13134         * cfgexpand.c (expand_one_stack_var_at): Use
13135         crtl->max_used_stack_slot_alignment as max_align, instead
13136         of maximum of that and PREFERRED_STACK_BOUNDARY.
13137         Don't call update_stack_alignment.
13138
13139 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
13140
13141         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
13142         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
13143         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
13144         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
13145         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
13146         (build_nonstandard_integer_type): Likewise.
13147         (build_range_type_1): New function, built from...
13148         (build_range_type): ...this.  Call build_range_type_1.
13149         (build_nonshared_range_type): New function.
13150         (build_array_type_1): New function, built from...
13151         (build_array_type: ...this.  Call build_array_type_1.
13152         (build_nonshared_array_type): New function.
13153         * tree.h (build_nonshared_range_type): Declare.
13154         (build_nonshared_array_type): Likewise.
13155
13156 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
13157
13158         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
13159         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13160         (arm_class_likely_spilled_p): New function.
13161
13162 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
13163
13164         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
13165         indirect functions.
13166         (ix86_split_ashl): Ditto.
13167         (ix86_split_ashr): Ditto.
13168         (ix86_split_lshr): Ditto.
13169         (ix86_adjust_counter): Ditto.
13170
13171 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
13172
13173         * c-family/c-common.h (constant_string_class): Documented with
13174         comment identical to the one already in c-common.c.
13175
13176 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
13177
13178         * dwarf2out.c (any_cfis_emitted): New static variable.
13179         (add_fde_cfi): Set it.
13180         (dwarf2out_frame_debug): Clear it before processing,
13181         if it is set afterwards, flush any queued reg saves.
13182
13183         PR debug/45124
13184         * dwarf2out.c (add_accessibility_attribute): Assume
13185         DW_ACCESS_private as the default for dwarf_version > 2
13186         and DW_TAG_class_type parent.
13187         (gen_inheritance_die): Assume DW_ACCESS_public as the default
13188         for dwarf_version > 2 and parent other than DW_TAG_class_type.
13189
13190 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
13191
13192         PR target/45726
13193         * arm.md (arm_movt): Only enable on machines with MOVT.
13194
13195 2010-09-20  Jie Zhang  <jie@codesourcery.com>
13196
13197         * config/arm/arm.c (arm_address_offset_is_imm): New.
13198         (arm_early_store_addr_dep): New.
13199         (arm_early_load_addr_dep): New.
13200         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
13201         (arm_early_load_addr_dep): Declare.
13202         (arm_address_offset_is_imm): Declare.
13203         * config/arm/cortex-m4.md: New file.
13204         * config/arm/cortex-m4-fpu.md: New file.
13205         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
13206         (attr generic_sched): Exclude cortexm4.
13207         (attr generic_vfp): Exclude cortexm4.
13208
13209 2010-09-20  Richard Guenther  <rguenther@suse.de>
13210
13211         PR middle-end/45704
13212         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
13213
13214 2010-09-20  Jan Hubicka  <jh@suse.cz>
13215
13216         PR tree-optimize/45605
13217         * cgraph.h (const_value_known_p): Declare.
13218         (varpool_decide_const_value_known): Remove.
13219         * tree-ssa-ccp.c (get_base_constructor): Use it.
13220         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
13221         * expr.c (string_constant): Likewise.
13222         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
13223         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13224         function_and_variable_visibility): Likewise.
13225         * gimplify.c (gimplify_call_expr): Likewise.
13226         * gimple-fold.c (get_symbol_constant_value): Likewise.
13227         * varpool.c (varpool_decide_const_value_known): Replace by...
13228         (const_value_known_p): ... this one; handle other kinds of DECLs
13229         too and work for automatic vars.
13230         (varpool_finalize_decl): Use const_value_known_p.
13231
13232 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
13233
13234         PR target/45726
13235         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
13236
13237 2010-09-20  Richard Guenther  <rguenther@suse.de>
13238
13239         PR tree-optimization/45705
13240         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
13241
13242 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
13243
13244         PR rtl-optimization/45695
13245         * combine.c (try_combine): When splitting a two set pattern,
13246         make sure the pattern which will be put into i2 doesn't use REGs
13247         or MEMs set by insns in between i2 and i3.
13248
13249 2010-09-19  Jan Hubicka  <jh@suse.cz>
13250
13251         PR lto/44246
13252         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
13253         processing same node twice.
13254
13255 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
13256
13257         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
13258         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13259         (bfin_class_likely_spilled_p): New function
13260
13261 2010-09-19  Ira Rosen  <irar@il.ibm.com>
13262
13263         PR tree-optimization/45714
13264         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
13265         created in vectorizable_call instead of the original statement in
13266         def stmt updates.
13267
13268 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
13269
13270         * config/i386/i386-protos.h (split_double_mode): New prototype.
13271         (split_di, split_ti): Remove prototypes.
13272         * config/i386/i386.c (split_double_mode): New function.
13273         (split_di, split_ti): Remove.
13274         (ix86_expand_branch): Use split_double_mode.
13275         (ix86_split_to_parts): Ditto.
13276         (ix86_split_ashl): Ditto.
13277         (ix86_split_ashr): Ditto.
13278         (ix86_split_lshr): Ditto.
13279         (ix86_force_to_memory): Ditto.
13280         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
13281
13282 2010-09-18  Jan Hubicka  <jh@suse.cz>
13283
13284         PR tree-optimization/45453
13285         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
13286         virtual functions are reachable.
13287         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
13288         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
13289         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
13290         when modifying function.
13291
13292 2010-09-18  Jan Hubicka  <jh@suse.cz>
13293
13294         PR tree-optimization/45605
13295         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
13296         * gimple-fold.c (static_object_in_other_unit_p): New function.
13297         (canonicalize_constructor_val): Use it.
13298         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
13299         returning NULL.
13300         (gimple_fold_obj_type_ref_known_binfo): Use
13301         static_object_in_other_unit_p.
13302
13303 2010-09-18  Richard Guenther  <rguenther@suse.de>
13304
13305         PR tree-optimization/45709
13306         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
13307         insertions until after all PHI nodes of the block are processed.
13308
13309 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
13310
13311         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
13312
13313 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
13314
13315         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
13316
13317 2010-09-18  Richard Guenther  <rguenther@suse.de>
13318
13319         PR tree-optimization/45709
13320         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
13321
13322 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
13323
13324         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
13325         (dot_deps_stmt): Same.
13326         * graphite-poly.c (dot_lst): Same.
13327         * graphite-scop-detection.c (dot_all_scops): Same.
13328         (dot_scop): Same.
13329
13330 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
13331
13332         Revert:
13333         2009-12-16  Ben Elliston  <bje@au.ibm.com>
13334
13335         * tree-data-ref.c (dot_rdg_1): Added back.
13336         (dot_rdg): Same.  Added "#if 0" around system call.
13337
13338 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13339             Richard Henderson  <rth@redhat.com>
13340
13341         * config/i386/i386.c (initial_ix86_tune_features): Add
13342         X86_TUNE_PAD_SHORT_FUNCTION.
13343         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
13344         (ix86_count_insn): New.
13345         (ix86_pad_short_function): Likewise.
13346         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
13347
13348         * config/i386/i386.h (ix86_tune_indices): Add
13349         X86_TUNE_PAD_SHORT_FUNCTION.
13350         (TARGET_PAD_SHORT_FUNCTION): New.
13351
13352         * config/i386/i386.md (UNSPEC_NOPS): New.
13353         (nops): Likewise.
13354
13355 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13356
13357         PR middle-end/45234
13358         * calls.c (expand_call): Make sure that all variable sized
13359         adjustments are multiple of preferred stack boundary after
13360         stack alignment.
13361
13362 2010-09-17  DJ Delorie  <dj@redhat.com>
13363
13364         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
13365         passed an invalid value, print an error instead of ICEing.
13366         (valid_psw_flag): New.
13367         (rx_expand_builtin): Call it for setpsw/clrpsw.
13368         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
13369
13370         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
13371         (bitclr_in_memory): Likewise.
13372         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
13373
13374 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13375
13376         PR middle-end/45678
13377         * cfgexpand.c (update_stack_alignment): New.
13378         (get_decl_align_unit): Use it.
13379         (expand_one_stack_var_at): Call update_stack_alignment.
13380
13381 2010-09-17  Richard Guenther  <rguenther@suse.de>
13382
13383         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
13384         Properly copy the read string.
13385
13386 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
13387
13388         * doc/options.texi (Variable): Document.
13389         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
13390         generate target_flags declarations explicitly.  Don't define
13391         VarExists variables for the driver.
13392         * common.opt (target_flags): New Variable record.
13393         (flag_dump_unnumbered, flag_dump_unnumbered_links,
13394         flag_var_tracking, flag_var_tracking_assignments,
13395         flag_var_tracking_assignments_toggle): Don't mark variables with
13396         VarExists.
13397         * config/i386/i386.c (ix86_isa_flags): Don't define here.
13398         * config/i386/i386.opt (ix86_isa_flags): Define here.
13399         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
13400         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
13401         VarExists.
13402         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
13403         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
13404         Only define for generator programs.
13405         * rtlanal.c (target_flags): Remove.
13406         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
13407         flag_var_tracking_assignments_toggle): Remove.
13408
13409 2010-09-17  Michael Matz  <matz@suse.de>
13410
13411         PR tree-optimization/43432
13412         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
13413         Accept backwards consecutive accesses.
13414         (vect_create_data_ref_ptr): If step is negative generate
13415         decreasing IVs.
13416         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
13417         (perm_mask_for_reverse, reverse_vec_elements): New functions.
13418         (vectorizable_load): Handle loads with negative steps when easily
13419         possible.
13420
13421 2010-09-03  Jan Hubicka  <jh@suse.cz>
13422
13423         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
13424
13425 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
13426
13427         * config/v850/v850.c (v850_function_value_regno_p): Make static.
13428         Adjust comments. Declare.
13429         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
13430         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
13431
13432 2010-09-17  Richard Guenther  <rguenther@suse.de>
13433
13434         * common.opt (combine): Remove.
13435         * gcc.c (default_compilers): Remove specs testing combine.
13436         The C compilers no longer can combine.
13437         (option_map): Remove -combine.
13438         (display_help): Remove -combine.
13439         (driver_handle_option): Remove OPT_combine handling.
13440         (compile_input_file_p): Remove.
13441         (do_spec): Remove code concerning combine.
13442         (main): Likewise.
13443         * doc/invoke.texi: Remove traces of -combine.
13444         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
13445
13446 2010-09-17  Richard Guenther  <rguenther@suse.de>
13447
13448         PR middle-end/45678
13449         * builtins.c (fold_builtin_memory_op): Always properly adjust
13450         alignment of memory accesses.
13451
13452 2010-09-16  Jan Hubicka  <jh@suse.cz>
13453
13454         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
13455         processing clone.
13456
13457 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
13458
13459         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
13460
13461         * config/i386/i386.c (predict_jump): Add prototype.
13462         (flag_opts): Add -m8bit-idiv.
13463         (ix86_split_idivmod): New.
13464
13465         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
13466         Add 2 splitters for SI/DI mode divide.
13467         (divmod<mode>4_1): New pattern.
13468         (udivmod<mode>4_1): Likewise.
13469         (testdi_ccno_1): Likewise.
13470
13471         * config/i386/i386.opt (m8bit-idiv): New.
13472
13473         * doc/invoke.texi: Document -m8bit-idiv.
13474
13475 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
13476
13477         PR bootstrap/45680
13478         * config/i386/i386.c (min_insn_size): Moved out of the
13479         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
13480
13481 2010-09-16  Jan Hubicka  <jh@suse.cz>
13482
13483         * lto-cgraph.c (lto_output_node): Fix handling of clones.
13484         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
13485         unreachable clones with reachable clones.
13486         * tree-inline.c (copy_bb): Fix sanity checking when producing
13487         unreachable clone.
13488
13489 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
13490
13491         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
13492         (TARGET_MEMORY_MOVE_COST): Define.
13493         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
13494
13495 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
13496
13497         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
13498         maybe_tidy_empty_bb.
13499
13500         Revert:
13501         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
13502         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
13503
13504 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
13505
13506         * target.def (target_option.optimization): New hook.
13507         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
13508         TARGET_OPTION_OPTIMIZATION hook.
13509         * doc/tm.texi: Regenerate.
13510         * hooks.c (hook_void_int_int): New.
13511         * hooks.h (hook_void_int_int): Declare.
13512         * opts.c: Don't include tm_p.h.
13513         (decode_options): Use targetm.target_option.optimization instead
13514         of OPTIMIZATION_OPTIONS.
13515         * system.h (OPTIMIZATION_OPTIONS): Poison.
13516         * config/arm/arm-protos.h (arm_optimization_options): Remove.
13517         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
13518         (arm_optimization_options): Rename to arm_option_optimization.
13519         Make static.
13520         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
13521         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
13522         (cris_option_optimization): New.
13523         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
13524         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
13525         (crx_option_optimization): New.
13526         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
13527         * config/frv/frv-protos.h (frv_optimization_options): Remove.
13528         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
13529         (frv_optimization_options): Rename to frv_option_optimization.
13530         Make static.
13531         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
13532         * config/h8300/h8300.c (h8300_option_optimization): New.
13533         (TARGET_OPTION_OPTIMIZATION): Define.
13534         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
13535         * config/i386/i386-protos.h (optimization_options): Remove.
13536         * config/i386/i386.c (optimization_options): Rename to
13537         ix86_option_optimization.  Make static.
13538         (TARGET_OPTION_OPTIMIZATION): Define.
13539         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
13540         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
13541         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
13542         (ia64_optimization_options): Rename to ia64_option_optimization.
13543         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
13544         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
13545         commented-out definition.
13546         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
13547         instead of OPTIMIZATION_OPTIONS.
13548         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
13549         (m32r_option_optimization): New.
13550         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
13551         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
13552         Remove.
13553         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
13554         (mcore_option_optimization): New.
13555         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
13556         * config/mep/mep-protos.h (mep_optimization_options): Remove.
13557         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
13558         (mep_optimization_options): Rename to mep_option_optimization.
13559         Make static.  Take unused level and size parameters.
13560         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
13561         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
13562         (mmix_option_optimization): New.
13563         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
13564         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
13565         (pdp11_option_optimization): New.
13566         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
13567         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
13568         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
13569         (optimization_options): Rename to rs6000_option_optimization.
13570         Make static.
13571         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
13572         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
13573         * config/rx/rx.c (rx_set_optimization_options): Rename to
13574         rx_option_optimization.  Make static.  Take unused level and size
13575         parameters.
13576         (TARGET_OPTION_OPTIMIZATION): Define.
13577         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
13578         * config/s390/s390-protos.h (optimization_options): Remove.
13579         * config/s390/s390.c (optimization_options): Rename to
13580         s390_option_optimization.  Make static.  Don't mark size parameter
13581         unused.
13582         (TARGET_OPTION_OPTIMIZATION): Define.
13583         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
13584         * config/sh/sh-protos.h (sh_optimization_options): Remove.
13585         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
13586         (sh_optimization_options): Rename to sh_option_optimization.  Make
13587         static.  Don't mark parameters unused.
13588         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
13589         * config/spu/spu-protos.h (spu_optimization_options): Remove.
13590         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
13591         (spu_optimization_options): Rename to spu_option_optimization.
13592         Make static.
13593         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
13594         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
13595         (v850_option_optimization): New.
13596         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
13597         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
13598         (xtensa_option_optimization): New.
13599         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
13600
13601 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
13602
13603         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
13604         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
13605         * doc/tm.texi: Regenerate.
13606         * system.h (OVERRIDE_OPTIONS): Poison.
13607         * target.def (override): Default to hook_void_void.
13608         * targhooks.c (default_target_option_override): Remove.
13609         * genmodes.c, machmode.def: Update comments mentioning
13610         OVERRIDE_OPTIONS.
13611         * config/alpha/alpha-modes.def: Update comment mentioning
13612         alpha_override_options.
13613         * config/alpha/alpha-protos.h (override_options): Remove.
13614         * config/alpha/alpha.c (override_options): Rename to
13615         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
13616         (TARGET_OPTION_OVERRIDE): Define.
13617         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
13618         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
13619         of OVERRIDE_OPTIONS.
13620         * config/arc/arc-protos.h (arc_init): Remove.
13621         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
13622         (arc_init): Rename to arc_option_override.  Make static.
13623         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
13624         (OVERRIDE_OPTIONS): Remove.
13625         * config/arm/arm-protos.h (arm_override_options): Remove.
13626         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
13627         (arm_override_options): Rename to arm_option_override.  Make
13628         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
13629         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
13630         * config/arm/arm.md: Update comment referring to arm_override_options.
13631         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
13632         instead of OVERRIDE_OPTIONS.
13633         * config/avr/avr-protos.h (avr_override_options): Remove.
13634         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
13635         (avr_override_options): Rename to avr_option_override.  Make static.
13636         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
13637         * config/bfin/bfin-protos.h (override_options): Remove (twice).
13638         * config/bfin/bfin.c (override_options): Rename to
13639         bfin_option_override.  Make static.
13640         (TARGET_OPTION_OVERRIDE): Define.
13641         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
13642         * config/cris/cris-protos.h (cris_override_options): Remove.
13643         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
13644         (cris_override_options): Rename to cris_option_override.  Make static.
13645         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
13646         * config/frv/frv-protos.h (frv_override_options): Remove.
13647         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
13648         (frv_override_options): Rename to frv_option_override.  Make static.
13649         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
13650         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
13651         * config/h8300/h8300.c (h8300_init_once): Rename to
13652         h8300_option_override.  Make static.
13653         (TARGET_OPTION_OVERRIDE): Define.
13654         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
13655         * config/i386/i386-protos.h (override_options): Remove.
13656         * config/i386/i386.c (override_options): Rename to
13657         ix86_option_override_internal.  Make static.  Comments referring
13658         to this function and callers changed.
13659         (ix86_option_override): New.
13660         (TARGET_OPTION_OVERRIDE): Define.
13661         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
13662         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
13663         * config/ia64/ia64.c (ia64_file_start): Update comment referring
13664         to ia64_override_options.
13665         * config/iq2000/iq2000-protos.h (override_options): Remove.
13666         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
13667         (override_options): Rename to iq2000_option_override.  Make static.
13668         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
13669         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
13670         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
13671         (lm32_override_options): Rename to lm32_option_override.  Make static.
13672         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
13673         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
13674         (m32r_option_override): New.
13675         (m32r_init): Update comment.
13676         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
13677         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
13678         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
13679         (m68hc11_override_options): Rename to m68hc11_option_override.
13680         Make static.  Return void.
13681         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
13682         * config/m68k/m68k-protos.h (override_options): Remove.
13683         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
13684         (override_options): Rename to m68k_option_override.  Make static.
13685         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
13686         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
13687         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
13688         (mcore_override_options): Rename to mcore_option_override.  Make
13689         static.
13690         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
13691         * config/mep/mep-protos.h (mep_override_options): Remove.
13692         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
13693         (mep_override_options): Rename to mep_option_override.  Make static.
13694         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
13695         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
13696         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
13697         (mmix_override_options): Rename to mmix_option_override.  Make static.
13698         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
13699         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
13700         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
13701         (mn10300_override_options): Rename to mn10300_option_override.
13702         Make static.
13703         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
13704         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
13705         * config/moxie/moxie.c (moxie_override_options): Rename to
13706         moxie_option_override.  Make static.
13707         (TARGET_OPTION_OVERRIDE): Define.
13708         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
13709         * config/picochip/picochip-protos.h (picochip_override_options):
13710         Remove.  Update comment referring to picochip_override_options.
13711         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
13712         (picochip_override_options): Rename to picochip_option_override.
13713         Make static.  Update comment and definition of
13714         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
13715         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
13716         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13717         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13718         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13719         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13720         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13721         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
13722         instead of OVERRIDE_OPTIONS.
13723         * config/rs6000/rs6000-modes.def: Update comment referring to
13724         rs6000_override_options.
13725         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
13726         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
13727         (rs6000_override_options): Rename to
13728         rs6000_option_override_internal.  Make static.  Commented
13729         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
13730         (rs6000_option_override): New.
13731         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
13732         instead of OVERRIDE_OPTIONS.
13733         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13734         * config/s390/s390-protos.h (override_options): Remove.
13735         * config/s390/s390.c (override_options): Rename to
13736         s390_option_override.  Make static.
13737         (TARGET_OPTION_OVERRIDE): Define.
13738         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
13739         * config/score/score-protos.h (score_override_options): Remove.
13740         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
13741         (score_override_options): Rename to score_option_override.  Make
13742         static.
13743         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
13744         Update comment referring to override_options.
13745         * config/score/score3.c (score3_override_options): Rename to
13746         score3_option_override.
13747         * config/score/score3.h (score3_override_options): Rename to
13748         score3_option_override.
13749         * config/score/score7.c (score7_override_options): Rename to
13750         score7_option_override.
13751         * config/score/score7.h (score7_override_options): Rename to
13752         score7_option_override.
13753         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
13754         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
13755         (sparc_override_options): Rename to sparc_option_override.  Make
13756         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
13757         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
13758         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
13759         instead of OVERRIDE_OPTIONS.
13760         * config/spu/spu-protos.h (spu_override_options): Remove.
13761         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
13762         (spu_override_options): Rename to spu_option_override.  Make
13763         static.
13764         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
13765         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
13766         OVERRIDE_OPTIONS.
13767         * config/vax/vax-protos.h (override_options): Remove.
13768         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
13769         (override_options): Rename to vax_option_override.  Make static.
13770         Call SUBTARGET_OVERRIDE_OPTIONS.
13771         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
13772         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
13773         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
13774         * config/xtensa/xtensa-protos.h (override_options): Remove.
13775         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
13776         (override_options): Rename to xtensa_option_override.  Make static.
13777         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
13778
13779 2010-09-16  Richard Guenther  <rguenther@suse.de>
13780
13781         PR tree-optimization/45623
13782         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
13783         (get_constraint_for_component_ref): If computing a constraint
13784         for the rhs handle type punning through unions.
13785         (get_constraint_for_address_of): Adjust.
13786         (get_constraint_for_1): Likewise.
13787         (get_constraint_for): Likewise.
13788         (get_constraint_for_rhs): New function.
13789         (do_structure_copy): Adjust.
13790         (make_constraint_to): Likewise.
13791         (handle_const_call): Likewise.
13792         (find_func_aliases): Likewise.
13793         (process_ipa_clobber): Likewise.
13794         (create_variable_info_for): Likewise.
13795
13796 2010-09-16  Ira Rosen  <irar@il.ibm.com>
13797
13798         * tree-vectorizer.c: Fix documentation.
13799         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
13800         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
13801         is_pattern_stmt_p, is_loop_header_bb_p,
13802         stmt_vinfo_set_inside_of_loop_cost,
13803         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
13804         known_alignment_for_access_p): Likewise.
13805         * tree-vect-loop.c: Fix documentation.
13806         (vect_get_cost): Start function name from new line.
13807         * tree-vect-data-refs.c: Fix documentation.
13808         * tree-vect_stmts.c: Likewise.
13809         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
13810         (vectorizable_store): Free vec_oprnds if allocated.
13811         (vectorizable_condition): Initialize several variables to avoid
13812         warnings.
13813         * tree-vect-slp.c: Fix documentation.
13814
13815 2010-09-16  Richard Guenther  <rguenther@suse.de>
13816
13817         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
13818         is TS_TRANSLATION_UNIT_DECL.
13819         (initialize_tree_contains_struct): Adjust.
13820         (all_translation_units): New global vector.
13821         (build_translation_unit_decl): New function.
13822         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
13823         (struct tree_translation_unit_decl): New.
13824         (all_translation_units): Declare.
13825         (union tree_node): Add translation_unit_decl member.
13826         (build_translation_unit_decl): Declare.
13827         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
13828         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
13829         New function.
13830         (pack_value_fields): Call it.
13831         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
13832         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
13833         (lto_output_tree_pointers): Call it.
13834         * lto-streamer-in.c (lto_input_tree_ref): Handle references
13835         to TRANSLATION_UNIT_DECL.
13836         (unpack_ts_translation_unit_decl_value_fields): New function.
13837         (unpack_value_fields): Call it.
13838         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
13839         (lto_input_tree_pointers): Call it.
13840         * lto-streamer.c (check_handled_ts_structures): Adjust.
13841         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
13842         * c-decl.c (all_translation_units): Remove.
13843         (pop_scope): Use build_translation_unit_decl.
13844         (collect_all_refs): Adjust.
13845         (for_each_global_decl): Likewise.
13846         (c_write_global_declarations): Likewise.
13847
13848 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
13849
13850         PR bootstrap/45686
13851         * fold-const.c (fold_checksum_tree): Change slot from const void **
13852         to void **, use CONST_CAST_TREE to store into *slot.
13853
13854 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
13855
13856         * config/i386/i386.md: Remove unneeded empty conditions and
13857         preparation statements from expanders.
13858         * config/i386/mmx.md: Ditto.
13859         * config/i386/sse.md: Ditto.
13860
13861 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
13862
13863         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
13864
13865 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13866
13867         PR rtl-optimization/45593
13868         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
13869         insns that were in delay slots as stand-alone insns.
13870
13871 2010-09-15  Ian Lance Taylor  <iant@google.com>
13872
13873         * incpath.c (remove_duplicates): If name is not a directory, issue
13874         a warning rather than an error.
13875
13876 2010-09-15  Martin Jambor  <mjambor@suse.cz>
13877
13878         PR middle-end/45644
13879         * tree-sra.c (create_access): Check for bit-fields directly.
13880
13881 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
13882
13883         PR tree-optimization/45633
13884         * tree-cfg.c (verify_gimple_assign_binary): Allow
13885         MINUS_EXPR with lhs and rhs1 pointer vector and
13886         rhs2 sizetype vector.
13887         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
13888         or vector pointer use TER to optimize pointer subtraction.
13889
13890 2010-09-15  Jie Zhang  <jie@codesourcery.com>
13891
13892         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
13893         fcmpd to fcmps.
13894
13895 2010-09-15  Ian Lance Taylor  <iant@google.com>
13896
13897         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
13898
13899 2010-09-15  Ian Lance Taylor  <iant@google.com>
13900
13901         * function.c (get_arg_pointer_save_area): Set
13902         arg_pointer_save_area_init to true.
13903
13904 2010-09-15  Martin Jambor  <mjambor@suse.cz>
13905
13906         * tree-sra.c (generate_subtree_copies): Updated comment.
13907         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
13908         obtained from the statement iterator instead.
13909         (load_assign_lhs_subreplacements): Removed parameters lhs and
13910         right_offset, which is obtained from top_racc instead.  Parameter lacc
13911         is now expected to be the root of the processed tree rather than root's
13912         first child.  Updated all callers.
13913
13914 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
13915
13916         * config/pdp11/pdp11.c (register_move_cost): Rename to
13917         pdp11_register_move_cost.
13918         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
13919         pdp11_register_move_cost.
13920         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
13921         pdp11_register_move_cost instead of register_move_cost.
13922
13923 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
13924
13925         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
13926         pattern for vmovn. Expansion in case of non
13927         -mvectorize-with-neon-quad.
13928         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
13929         non- -mvectorize-with-neon-quad case.
13930         (move_lo_quad_<mode>): New expansion to vmov into low part.
13931         (move_hi_quad_<mode>): New expansion to vmov into high part.
13932         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
13933         (move_lo_quad_v4sf): Likewise.
13934         (move_lo_quad_v8hi): Likewise.
13935         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
13936         low part.
13937         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
13938         high part.
13939         * config/arm/iterators.md (ANY128): New mode iterator.
13940         (V_narrow_pack): New mode attribute.
13941         (V_HALF): Add attribute.
13942         (V_DOUBLE): Add attribute.
13943         (V_mode_nunits): Add attribute.
13944
13945 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13946
13947         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
13948         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
13949
13950 2010-09-15  Olivier Hainque  <hainque@adacore.com>
13951             Jose Ruiz  <ruiz@adacore.com>
13952
13953         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
13954         * config/alpha/osf5-unwind.h: New file.
13955
13956 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13957
13958         PR bootstrap/45672
13959         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
13960         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
13961         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
13962
13963 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13964
13965         * c-lang.h (struct lang_type): Add variable_size GTY option.
13966
13967 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13968
13969         PR bootstrap/45672
13970         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
13971
13972 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13973
13974         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
13975         result isn't used in memory address.
13976
13977 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13978
13979         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
13980         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
13981         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
13982         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
13983         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
13984         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
13985
13986         * target.def: Add units_per_simd_word to vectorize.
13987
13988         * targhooks.c (default_units_per_simd_word): New.
13989         * targhooks.h (default_units_per_simd_word): Likewise.
13990         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
13991         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13992         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
13993         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13994         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
13995         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13996         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
13997         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13998
13999         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
14000         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
14001
14002         * tree-vect-stmts.c: Don't include "tm_p.h".
14003         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
14004         with targetm.vectorize.units_per_simd_word.
14005
14006         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
14007
14008         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
14009
14010         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
14011         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
14012
14013         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
14014         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
14015
14016         * doc/tm.texi: Regenerated.
14017
14018 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
14019
14020         * tree-vect-stmts.c: Include "tm_p.h".
14021
14022         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
14023         out of RTX_CODE.
14024
14025 2010-09-14  Martin Jambor  <mjambor@suse.cz>
14026
14027         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
14028         location of generated statement.  Changed all callers.
14029         (build_ref_for_model): New parameter loc which used to set location of
14030         all generated expressions.  Changed all callers.
14031         (generate_subtree_copies): Likewise.
14032         (init_subtree_with_zero): Likewise.
14033         (sra_modify_expr): Set locations of all generated statements and
14034         expressions to the location the original statement.
14035         (handle_unscalarized_data_in_subtree): Likewise.
14036         (load_assign_lhs_subreplacements): Likewise.
14037         (sra_modify_constructor_assign): Likewise.
14038         (sra_modify_assign): Likewise.
14039
14040 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
14041
14042         PR target/45277
14043         PR target/45363
14044         PR target/45407
14045         * doc/install.texi (sparc*-*-*): New section.
14046         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
14047
14048 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
14049
14050         PR middle-end/45567
14051         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
14052         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
14053         (expand_builtin): Adjust caller.
14054         (expand_builtin_unop): Only use subtarget if it has the right mode.
14055
14056 2010-09-14  Tristan Gingold  <gingold@adacore.com>
14057
14058         * configure.ac (plugins): Fix typos.
14059         * configure: Regenerate.
14060
14061 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
14062
14063         PR debug/45660
14064         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
14065         gen_type_die for function/method return type.
14066
14067 2010-09-14  Ira Rosen  <irar@il.ibm.com>
14068
14069         PR tree-optimization/45470
14070         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
14071         can throw an exception.
14072         * tree-vect-stmts.c (vectorizable_call): Likewise.
14073
14074 2010-09-14  DJ Delorie  <dj@redhat.com>
14075
14076         PR target/44749
14077         * config/mep/mep-protos.h (mep_save_register_info,
14078         mep_reinit_regs, mep_init_regs): Declare.
14079
14080         * config/mep/mep.c: Move all target definitions to the end of the
14081         file to avoid the need for duplicate declarations.
14082         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
14083         (mep_reorg_erepeat): Remove unused variables.
14084         (mep_expand_builtin): Likewise.
14085
14086         * config/mep/mep-pragma.c: Don't include rtl.h.
14087         (INVALID_REGNUM): New.
14088         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
14089         functions.
14090         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
14091         Avoid enum/integer math.
14092
14093 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
14094
14095         PR target/44749
14096         * config/mep/t-mep (GTM_H): Add insn-constants.h.
14097         * config/mep/mep.c (mep_conditional_register_usage): Take no
14098         parameters.
14099         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
14100         prototype.
14101         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
14102         call to mep_conditional_register_usage.
14103
14104 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
14105
14106         PR debug/43937
14107         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
14108         the DECL as well.
14109
14110 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
14111
14112         PR rtl-optimization/45617
14113         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
14114         even if low N bits of X aren't known to be zero.
14115
14116 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
14117
14118         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
14119
14120         * config/i386/i386.c (initial_ix86_tune_features): Add
14121         X86_TUNE_VECTORIZE_DOUBLE.
14122         (ix86_units_per_simd_word): New.
14123
14124         * config/i386/i386.h (ix86_tune_indices): Add
14125         X86_TUNE_VECTORIZE_DOUBLE.
14126         (TARGET_VECTORIZE_DOUBLE): New.
14127         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
14128
14129 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
14130
14131         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
14132         (new_temp_expr_table): Allocate call_cnt vector.
14133         (free_temp_expr_table): Free it.
14134         (process_replaceable): Add call_cnt parm and set in vector.
14135         (find_replaceable_in_bb): Skip replacement if def/use span a call.
14136         (debug_ter): Dump call_cnt value, remove stderr uses.
14137
14138 2010-09-13  Jan Hubicka  <jh@suse.cz>
14139
14140         * tree.c (build_zero_cst): New.
14141         * tree.h (build_zero_cst): Declare.
14142         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
14143         (get_base_constructor): Break out from ...
14144         (fold_const_aggregate_ref): Here; handle empty constructors.
14145
14146 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14147
14148         * config/arm/arm.md: (define_attr "conds"): Update comment.
14149         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
14150         conds attribute to clob.
14151         (arm_sync_compare_and_swapsi): Likewise.
14152         (arm_sync_compare_and_swap<mode>): Likewise.
14153         (arm_sync_lock_test_and_setsi): Likewise.
14154         (arm_sync_lock_test_and_set<mode>): Likewise.
14155         (arm_sync_new_<sync_optab>si): Likewise.
14156         (arm_sync_new_nandsi): Likewise.
14157         (arm_sync_new_<sync_optab><mode>): Likewise.
14158         (arm_sync_new_nand<mode>): Likewise.
14159         (arm_sync_old_<sync_optab>si): Likewise.
14160         (arm_sync_old_nandsi): Likewise.
14161         (arm_sync_old_<sync_optab><mode>): Likewise.
14162         (arm_sync_old_nand<mode>): Likewise.
14163
14164 2010-09-13  Olivier Hainque  <hainque@adacore.com>
14165
14166         * fwprop.c (forward_propagate_and_simplify): Only attach a
14167         REG_EQUAL note to an insn if the destination is a register.
14168         * gcse.c (try_replace_reg): Likewise.
14169
14170 2010-09-13  Richard Guenther  <rguenther@suse.de>
14171
14172         PR tree-optimization/45611
14173         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
14174         (copy_ref_info): Likewise.
14175
14176 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
14177
14178         PR debug/45604
14179         PR debug/45419
14180         PR debug/45408
14181         * tree-pretty-print.c (dump_generic_node): Disregard top-level
14182         types of MEM_REF pointer types to the same type.
14183
14184 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
14185
14186         PR rtl-optimization/41087
14187         * ifcvt.c (noce_get_condition): Don't allow conditions with
14188         side-effects.
14189
14190 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
14191
14192         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14193         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
14194         * config/frv/frv.c (frv_register_move_cost): Make static. Change
14195         arguments type to reg_class_t. Add mode argument.
14196         (frv_memory_move_cost): New.
14197         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
14198
14199 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
14200
14201         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
14202         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
14203
14204 2010-09-10  Jan Hubicka  <jh@suse.cz>
14205
14206         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
14207
14208 2010-09-10  Richard Guenther  <rguenther@suse.de>
14209
14210         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
14211         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
14212         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
14213         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
14214         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
14215
14216 2010-09-10  Richard Guenther  <rguenther@suse.de>
14217
14218         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
14219         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
14220         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
14221         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
14222
14223 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
14224
14225         PR middle-end/45634
14226         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
14227         of string folding is of integral type.
14228
14229 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
14230
14231         * doc/invoke.texi (-x): Fix typo.
14232
14233 2010-09-10  Richard Guenther  <rguenther@suse.de>
14234
14235         PR debug/44115
14236         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
14237         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14238         Output DECL_DEBUG_EXPR.
14239         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
14240         Input DECL_DEBUG_EXPR.
14241
14242 2010-09-10  Richard Guenther  <rguenther@suse.de>
14243
14244         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
14245         (build_index_type): Implement in terms of build_range_type.
14246         (build_range_type): Do not allow NULL_TREE type, improve
14247         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
14248         if we didn't hash.
14249         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
14250         create a distinct copy of the type.
14251
14252 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
14253
14254         * configure: Regenerated.
14255         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
14256
14257 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14258
14259         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
14260         * config/arm/cortex-a9-neon.md: New and partially generated.
14261         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
14262
14263 2010-09-10  Richard Guenther  <rguenther@suse.de>
14264
14265         * tree.h (build_index_2_type): Remove.
14266         * tree.c (build_index_2_type): Remove.
14267
14268 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
14269
14270         PR bootstrap/45630
14271         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
14272         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
14273         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
14274
14275 2010-09-10  Martin Jambor  <mjambor@suse.cz>
14276
14277         PR tree-optimization/44972
14278         * tree-sra.c: Include toplev.h.
14279         (build_ref_for_offset): Entirely reimplemented.
14280         (build_ref_for_model): New function.
14281         (build_user_friendly_ref_for_offset): New function.
14282         (analyze_access_subtree): Removed build_ref_for_offset check.
14283         (propagate_subaccesses_across_link): Likewise.
14284         (create_artificial_child_access): Use
14285         build_user_friendly_ref_for_offset.
14286         (propagate_subaccesses_across_link): Likewise.
14287         (ref_expr_for_all_replacements_p): Removed.
14288         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
14289         (sra_modify_expr): Use build_ref_for_model.
14290         (load_assign_lhs_subreplacements): Likewise.
14291         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
14292         checks for return values of build_ref_for_offset.
14293         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
14294         build_ref_for_offset.
14295         * ipa-prop.h: Include gimple.h
14296         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
14297         (ipa_analyze_indirect_call_uses): Update comment.
14298         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
14299         (IPA_PROP_H): Likewise.
14300
14301 2010-09-10  Martin Jambor  <mjambor@suse.cz>
14302
14303         PR tree-optimization/44972
14304         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
14305         calling build_ref_for_offset.
14306
14307 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14308
14309         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
14310         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
14311         * config/arm/arm-tune.md: Regenerate.
14312         * doc/invoke.texi (ARM Options): Document it.
14313
14314 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
14315
14316         * config/i386/i386.c: Include sched-int.h.
14317         (TARGET_SCHED_DISPATCH): Defined.
14318         (TARGET_SCHED_DISPATCH_DO): Defined.
14319         (DISPATCH_WINDOW_SIZE): Defined.
14320         (MAX_DISPATCH_WINDOWS): Defined.
14321         (MAX_INSN): Defined.
14322         (MAX_IMM): Defined.
14323         (MAX_IMM_SIZE): Defined.
14324         (MAX_IMM_32): Defined.
14325         (MAX_IMM_64): Defined.
14326         (MAX_LOAD): Defined.
14327         (MAX_STORE): Defined.
14328         (BIG): Defined.
14329         (dispatch_group): New.
14330         (num_allowable_groups): New.
14331         (group_name): New.
14332         (sched_insn_info_s): New.
14333         (dispatch_windows_s): New.
14334         (imm_info_s): New.
14335         (dispatch_window_list): New.
14336         (dispatch_window_list1): New.
14337         (get_mem_group): New.
14338         (is_cmp): New.
14339         (dispatch_violation): New.
14340         (is_branch): New.
14341         (is_prefetch): New.
14342         (init_window): New.
14343         (allocate_window): New.
14344         (init_dispatch_sched): New.
14345         (is_end_basic_block): New.
14346         (process_end_window): New.
14347         (allocate_next_window): New.
14348         (find_constant_1): New.
14349         (find_constant): New.
14350         (get_num_immediates): New.
14351         (has_immediate): New.
14352         (get_insn_path): New.
14353         (get_insn_group): New.
14354         (count_num_restricted): New.
14355         (fits_dispatch_window): New.
14356         (add_insn_window): New.
14357         (add_to_dispatch_window): New.
14358         (debug_dispatch_window_file): New.
14359         (debug_dispatch_window): New.
14360         (debug_insn_dispatch_info_file): New.
14361         (debug_ready_dispatch): New.
14362         (do_dispatch): New.
14363         (has_dispatch): New.
14364         * config/i386/i386.h (debug_ready_dispatch): Declared.
14365         (debug_dispatch_window): Declared.
14366         * config/i386/i386.opt (mdispatch-scheduler): New flag.
14367         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
14368         (TARGET_SCHED_DISPATCH_DO): New.
14369         * doc/tm.texi: Regererated.
14370         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
14371         ready_remove_first_dispatch
14372         (schedule_block): Call targetm.sched.dispatch and
14373         targetm.sched.dispatch_do.
14374         (sched_init): Call targetm.sched.dispatch and
14375         targetm.sched.dispatch_do.
14376         (ready_remove_first_dispatch): New.
14377         (number_in_ready): New.
14378         (get_ready_element): New.
14379         * hooks.c (hook_bool_rtx_int_false): New.
14380         (hook_void_rtx_int): New.
14381         * hooks.h (hook_bool_rtx_int_false): Declared.
14382         (hook_void_rtx_int): Declared.
14383         * sched-int.h (IS_DISPATCH_ON): Defined.
14384         (IS_CMP): Defined.
14385         (DISPATCH_VIOLATION): Defined.
14386         (FITS_DISPATCH_WINDOW): Defined.
14387         (DISPATCH_INIT): Defined.
14388         (ADD_TO_DISPATCH_WINDOW): Defined.
14389         (get_ready_element): Declared.
14390         (number_in_ready): Declared.
14391         * target.def (dispatch): Defined.
14392         (dispatch_do): Defined.
14393
14394 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14395
14396         PR middle-end/45312
14397         * reload1.c (merge_assigned_reloads): Remove.
14398         (reload_as_needed): Don't call it.
14399
14400 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
14401
14402         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
14403         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14404         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14405
14406 2010-09-09  Matthias Klose  <doko@ubuntu.com>
14407
14408         PR bootstrap/43847
14409         * configure.ac (--enable-plugin): Enhance for cross builds.
14410         * configure: Regenerate.
14411
14412 2010-09-09  Jan Hubicka  <jh@suse.cz>
14413
14414         PR tree-optimization/45598
14415         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
14416         string folding is of integral type.
14417
14418 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
14419
14420         * configure.ac (gnu_indirect_function): New test.
14421         * configure: Rebuilt.
14422         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
14423         * defaults.h (IFUNC_ASM_TYPE): Provide default.
14424
14425         * doc/extend.texi (Function Attributes): Document ifunc.
14426         * varasm.c (do_assemble_alias): Deal with ifuncs too.
14427
14428 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
14429
14430         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
14431         epilogue instruction move.
14432
14433 2010-09-09  Jan Hubicka  <jh@suse.cz>
14434
14435         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
14436         command line to allow more partitions than input files.
14437
14438 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14439
14440         PR middle-end/44554
14441         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
14442
14443 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14444
14445         PR middle-end/40386
14446         * ira.c (pseudo_for_reload_consideration_p): Don't use
14447         flag_ira_share_spill_slots.
14448
14449 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14450
14451         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
14452         point zero operands that fit into a single GPR.
14453         (s390_preferred_reload_class): Ensure we only return general-purpose
14454         register classes.
14455         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
14456         floating-point zero operands into GPRs.
14457         ("*mov<mode>_64"): Likewise.
14458         ("mov<mode>"): Likewise using lhi.
14459
14460 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14461
14462         * config/s390/s390.c (s390_symref_operand_p): Return false for
14463         literal pool references.
14464         (s390_check_qrst_address): Update caller.
14465
14466 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
14467
14468         * config/i386/predicates.md (ext_register_operand): Check that
14469         SUBREG_REG is really a register before looking for REGNO.
14470         (reg_not_xmm0_operand): Handle SUBREGs correctly.
14471         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
14472
14473 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
14474
14475         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
14476         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
14477         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
14478         * print-rtl.c (print_rtx): Likewise.
14479         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
14480         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
14481         for ADDR_EXPR with non-addressable object.
14482         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
14483         (struct dw_val_struct): Add v.val_decl_ref.
14484         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
14485         Handle DW_OP_GNU_implicit_pointer.
14486         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
14487         (get_ref_die_offset_label): New function.
14488         (implicit_ptr_descriptor): New function.
14489         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
14490         (loc_descriptor): Likewise.
14491         (gen_variable_die): Put even definitions into decl_die_table.
14492         (resolve_addr_in_expr): Resolve still unresolved
14493         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
14494         return false.
14495         (dwarf2out_finish): Call output_location_lists after outputting
14496         .debug_info and .debug_abbrev instead of before.
14497
14498 2010-09-09  Roland McGrath  <roland@redhat.com>
14499
14500         * dwarf2out.c (DWARF_REF_SIZE): Define.
14501         (size_of_loc_descr): Use it for DW_OP_call_ref.
14502
14503 2010-09-09  Alan Modra  <amodra@gmail.com>
14504
14505         * doc/invoke.text: Reinstate mcmodel=medium.
14506         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
14507         CMODEL_MEDIUM as default.
14508         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
14509         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
14510         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
14511         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
14512
14513 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14514
14515         PR target/45250
14516         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
14517         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
14518         (builtin_longjmp): Likewise.
14519         (allocate_stack): Use hard_frame_pointer_rtx instead of
14520         frame_pointer_rtx.
14521         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
14522         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
14523         (pa_can_eliminate): Likewise.
14524         (TARGET_INTERNAL_ARG_POINTER): Define.
14525         (TARGET_CAN_ELIMINATE): Define.
14526         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
14527         pointer.
14528         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
14529         (pa_internal_arg_pointer, pa_can_eliminate,
14530         pa_initial_elimination_offset): New.
14531         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
14532         (HARD_FRAME_POINTER_REGNUM): Set to register three.
14533         (INITIAL_FRAME_POINTER_OFFSET): Delete.
14534         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
14535         Define.
14536         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
14537         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
14538         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
14539         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
14540         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
14541         new soft frame pointer.
14542         * config/pa/pa64-regs.h: Likewise.
14543
14544 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
14545
14546         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
14547         numerical constant.
14548         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
14549
14550 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
14551
14552         PR debug/45531
14553         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
14554
14555 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
14556
14557         PR debug/45419
14558         PR debug/45408
14559         * tree-pretty-print.c (dump_generic_node): Disregard top-level
14560         qualifiers in otherwise equal MEM_REF pointer types.
14561         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
14562         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
14563
14564 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14565
14566         PR target/44392
14567         * config/arm/arm.md (bswapsi2): Handle condition correctly
14568         for armv6 and optimize_size.
14569
14570 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14571
14572         PR other/18555
14573         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
14574
14575 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
14576
14577         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
14578         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
14579         ix86_expand_strlen, legitimate_pic_address_disp_p,
14580         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
14581         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
14582         ix86_check_movabs, ix86_secondary_memory_needed): Change function
14583         prototype to bool.
14584         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
14585         return_in_memory_ms_64, ix86_check_movabs,
14586         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
14587         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
14588         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
14589         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
14590         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
14591         ix86_secondary_memory_needed): Change to bool.  Return
14592         "true" and "false" values.
14593         * config/i386/i386.md: Return "true" and "false" values.
14594
14595 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14596
14597         * doc/sourcebuild.texi (Effective-Target Keywords): Document
14598         run_expensive_tests.
14599
14600 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14601
14602         * toplev.c (output_stack_usage): Use lbasename instead of basename.
14603
14604 2010-09-08  Martin Jambor  <mjambor@suse.cz>
14605
14606         PR other/45443
14607         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
14608         at -O3.
14609
14610 2010-09-08  Richard Guenther  <rguenther@suse.de>
14611
14612         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
14613         (visit): Adjust.
14614         (iterative_hash_gimple_type): Likewise.
14615         (gimple_type_hash): Likewise.
14616         (gimple_register_type): Likewise.
14617         (print_gimple_types_stats): Likewise.
14618         (free_gimple_type_tables): Likewise.
14619
14620 2010-09-08  Michael Matz  <matz@suse.de>
14621
14622         PR tree-optimization/43430
14623         * tree-vect-stmts.c (vectorizable_condition): Support multiple
14624         copies for conditional statements if it's not part of a reduction.
14625
14626 2010-09-08  Michael Matz  <matz@suse.de>
14627
14628         PR tree-optimization/33244
14629         * tree-ssa-sink.c (statement_sink_location): Don't sink into
14630         empty loop latches.
14631
14632 2010-09-08  Richard Guenther  <rguenther@suse.de>
14633
14634         PR tree-optimization/45578
14635         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
14636         Be more careful when transfering alignment information to
14637         the new induction variable.
14638         (copy_ref_info): Likewise.
14639
14640 2010-09-08  Richard Guenther  <rguenther@suse.de>
14641
14642         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
14643         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
14644
14645 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
14646
14647         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
14648         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
14649
14650 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
14651
14652         PR doc/45587
14653         * doc/md.texi: Fixed modes on several standard pattern names.
14654
14655 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
14656
14657         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
14658         (ashl<mode>3): ...this.
14659         (loongson_psra<V_suffix>): Rename to...
14660         (ashr<mode>3): ...this.
14661         (loongson_psrl<V_suffix>): Rename to...
14662         (lshr<mode>3): ...this.
14663         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
14664         (CODE_FOR_loongson_psllw): Define.
14665         (CODE_FOR_loongson_psrlh): Define.
14666         (CODE_FOR_loongson_psrlw): Define.
14667         (CODE_FOR_loongson_psrah): Define.
14668         (CODE_FOR_loongson_psraw): Define.
14669
14670 2010-09-07  Richard Henderson  <rth@redhat.com>
14671
14672         * tree-vect-data-refs.c: Include tm_p.h.
14673         * Makefile.in (tree-vect-data-refs.o): Update deps.
14674         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
14675         Move delarations outside #ifdef RTX_CODE.
14676
14677 2010-09-07  Richard Henderson  <rth@redhat.com>
14678
14679         * final.c (rest_of_handle_final): Unconditionally do
14680         output_function_exception_table before assemble_end_function.
14681
14682 2010-09-07  Jan Hubicka  <jh@suse.cz>
14683
14684         * tree-inline.c (tree_inlinable_function_p): Do not test
14685         DECL_REPLACEABLE_P.
14686         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
14687         update_callee_keys, cgraph_decide_inlining): Test function availability.
14688         * cif-code.def (OVERWRITABLE): New code.
14689
14690 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
14691             Jack Howarth  <howarth@bromo.med.uc.edu>
14692
14693         PR target/36502
14694         PR target/42313
14695         PR target/44651
14696         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
14697         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
14698         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
14699         MAX macro.
14700
14701 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14702
14703         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
14704         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
14705
14706 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14707
14708         * config.gcc: Don't append t-android for Android targets.
14709
14710         * config/t-android: Removed.
14711
14712 2010-09-07  Richard Henderson  <rth@redhat.com>
14713
14714         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
14715         * doc/tm.texi.in: Add doc marker.
14716         * doc/tm.texi: Rebuild.
14717         * except.c (switch_to_exception_section): Always build.
14718         (output_one_function_exception_table): Move section switch,
14719         personality output, and label output ...
14720         (output_function_exception_table): ... here.  Use the new
14721         personality hook.
14722
14723         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
14724         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
14725         TARGET_ASM_INIT_SECTIONS): New.
14726         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
14727         make static.
14728         (TARGET_ASM_UNWIND_EMIT): Update to match.
14729         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
14730
14731         * config/arm/arm.c (arm_asm_emit_except_personality): New.
14732         (arm_asm_init_sections): New.
14733         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
14734
14735 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14736
14737         * config/arm/arm.md: Remove unused variable.
14738
14739 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
14740
14741         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14742         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
14743         (m32r_memory_move_cost): New function.
14744
14745 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14746
14747         * config.gcc: Append t-android for Android targets.
14748
14749         * config/t-android: New.
14750
14751 2010-09-07  Richard Henderson  <rth@redhat.com>
14752
14753         * target.def (unwind_emit_before_insn): New hook.
14754         * doc/tm.texi.in: Add @hook marker for it.
14755         * doc/tm.texi: Rebuild.
14756         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
14757
14758 2010-09-07  Martin Jambor  <mjambor@suse.cz>
14759
14760         PR fortran/43665
14761         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
14762         are any type attributes.
14763
14764 2010-09-07  Jan Hubicka  <jh@suse.cz>
14765
14766         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
14767         array_ref_low_bound in string access folding.
14768
14769 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
14770
14771         PR target/45206
14772         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
14773         eh_return fixup sequence.
14774
14775 2010-09-07  Jan Hubicka  <jh@suse.cz>
14776
14777         * gimple-fold.c (maybe_fold_reference): Verify that operand is
14778         gimple_min_invariant.
14779
14780 2010-09-07  Richard Guenther  <rguenther@suse.de>
14781
14782         PR middle-end/45569
14783         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
14784         nor CONSTRUCTOR can trap.
14785         * tree-complex.c (update_complex_assignment): Update EH info.
14786
14787 2010-09-07  Richard Guenther  <rguenther@suse.de>
14788
14789         PR middle-end/45569
14790         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
14791         * passes.c (execute_function_todo): Do not verify anything if
14792         we saw errors.
14793
14794 2010-09-07  Richard Guenther  <rguenther@suse.de>
14795
14796         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
14797
14798 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
14799
14800         PR target/43137
14801         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
14802         New define_mode_attrs.
14803         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
14804         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
14805         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
14806         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
14807         Remove pool_range attribute.
14808         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
14809         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
14810         pool_range and neg_pool_range attributes.
14811         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
14812         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
14813         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
14814
14815 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
14816
14817         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
14818         check glibc.
14819
14820 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
14821
14822         PR target/22152
14823         * config/i386/mmx.md (*mov<mode>_internal_rex64,
14824         *mov<mode>_internal_avx, *mov<mode>_internal,
14825         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
14826         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
14827
14828 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
14829
14830         * c-typeck.c (do_warn_double_promotion): Remove.
14831         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
14832         Objective-C++ too.
14833
14834 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
14835
14836         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
14837         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
14838         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
14839         argument type to reg_class_t. Change result type to bool.
14840         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
14841
14842 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
14843
14844         PR libobjc/19850
14845         * gthr-posix.h (__gthread_objc_thread_detach): Use
14846         _objc_thread_attribs when detaching a thread.
14847         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
14848
14849 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
14850
14851         PR target/45524
14852         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
14853         * configure: Regenerated.
14854
14855 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14856
14857         * combine.c (try_combine): Set subst_low_luid to i0.
14858
14859 2010-09-06  Richard Guenther  <rguenther@suse.de>
14860
14861         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
14862         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
14863         (build_aligned_type): Declare.
14864         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
14865         (check_aligned_type): New function.
14866         (build_aligned_type): Likewise.
14867         * expr.c (expand_assignment): Handle misaligned stores via
14868         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
14869         (expand_expr_real_1): Likewise.
14870         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
14871         * tree-vect-stmts.c (vectorizable_store): Do not build
14872         MISALIGNED_INDIRECT_REF but initialize alignment information.
14873         (vectorizable_load): Likewise.
14874         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
14875         handling.
14876         * cfgexpand.c (expand_debug_expr): Likewise.
14877         * dwarf2out.c (loc_list_from_tree): Likewise.
14878         * fold-const.c (maybe_lvalue_p): Likewise.
14879         (operand_equal_p): Likewise.
14880         (build_fold_addr_expr_with_type_loc): Likewise.
14881         * gimplify.c (gimplify_addr_expr): Likewise.
14882         (gimplify_expr): Likewise.
14883         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
14884         (verify_gimple_assign_single): Likewise.
14885         * tree-dump.c (dequeue_and_dump): Likewise.
14886         (tree_could_trap_p): Likewise.
14887         * tree-predcom.c (ref_at_iteration): Likewise.
14888         * tree-pretty-print.c (dump_generic_node): Likewise.
14889         (op_code_prio): Likewise.
14890         (op_symbol_code): Likewise.
14891         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
14892         * tree-ssa-loop-im.c (for_each_index): Likewise.
14893         (gen_lsm_tmp_name): Likewise.
14894         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
14895         (find_interesting_uses_address): Likewise.
14896         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
14897         * tree-ssa-operands.c (get_expr_operands): Likewise.
14898         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
14899         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
14900         (ao_ref_init_from_vn_reference): Likewise.
14901         * tree.c (staticp): Likewise.
14902         (build1_stat): Likewise.
14903         (reference_alias_ptr_type): Likewise.
14904         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
14905         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
14906         MISALIGNED_INDIRECT_REF handling.
14907
14908 2010-09-06  Richard Guenther  <rguenther@suse.de>
14909
14910         PR tree-optimization/45534
14911         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
14912         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
14913         on the target.
14914         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
14915         valid on the target.
14916
14917 2010-09-06  Andreas Schwab  <schwab@redhat.com>
14918
14919         * configure.ac: Quote argument of AC_MSG_WARN.
14920         * configure: Regenerate.
14921
14922 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
14923
14924         * sel-sched.c (move_cond_jump): Correct arguments to
14925         maybe_tidy_empty_bb.
14926         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
14927
14928 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
14929
14930         PR rtl-optimization/44919
14931         * sel-sched.c (move_cond_jump): Remove assert, check that
14932         the several blocks case can only happen with mutually exclusive
14933         insns instead.  Rewrite the movement code to support moving through
14934         several basic blocks.
14935
14936 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
14937
14938         * config/i386/i386.md (iptrsize): New mode attribute.
14939         (tp_seg): Ditto.
14940         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
14941         mode iterator.
14942         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
14943         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
14944         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
14945         (stack_tls_protect_set_<mode>): Ditto from
14946         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
14947         of thread base pointer load.
14948         (stack_tls_protect_test_<mode>): Ditto from
14949         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
14950         of thread base pointer load.
14951         (stack_protect_set): Rewrite using indirect functions.
14952         (stack_protect_test): Ditto.
14953         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
14954         (ix86_print_operand): Handle '@'.
14955
14956 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
14957
14958         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
14959         MINUS_EXPR.
14960
14961 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
14962
14963         * doc/invoke.texi: Document -Wdouble-promotion.
14964         * c-typeck.c (convert_arguments): Check for implicit conversions
14965         from float to double.
14966         (do_warn_double_promotion): New function.
14967         (build_conditional_expr): Use it.
14968         (build_binary_op): Likewise.
14969
14970 2010-09-05  Richard Guenther  <rguenther@suse.de>
14971
14972         PR tree-optimization/45535
14973         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
14974         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
14975         dereferencing it.
14976         (indirect_refs_may_alias_p): Likewise.
14977
14978 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
14979
14980         * config/sh/sh.c (sh_option_override): Make static.
14981         Adjust comments.  Declare.
14982         (sh_function_value_regno_p): Likewise.
14983         (sh_register_move_cost): Modify the arguments, make static.
14984         Adjust comments.  Declare.
14985         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
14986         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14987         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
14988         REGISTER_MOVE_COST): Delete.
14989         * config/sh/sh-protos.h (sh_override_options): Delete.
14990         (sh_register_move_cost): Delete.
14991         (sh_function_value_regno_p): Delete.
14992
14993 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
14994
14995         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
14996         m32r_function_value_regno_p): New functions.
14997         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14998         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
14999         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
15000         FUNCTION_VALUE_REGNO_P): Remove.
15001
15002 2010-09-04  Jan Hubicka  <jh@suse.cz>
15003
15004         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
15005         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
15006         fold_read_from_constant_string.
15007
15008         * gimple.h (canonicalize_constructor_val): Declare.
15009         * gimple-fold.c (canonicalize_constructor_val): New function.
15010         (get_symbol_constant_value):Use it.
15011         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
15012
15013 2010-09-04  Jan Hubicka  <jh@suse.cz>
15014
15015         * tree-switch-conversion.c (build_one_array): Set constructor to be
15016         static.
15017         * varpool.c (varpool_finalize_decl): Compute const_value_known.
15018
15019 2010-09-04  Richard Guenther  <rguenther@suse.de>
15020
15021         PR bootstrap/45519
15022         * tree-flow.h (force_gimple_operand_1): Declare.
15023         (force_gimple_operand_gsi_1): Likewise.
15024         * gimplify.c (force_gimple_operand_1): New worker taking a
15025         gimple predicate for ...
15026         (force_gimple_operand): ... which now wraps it.
15027         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
15028         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
15029         last change.
15030         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
15031         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
15032         (create_mem_ref): Likewise.
15033
15034 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
15035
15036         * config/i386/predicates.md (sse_reg_operand): New predicate.
15037         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
15038         predicate for operand 1.
15039         (XFmode push splitter): Use fp_register_operand predicate
15040         for operand 1.
15041         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
15042         (SF-DF float_extend push splitter): Add reload_completed insn
15043         predicate.
15044         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
15045         MODEF mode macro.  Add reload_completed insn predicate.
15046
15047 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
15048
15049         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
15050         (struct df_extract_ref): Remove.
15051         (union df_ref_d): Remove extract_ref member.
15052         (df_ref_create): Remove last three arguments.
15053         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
15054         * df-scan.c (df_ref_record): Remove last three arguments, do not
15055         pass them to df_ref_create_structure.
15056         (df_uses_record): Remove first and last three arguments.  Replace
15057         first argument with DF_REF_REGULAR, adjust calls to remove the
15058         width, offset and mode.  Always call recursively on the second
15059         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
15060         (df_ref_create_structure): Remove first argument.
15061         (struct df_scan_problem_data): Remove ref_extract_pool.
15062         (df_scan_free_internal): Do not free it.
15063         (df_scan_alloc): Do not allocate it.
15064         (df_ref_create): Remove last three arguments, do not pass them to
15065         df_ref_create_structure.
15066         (df_free_ref): Remove DF_REF_EXTRACT case.
15067         (df_notes_rescan): Adjust call to df_uses_record.
15068         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
15069         Remove DF_REF_EXTRACT case.
15070         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
15071         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
15072         and SUBREG definitions.
15073         (df_get_conditional_uses): Remove references to width/offset/mode,
15074         adjust call to df_ref_create_structure.
15075         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
15076         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
15077         calls to df_uses_record and df_ref_record.
15078         * fwprop.c (update_df): Remove references to width/offset/mode,
15079         adjust call to df_ref_create.
15080
15081 2010-09-03  Jan Hubicka  <jh@suse.cz>
15082
15083         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
15084         (build_cdtor_fns): Update use of build_cdtor.
15085
15086 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
15087
15088         * doc/options.texi (SeparateAlias): Document.
15089         * opt-functions.awk (switch_flags): Handle SeparateAlias.
15090         * opth-gen.awk: Generate enumeration names for options marked
15091         SeparateAlias, but not for those marked Ignore.
15092         * opts-common.c (generate_canonical_option): Don't output separate
15093         argument for options marked CL_SEPARATE_ALIAS.
15094         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
15095         * opts.h (CL_SEPARATE_ALIAS): New.
15096         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
15097         CL_COMMON): Adjust definitions.
15098         * config/i386/darwin.opt, config/mips/sde.opt: New.
15099         * common.opt (fdump-final-insns): New.
15100         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
15101         i386/darwin.opt.
15102         (mips*-sde-elf*): Add mips/sde.opt.
15103         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
15104         -mno-data-in-code and -mcode-xonly here.
15105         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
15106         * gcc.c (option_map): Add "j" to --dump entry.
15107         (translate_options): Don't translate -d to -foutput-class-dir= here.
15108
15109 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
15110
15111         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
15112         DR_IS_WRITE.
15113         (compute_all_dependences): Same.
15114         (create_rdg_edge_for_ddr): Same.
15115         * tree-data-ref.h (DR_IS_WRITE): New.
15116         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
15117         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
15118         (write_memrefs_written_at_least_once): Same.
15119         * tree-predcom.c (suitable_component_p): Same.
15120         (determine_roots_comp): Same.
15121         (execute_load_motion): Same.
15122         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
15123         (vect_enhance_data_refs_alignment): Same.
15124         (vect_analyze_group_access): Same.
15125
15126 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
15127
15128         PR testsuite/42843
15129         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
15130         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
15131
15132 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
15133
15134         * dwarf2out.c (file scope): Remove #if0'd code.
15135         (gen_subprogram_die): Same.
15136
15137 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
15138
15139         PR middle-end/45484
15140         * dwarf2out.c (flush_queued_reg_saves): Rename to...
15141         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
15142         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
15143         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
15144         * config/i386/i386.c (output_set_got): Call it.
15145
15146 2010-09-03  Michael Matz  <matz@suse.de>
15147
15148         PR middle-end/45415
15149         * tree-sra.c (sra_modify_assign): If we modify the statement,
15150         say so.
15151
15152         * tree-ssa.c (verify_ssa): Check number of operands and links
15153         per statement to agree.
15154
15155 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
15156             Iain Sandoe  <iains@gcc.gnu.org>
15157
15158         PR target/45476
15159         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
15160         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
15161         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
15162
15163 2010-09-03  Richard Guenther  <rguenther@suse.de>
15164
15165         * lto-streamer-out.c (output_function): Output function
15166         start and end loci.
15167         * lto-streamer-in.c (input_function): Input function start
15168         and end loci.
15169
15170 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15171
15172         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
15173         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
15174         * configure: Regenerate.
15175         * aclocal.m4: Regenerate.
15176
15177 2010-09-03  Jan Hubicka  <jh@suse.cz>
15178
15179         PR lto/44812
15180         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
15181         on functions/variables in other partition.
15182
15183 2010-09-03  Jan Hubicka  <jh@suse.cz>
15184
15185         * cgraph.h (struct varpool_node): Add const_value_known.
15186         (varpool_decide_const_value_known): Declare.
15187         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
15188         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
15189         (input_varpool_node): Restore const_value_known.
15190         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
15191         initializer folding.
15192         * ipa.c (ipa_discover_readonly_nonaddressable_var,
15193         function_and_variable_visibility): Compute const_value_known.
15194         * gimple-fold.c (get_symbol_constant_value): Use varpool for
15195         initializer folding.
15196         * varpool.c (varpool_decide_const_value_known): New function.
15197
15198 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
15199
15200         * config/i386/i386.md: Remove empty preparation statements
15201         from splitters.
15202
15203 2010-09-03  Jan Hubicka  <jh@suse.cz>
15204
15205         * passes.c (rest_of_decl_compilation): Do not add local vars into
15206         varpool.
15207         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
15208         static or extern vars are in varpool.
15209         (varpool_finalize_decl): Sanity check that only static vars are
15210         finalized.
15211
15212 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
15213
15214         PR debug/45500
15215         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
15216         not just generic vectors with BLKmode.
15217
15218 2010-09-03  Richard Guenther  <rguenther@suse.de>
15219
15220         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
15221         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
15222         * tree.h (TMR_SYMBOL): Remove.
15223         (TMR_BASE, TMR_OFFSET): Adjust.
15224         (TMR_INDEX2): New.
15225         * alias.c (ao_ref_from_mem): Use TMR_BASE.
15226         * builtins.c (get_object_alignment): Merge TMR_BASE and
15227         TMR_SYMBOL handling.
15228         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
15229         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
15230         handling.  Also allow TARGET_MEM_REF as base address.
15231         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
15232         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
15233         base.  Gimplify TMR_INDEX2.
15234         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
15235         * tree-dfa.c (get_ref_base_and_extent): Likewise.
15236         (get_addr_base_and_unit_offset): Likewise.
15237         * tree-eh.c (tree_could_trap_p): Likewise.
15238         * tree-pretty-print.c (dump_generic_node): Likewise.
15239         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
15240         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
15241         base to index2.
15242         (get_address_description): Reconstruct addres description
15243         from merged TMR_BASE and TMR_INDEX2.
15244         (maybe_fold_tmr): Fold propagated addresses.
15245         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
15246         MEM_REF and TARGET_MEM_REF paths.
15247         (indirect_refs_may_alias_p): Likewise.
15248         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
15249         instead of TMR_SYMBOL.
15250         * tree-ssa-operands.c (get_tmr_operands): Simplify.
15251         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
15252         according to changes ...
15253         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
15254         Split TARGET_MEM_REF into two fields plus the base.
15255         * tree.c (mem_ref_offset): Simplify.
15256         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
15257         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
15258         Strip NOPs when folding MEM_REF addresses.
15259         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
15260         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
15261         (fold_gimple_assign): ... not here.
15262
15263 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
15264
15265         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
15266         * config/mips/mips.c (mips_shift_truncation_mask): New function.
15267         (TARGET_SHIFT_TRUNCATION_MASK): Define.
15268
15269 2010-09-02  Richard Henderson  <rth@redhat.com>
15270
15271         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
15272         instead of readelf in the test.
15273         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
15274         in the .debug_frame section for coff targets.
15275         * configure: Rebuild.
15276
15277 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
15278
15279         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
15280         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
15281         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
15282         (m32c_class_likely_spilled_p): Make static. Change argument type to
15283         reg_class_t. Change result type to bool.
15284
15285 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
15286
15287         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
15288         to convert (double)(long) into a single FRIZ instruction or not
15289         when -ffast-math is used.
15290
15291         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
15292         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
15293         or FRIZ instruction if -ffast-math.
15294         * config/rs6000/rs6000.md (friz): Ditto.
15295
15296         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
15297
15298 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15299
15300         * opth-gen.awk (quote, comma): Remove unused variables.
15301
15302 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
15303
15304         * arm.c (arm_override_options): Correct fall-back code to use
15305         SUBTARGET_CPU_DEFAULT.
15306
15307 2010-09-02  Julian Brown  <julian@codesourcery.com>
15308
15309         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
15310         unspecs.
15311         (vcond<mode>, vcondu<mode>): New expanders.
15312         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
15313         comparisons with zero.
15314         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
15315         * config/arm/constraints.md (Dz): New constraint.
15316
15317 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
15318
15319         * target.def (class_likely_spilled_p): New hook.
15320         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
15321         * doc/tm.texi: Regenerate.
15322         * targhooks.c (default_class_likely_spilled_p): New function.
15323         * targhooks.h (default_class_likely_spilled_p): Declare.
15324         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
15325         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
15326         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
15327         Use fixed_reg_set instead of fixed_regs.
15328         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
15329         * calls.c (avoid_likely_spilled_reg): Ditto.
15330         * ira-conflicts.c (ira_build_conflicts): Ditto.
15331         * ira.c (update_equiv_regs): Ditto.
15332         * mode-switching.c (create_pre_exit): Ditto.
15333         * regmove.c (find_matches): Ditto.
15334         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
15335         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
15336         (small_register_class_p): New inline function.
15337         (push_secondary_reload, find_reusable_reload, find_reloads): Use
15338         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
15339
15340         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
15341         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
15342         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
15343
15344 2010-09-02  Richard Guenther  <rguenther@suse.de>
15345
15346         PR tree-optimization/44937
15347         PR tree-optimization/45412
15348         * ipa-split.c (split_function): Properly remove PHI nodes.
15349
15350 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15351
15352         * opts.h (struct cl_option): Add warn_message field.
15353         (struct cl_decoded_option): Add warn_message field.
15354         * doc/options.texi (Ignore, Warn): Document.
15355         * opt-functions.awk (needs_state_p): Don't consider aliases or
15356         ignored options to need state saved.
15357         * optc-gen.awk: Handle Warn and Ignore.
15358         * opth-gen.awk: Output OPT_SPECIAL_ignore.
15359         * opts-common.c (decode_cmdline_option): Set warn_message field.
15360         Handle ignored options.
15361         (decode_cmdline_options_to_array, generate_option,
15362         generate_option_input_file): Set warn_message field.
15363         (read_cmdline_option): Generate warnings from warn_message field.
15364         Handle ignored options.
15365         * common.opt (Wunreachable-code, fargument-alias,
15366         fargument-noalias, fargument-noalias-global,
15367         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
15368         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
15369         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
15370         ftree-salias): Mark Ignore.
15371         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
15372         -mintel-syntax and -mno-intel-syntax here.
15373         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
15374         using Warn.
15375         * opts.c (common_handle_option): Don't handle options marked as
15376         ignored.
15377         (enable_warning_as_error): Handle ignored options.
15378
15379 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15380
15381         PR driver/44076
15382         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
15383         alias_target fields.
15384         * opt-functions.awk (opt_sanitized_name): Don't handle
15385         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
15386         * optc-gen.awk: Generate alias fields.
15387         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
15388         Don't generate such constants for aliases.
15389         * opts-common.c (generate_canonical_option): New.
15390         (decode_cmdline_option): Handle aliases.  Use
15391         generate_canonical_option for known options instead of copying the
15392         input option text.
15393         * doc/options.texi (Alias): Document.
15394         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
15395         fstack-check, specs): Mark as aliases.
15396         * gcc.c (driver_handle_option): Canonicalize -L options to joined
15397         arguments.
15398         (driver_handle_option): Don't handle OPT_specs.
15399         * opts.c (common_handle_option): Don't handle options marked as
15400         aliases.
15401         (enable_warning_as_error): Handle aliases.
15402         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
15403         OPT_Wlarger_than_eq.
15404         * tree-optimize.c (tree_rest_of_compilation): Use
15405         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
15406
15407 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
15408
15409         * config/i386/i386.md (nonmemory_operand): New mode attribute.
15410         (push memory peephole2): Macroize peepholes using SWI mode iterator.
15411         (move immediate to memory peephole2): Macroize peepholes using
15412         SWI124 mode iterator.
15413         (non-pairable NOT peephole2): Macroize peepholes using SWI124
15414         mode iterator.
15415         (simple lea add peephole2): Macroize peepholes using SWI48
15416         mode iterator.
15417         (simple lea mult peephole2): Ditto.
15418         (imul by 3,5,9 to lea peephole2): Ditto.
15419         (mov $-1, reg peephole2): Macroize peepholes using SWI248
15420         mode iterator.
15421         (imul $32bit_imm,mem,reg peephole2): Ditto.
15422         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
15423
15424 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
15425
15426         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
15427
15428 2010-09-02  Olivier Hainque  <hainque@adacore.com>
15429
15430         PR middle-end/44763
15431         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
15432         (allocno_priority_compare_func): Use it instead of a straight
15433         difference computation over priorities.
15434
15435 2010-09-02  Andi Kleen  <ak@linux.intel.com>
15436
15437         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
15438
15439 2010-09-02  Ira Rosen  <irar@il.ibm.com>
15440
15441         * tree-vectorizer.h (get_later_stmt): New function.
15442         (vect_analyze_data_ref_dependences): Add argument.
15443         * tree-vect-loop.c (vect_analyze_loop): Update call to
15444         vect_analyze_data_ref_dependences.
15445         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
15446         New function.
15447         (vect_analyze_data_ref_dependence): Add argument for basic block
15448         dependencies. Check dependencies in basic block vectorization.
15449         (vect_analyze_data_ref_dependences): Add argument and update call to
15450         vect_analyze_data_ref_dependences.
15451         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
15452         (vect_bb_vectorizable_with_dependencies): New.
15453         (vect_slp_analyze_bb): Check dependencies in basic block.
15454         (vect_schedule_slp_instance): Insert stores before the last store in
15455         SLP instance.
15456
15457 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
15458
15459         PR target/45476
15460         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
15461         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
15462
15463 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
15464
15465         PR middle-end/45458
15466         * bb-reorder.c (add_labels_and_missing_jumps): Treat
15467         bbs ending with throwing insns like blocks ending with a call.
15468         (fix_up_fall_thru_edges): Likewise.
15469
15470 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
15471
15472         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
15473         (m32c_function_arg_advance): Delete.
15474         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15475         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
15476         comments.  Take a const_tree and a bool.  Declare.
15477         (m32c_function_arg_advance): Likewise.
15478         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15479
15480 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15481
15482         PR target/45476
15483         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
15484         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
15485         * config/i386/mingw32.h: ... here.
15486
15487 2010-09-01  Andi Kleen  <ak@linux.intel.com>
15488
15489         PR lto/45475
15490         * lto-streamer-in.c (lto_input_ts_target_option): Add.
15491         (lto_input_tree_pointers): Call lto_input_ts_target_option.
15492         * lto-streamer-out (lto_output_ts_target_option): Add.
15493         (lto_output_tree_pointers): Call lto_output_ts_target_option.
15494
15495 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
15496
15497         PR/target 45452
15498         * config/i386/cygwin.h: Change order of specified import libraries.
15499         * config/i386/mingw32.h: Likewise.
15500         * config/i386/t-cygwin: Likewise.
15501         * config/i386/t-mingw32: Likewise.
15502         * config/i386/t-mingw-w32: Likewise.
15503         * config/i386/t-mingw-w64: Likewise.
15504
15505 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15506
15507         * config/arm/neon-schedgen.ml (core): New type.
15508         (allCores): List of supported cores.
15509         (availability_table): Add supported cores.
15510         (collate_bypasses): Accept core as a parameter.
15511         (worst_case_latencies_and_bypasses): Accept core as a parameter.
15512         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
15513         and coreStr to get tune attribute and prefix for functional units.
15514         (emit_bypasses): Accept core name and use it.
15515         (calculate_per_core_availability_table): New.
15516         (filter_core): New.
15517         (calculate_core_availability_table): New.
15518         (main): Use calculate_core_availablity_table.
15519         * config/arm/cortex-a8-neon.md: Update copyright year.
15520         Regenerated from ml file and merged in.
15521         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
15522         cortex_a8_neon_mrc.
15523
15524 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
15525
15526         * Makefile.in (tree-switch-conversion.o): Update dependencies.
15527
15528 2010-09-01  Richard Guenther  <rguenther@suse.de>
15529
15530         * alias.c (ao_ref_from_mem): Adjust.
15531         * builtins.c (get_object_alignment): Likewise.
15532         * cfgexpand.c (expand_debug_expr): Likewise.
15533         * gimple.c (get_base_address): Likewise.
15534         * tree-dfa.c (get_ref_base_and_extent): Likewise.
15535         (get_addr_base_and_unit_offset): Likewise.  Fix for
15536         both TMR_SYMBOL and TMR_BASE being set.
15537         * tree-eh.c (tree_could_trap_p): Likewise.
15538         * gimplify.c (gimplify_expr): Do not attempt to gimplify
15539         TMR_SYMBOL.  Always gimplify TMR_BASE.
15540         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15541         TMR_BASE if there is a TMR_SYMBOL.
15542         * tree-pretty-print.c (dump_generic_node): Adjust.
15543         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
15544         (tree_mem_ref_addr): Likewise.
15545         (create_mem_ref_raw): Likewise.
15546         (move_fixed_address_to_symbol): Likewise.
15547         (create_mem_ref): Likewise.
15548         (dump_mem_address): Likewise.
15549         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
15550         Fix for both TMR_SYMBOL and TMR_BASE being set.
15551         (indirect_refs_may_alias_p): Likewise.
15552         * tree-ssa-operands.c (get_tmr_operands): Adjust.
15553         * tree.def (TARGET_MEM_REF): Adjust documentation.
15554
15555 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15556
15557         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
15558         Rename from X86_TUNE_ADD_ESP_4.
15559         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
15560         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
15561         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
15562         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
15563         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
15564         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
15565         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
15566         * config/i386/i386.c (initial_ix86_tune_features)
15567         <X86_TUNE_SINGLE_POP>: Invert members.
15568         <X86_TUNE_DOUBLE_POP>: Ditto.
15569         <X86_TUNE_SINGLE_PUSH>: Ditto.
15570         <X86_TUNE_DOUBLE_PUSH>: Ditto.
15571         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
15572         No longer exported.
15573         (push peephole2 patterns): Macroize peepholes using P mode iterator.
15574         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
15575         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
15576         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
15577
15578 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
15579
15580         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
15581         a volatile LHS if the constructor has only one element.
15582
15583 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
15584
15585         PR bootstrap/45321
15586         * tree.c (stdarg_p): Make fntype parameter const.
15587         * tree.h (stdarg_p): Likewise.
15588         (function_args_iterator): Remove unused fntype field.
15589         (function_args_iter_init): Do not initialize fntype
15590         field.  Make fntype parameter const.
15591
15592 2010-09-01  Richard Guenther  <rguenther@suse.de>
15593
15594         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
15595         estimate.
15596         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
15597         (execute_vrp): Compute number of iteration estimates.
15598         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
15599         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
15600         * tree-data-ref.c (estimated_loop_iterations): Adjust.
15601         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
15602         Infer loop bounds from undefined behavior based on a new parameter.
15603         (estimate_numbers_of_iterations): Likewise.
15604         (scev_probably_wraps_p): Adjust.
15605         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
15606
15607 2010-09-01  Nick Clifton  <nickc@redhat.com>
15608
15609         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
15610         where appropriate.
15611         (xstormy16_legitimate_address_p): Use true and false instead of 1
15612         and 0.
15613         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
15614         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
15615         magic constant 2.
15616         (xstormy16_expand_call): Fix comment at start of function.
15617
15618 2010-09-01  Nick Clifton  <nickc@redhat.com>
15619
15620         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
15621         when pushing accumulator register.
15622         (rx_get_stack_layout): Always save call clobbered registers inside
15623         interrupt handlers.
15624         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
15625
15626 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15627
15628         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
15629         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
15630
15631         * libgcc-std.ver (GCC_4.6.0): Define version.
15632
15633 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
15634
15635         * tree-nested.c (convert_all_function_calls): Iterate until after the
15636         sum of static chains in the nest doesn't change.
15637
15638 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
15639
15640         * config/m32c/m32c.c (classes_intersect): Remove.
15641         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
15642         reg_classes_intersect_p instead of classes_intersect.
15643         (class_can_hold_mode): Change arguments type from enum reg_class to
15644         reg_class_t.  Use reg_class_contents instead of class_contents.
15645         (m32c_register_move_cost): Make static. Change arguments type from
15646         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
15647         classes_intersect. Use reg_class_contents instead of class_contents.
15648         (m32c_memory_move_cost): Make static. Change arguments type from
15649         enum reg_class to reg_class_t.
15650         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15651         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
15652         * config/m32c/m32c-protos.h (m32c_register_move_cost,
15653         m32c_memory_move_cost): Remove.
15654
15655 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15656
15657         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
15658         (arm_function_arg): Delete.
15659         (arm_needs_doubleword_align): Take a const_tree.
15660         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15661         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
15662         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
15663         (arm_function_arg): Make static.  Take a const_tree and a bool.
15664         (arm_function_arg_advance): Likewise.
15665         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15666
15667 2010-08-31  Andi Kleen  <ak@linux.intel.com>
15668
15669         * common.opt (fwhopr=): Update for -fwhopr=jobserver
15670         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
15671         * lto-wrapper.c (run_gcc): Add jobserver mode.
15672         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
15673         argument.
15674
15675 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
15676
15677         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
15678         (popsi1): Ditto.
15679         (*popdi1_epilogue): Ditto.
15680         (*popsi1_epilogue): Ditto.
15681         (popsi, popdi peephole2 patterns): Update peepholes for changed
15682         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
15683
15684         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
15685         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
15686
15687         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
15688         (override_options): Do not initialize removed ix86_gen_pop1.
15689         (gen_pop): New static function.
15690         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
15691         (release_scratch_register_on_entry): Ditto.
15692         (ix86_restore_reg_using_pop): Ditto.
15693         (ix86_expand_epilogue): Ditto.
15694
15695 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
15696
15697         PR middle-end/45461
15698         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
15699
15700 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15701
15702         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
15703         semicolons.
15704
15705 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15706
15707         * doc/extend.texi: Fix documentation of the return value of
15708         __builtin_choose_expr.
15709
15710 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15711
15712         * config/v850/v850-protos.h (function_arg): Delete.
15713         * config/v850/v850.h (FUNCTION_ARG): Delete.
15714         (FUNCTION_ARG_ADVANCE): Move code to...
15715         * config/v850/v850.c (v850_function_arg_advance): ...here.
15716         (v850_function_arg): Make static.  Take a const_tree and a bool.
15717         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15718
15719 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15720
15721         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
15722         these...
15723         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
15724         ...and these...
15725         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
15726         ..to here..
15727         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
15728         ...and here.
15729         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15730
15731 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15732
15733         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
15734         Delete.
15735         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15736         * config/rx/rx.c (rx_function_arg_size): Make static.
15737         (rx_function_arg): Likewise.
15738         (rx_function_arg_advance): New function.
15739         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15740
15741 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
15742
15743         * config/arm/arm.c (arm_override_options): Remove superfluous test.
15744         Fix indentation.
15745
15746 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
15747
15748         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
15749         (dwarf2out_decl) <CONST_DECL>: Likewise.
15750
15751 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
15752
15753         Stack usage support
15754         * common.opt (-fstack-usage): New option.
15755         * doc/invoke.texi (Debugging options): Document it.
15756         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
15757         allocate_dynamic_stack_space.
15758         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
15759         and propagate it to allocate_dynamic_stack_space.
15760         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
15761         * calls.c (initialize_argument_information): Pass TRUE as 4th
15762         argument to allocate_dynamic_stack_space.
15763         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
15764         to 1 when pushing a variable-sized argument onto the stack.  Pass
15765         TRUE as 4th argument to allocate_dynamic_stack_space.
15766         Update current_function_pushed_stack_size.
15767         (emit_library_call_value_1): Likewise.
15768         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
15769         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
15770         attempt to find an upper bound.  Remove redundant code for the
15771         SETJMP_VIA_SAVE_AREA case.
15772         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
15773         * function.h (struct stack_usage): New structure.
15774         (current_function_static_stack_size): New macro.
15775         (current_function_dynamic_stack_size): Likewise.
15776         (current_function_pushed_stack_size): Likewise.
15777         (current_function_dynamic_alloc_count): Likewise.
15778         (current_function_has_unbounded_dynamic_stack_size): Likewise.
15779         (current_function_allocates_dynamic_stack_space): Likewise.
15780         (struct function): Add new field 'su'.
15781         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
15782         add the value of the dynamic offset to the dynamic stack usage.
15783         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
15784         for variable-sized objects.
15785         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
15786         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
15787         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
15788         BUILT_IN_ALLOCA for variable-sized objects.
15789         * output.h (output_stack_usage): Declare.
15790         * toplev.c (stack_usage_file): New file pointer.
15791         (output_stack_usage): New function.
15792         (open_auxiliary_file): Likewise.
15793         (lang_dependent_init): Open file if flag_stack_usage is set.
15794         (finalize): Close file if stack_usage_file is not null.
15795         * tree.h (ALLOCA_FOR_VAR_P): New macro.
15796         * config/alpha/alpha.c (compute_frame_size): New function.
15797         (alpha_expand_prologue): Use it.
15798         (alpha_start_function): Likewise.
15799         (alpha_expand_epilogue): Likewise.  Set stack usage info.
15800         * config/i386/i386.c (ix86_expand_prologue): Likewise.
15801         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
15802         * config/mips/mips.c (mips_expand_prologue): Likewise.
15803         * config/pa/pa.c (hppa_expand_prologue): Likewise.
15804         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
15805         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
15806
15807 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
15808
15809         PR tree-optimization/45427
15810         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
15811         Handle the case that the exit is never taken correctly.
15812         (number_of_iterations_ne): Pass exit_must_be_taken to
15813         number_of_iterations_ne_max.
15814
15815 2010-08-30  Catherine Moore  <clm@codesourcery.com>
15816
15817         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
15818         Infer -mdspr2 for the the 74K.
15819
15820 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
15821
15822         PR debug/45419
15823         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
15824
15825         PR middle-end/45423
15826         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
15827         and TRUTH_{AND,OR,XOR}_EXPR.
15828         * c-parser.c (c_parser_omp_atomic): Handle boolean
15829         {PRE,POST}_{INC,DEC}REMENT.
15830
15831 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
15832
15833         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
15834         (function_arg): Delete.
15835         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15836         (FUNCTION_INCOMING_ARG): Delete.
15837         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
15838         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
15839         and a bool.
15840         (function_arg): Rename to...
15841         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
15842         a bool.
15843         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
15844         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15845         (TARGET_FUNCTION_INCOMING_ARG): Define.
15846
15847 2010-08-30  Richard Guenther  <rguenther@suse.de>
15848
15849         PR tree-optimization/21602
15850         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
15851         using points-to information.
15852
15853 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
15854
15855         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
15856
15857 2010-08-30  Richard Guenther  <rguenther@suse.de>
15858
15859         PR tree-optimization/45449
15860         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
15861         variables.
15862
15863 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
15864
15865         * opts.h (CL_ERR_NEGATIVE): Define.
15866         * opts.c (unknown_option_callback): Don't postpone warnings for
15867         options marked with CL_ERR_NEGATIVE.
15868         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
15869         for negative versions of CL_REJECT_NEGATIVE options.
15870
15871 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
15872
15873         * config/i386/i386.md (zero_extendsidi2_1): Rename from
15874         zero_extendsidi2_32.
15875         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
15876         using SWI12 mode iterator.
15877         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
15878         to define_insn_and_split pattern.
15879         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
15880         using SWI24 mode iterator.
15881         (*zero_extendqi<mode>2_and): Macroize insn from
15882         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
15883         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
15884         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
15885         SWI24 mode iterator.
15886         (*zero_extendqi<mode>2_movzbl): Ditto from
15887         *zero_extendqi{hi,si}2_movzbl.
15888         (extendsidi2_1): Rename from extendsidi2_32.
15889         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
15890         SWI12 mode iterator.
15891
15892 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
15893
15894         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
15895         general purpose registers.
15896         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
15897         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
15898         with general purpose registers and memory operands.  Add associated
15899         CCImode post-reload splitter.
15900         * config/ia64/div.md: Change BImode to CCImode throughout.
15901
15902 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
15903
15904         * config/ia64/ia64.md (cstorebi4): Fix thinko.
15905
15906 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
15907
15908         * config/picochip/picochip.c (reorder_var_tracking_notes): This
15909         function was dropping debug insns which caused PR45299.
15910
15911 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
15912
15913         * config/i386/sse.md (extsuffix): New code attribute.
15914         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
15915         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
15916         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
15917         and sse4_1_zero_extendv4qiv4si2.
15918         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
15919         and sse4_1_zero_extendv2qiv2di2.
15920         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
15921         and sse4_1_zero_extendv4hiv4si2.
15922         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
15923         and sse4_1_zero_extendv2hiv2di2.
15924         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
15925         and sse4_1_zero_extendv2siv2di2
15926
15927         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
15928         using any_extend code iterator.
15929         (*avx_<s>mulv8hi3_highpart): Macroize insn from
15930         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
15931         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
15932
15933         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
15934         gen_sse4_1_sign_extend* functions.
15935         (struct builtin_description bdesc_args): Ditto.
15936
15937 2010-08-27  Xinliang David Li  <davidxl@google.com>
15938
15939         PR/45422
15940         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
15941         (iv_ca_set_no_cp): Update used inv expr count.
15942         (iv_ca_set_cp): Ditto.
15943         (iv_ca_new): Initialize new member.
15944         (iv_ca_free): Free memory.
15945
15946 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
15947
15948         * config/sh/sh-protos.h (sh_function_arg): Delete.
15949         (sh_function_arg_advance): Delete.
15950         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15951         (PASS_IN_REG_P): Eliminate cast.
15952         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
15953         const_tree and a bool.
15954         (sh_function_arg): Likewise.
15955         (sh_output_mi_thunk): Call sh_function_arg_advance) and
15956         sh_function_arg.
15957         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15958
15959 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
15960             Kaz Kojima  <kkojima@gcc.gnu.org>
15961
15962         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
15963         when possible.
15964         (sh_expand_epilogue): Likewise.
15965         * config/sh/sh.md (movml_push_banked): New insn.
15966         (movml_pop_banked): Likewise.
15967
15968 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
15969
15970         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
15971         gen_regexp_oneof, gen_regexp_sequence): Use the string found
15972         in vector element 0 rather than the original string when there's
15973         only one element.
15974         (gen_regexp): Remove extra semicolon.
15975
15976         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
15977         thumb2_movsf_vfp): Set attribute "insn".
15978         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
15979         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
15980         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
15981         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
15982         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
15983         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
15984         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
15985         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
15986         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
15987         if_not_arith, if_arith_not, cond_move_not): Likewise.
15988
15989 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
15990
15991         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
15992         New declaration.
15993         (rs6000_allocate_stack_temp): Ditto.
15994         (rs6000_expand_convert_si_to_sfdf): Ditto.
15995
15996         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
15997         line.  Update the options set if power6 or power7 server/embedded
15998         type options are used.  If we give a warning for no vsx under
15999         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
16000         (rs6000_allocate_stack_temp): New function to allocate a stack
16001         tempoary and adjust the address so it meets either REG+OFFSET or
16002         REG+REG addressing requirements.
16003         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
16004         that they can be used with the LFIWAX/LFIWZX instrucitons.
16005         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
16006         converting signed/unsigned SImode to either SFmode/DFmode.
16007
16008         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
16009         whether certain instructions can be generated.
16010         (TARGET_FCTIDZ): Ditto.
16011         (TARGET_STFIWX): Ditto.
16012         (TARGET_LFIWAX): Ditto.
16013         (TARGET_LFIWZX): Ditto.
16014         (TARGET_FCFIDS): Ditto.
16015         (TARGET_FCFIDU): Ditto.
16016         (TARGET_FCFIDUS): Ditto.
16017         (TARGET_FCTIDUZ): Ditto.
16018         (TARGET_FCTIWUZ): Ditto.
16019
16020         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
16021         (UNSPEC_FCTID): Ditto.
16022         (UNSPEC_LFIWAX): Ditto.
16023         (UNSPEC_LFIWZX): Ditto.
16024         (UNSPEC_FCTIWUZ): Ditto.
16025         (rreg): Use correct constraints.
16026         (SI_CONVERT_FP): New mode attribute for floating point conversion
16027         tests.
16028         (E500_CONVERT): Ditto.
16029         (lfiwax): New insns for converting from integer to floating point
16030         utilizing newer instructions.  Attempt to optimize conversions
16031         that come from memory so that we don't load the value into a GPR,
16032         spill it to the stack and reload it into a FPR.
16033         (floatsi<mode>2_lfiwax): Ditto.
16034         (floatsi<mode>2_lfiwax_mem): Ditto.
16035         (floatsi<mode>2_lfiwax_mem2): Ditto.
16036         (lfiwzx): Ditto.
16037         (floatunssi<mode>2_lfiwzx): Ditto.
16038         (floatunssi<mode>2_lfiwzx_mem): Ditto.
16039         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
16040         (floatdidf2_mem): Ditto.
16041         (floatunsdidf2_fcfidu): Ditto.
16042         (floatunsdidf2_mem): Ditto.
16043         (floatunsdisf2): Ditto.
16044         (floatunsdisf2_fcfidus): Ditto.
16045         (floatunsdisf2_mem): Ditto.
16046         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
16047         Use FCFID on 32-bit hosts that support it.
16048         (floatsidf2_internal): Ditto.
16049         (floatunssisf2): Ditto.
16050         (floatunssidf2): Ditto.
16051         (floatunssidf2_internal): Ditto.
16052         (floatsisf2): Ditto.
16053         (floatdidf2): Ditto.
16054         (floatdidf2_fpr): Ditto.
16055         (floatunsdidf2): Ditto.
16056         (floatdisf2): Ditto.
16057         (floatdisf2_fcfids): Ditto.
16058         (floatdisf2_internal1): Ditto.
16059         (fixuns_truncsfsi2): Delete, merge into common pattern for both
16060         SF/DF.  Add power7 support.
16061         (fix_truncsfsi2): Ditto.
16062         (fixuns_truncdfsi2): Ditto.
16063         (fixuns_truncdfdi2): Ditto.
16064         (fix_truncdfsi2): Ditto.
16065         (fix_truncdfsi2_internal): Ditto.
16066         (fix_truncdfsi2_internal_gfxopt): Ditto.
16067         (fix_truncdfsi2_mfpgpr): Ditto.
16068         (fctiwz): Ditto.
16069         (btruncdf2): Ditto.
16070         (btruncdf2_fpr): Ditto.
16071         (btructsf2): Ditto.
16072         (ceildf2): Ditto.
16073         (ceildf2_fpr): Ditto.
16074         (ceilsf2): Ditto.
16075         (floordf2): Ditto.
16076         (floordf2_fpr): Ditto.
16077         (floorsf2): Ditto.
16078         (rounddf2): Ditto.
16079         (rounddf2_fpr): Ditto.
16080         (roundsf2): Ditto.
16081         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
16082         (fix_trunc<mode>di2): Ditto.
16083         (fixuns_trunc<mode>si2): Ditto.
16084         (fixuns_trunc<mode>di2): Ditto.
16085         (fctiwz_<mode>): Ditto.
16086         (btrunc<mode>2): Ditto.
16087         (btrunc<mode>2_fpr): Ditto.
16088         (ceil<mode>2): Ditto.
16089         (ceil<mode>2_fpr): Ditto.
16090         (floor<mode>2): Ditto.
16091         (float<mode>2_fpr): Ditto.
16092         (round<mode>2): Ditto.
16093         (round<mode>2_fpr): Ditto.
16094         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
16095         (fixuns_trunc<mode>si2_stfiwx): Ditto.
16096         (fix_truncdfsi2_internal): Ditto.
16097         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
16098         converted value on stack, loaded into GPR, and then stored into
16099         the final destination.
16100         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
16101         FCTIDZ.
16102         (lrint<mode>di2): New insn, provide the lrint builtin functions.
16103         (ftruncdf2): Delete, unused.
16104         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
16105
16106         * config/rs6000/vsx.md (toplevel): Update copyright year.
16107         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
16108         (VSr3): Ditto.
16109
16110 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
16111             Jeremie Salvucci  <jeremie.salvucci@free.fr>
16112
16113         * gengtype.c (output_type_enum): Test the right union member.
16114
16115 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
16116
16117         PR target/41484
16118         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
16119         operands for operand 1.
16120         (sse4_1_extendv4qiv4si2): Ditto.
16121         (sse4_1_extendv2qiv2di2): Ditto.
16122         (sse4_1_extendv4hiv4si2): Ditto.
16123         (sse4_1_extendv2hiv2di2): Ditto.
16124         (sse4_1_extendv2siv2di2): Ditto.
16125         (sse4_1_zero_extendv8qiv8hi2): Ditto.
16126         (sse4_1_zero_extendv4qiv4si2): Ditto.
16127         (sse4_1_zero_extendv2qiv2di2): Ditto.
16128         (sse4_1_zero_extendv4hiv4si2): Ditto.
16129         (sse4_1_zero_extendv2hiv2di2): Ditto.
16130         (sse4_1_zero_extendv2siv2di2): Ditto.
16131         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
16132         (*sse4_1_extendv4qiv4si2): Ditto.
16133         (*sse4_1_extendv2qiv2di2): Ditto.
16134         (*sse4_1_extendv4hiv4si2): Ditto.
16135         (*sse4_1_extendv2hiv2di2): Ditto.
16136         (*sse4_1_extendv2siv2di2): Ditto.
16137         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
16138         (*sse4_1_zero_extendv4qiv4si2): Ditto.
16139         (*sse4_1_zero_extendv2qiv2di2): Ditto.
16140         (*sse4_1_zero_extendv4hiv4si2): Ditto.
16141         (*sse4_1_zero_extendv2hiv2di2): Ditto.
16142         (*sse4_1_zero_extendv2siv2di2): Ditto.
16143
16144 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
16145
16146         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
16147         (mips_function_arg): Delete.
16148         (mips_function_arg_boundary): Take a const_tree.
16149         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
16150         (mips_arg_info): Likewise.
16151         (mips_setup_incoming_varargs): Call mips_function_arg_advance
16152         instead of FUNCTION_ARG_ADVANCE.
16153         (mips_function_arg_advance): Adjust prototype.  Make static.
16154         (mips_function_arg): Likewise.
16155         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
16156         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
16157
16158 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
16159
16160         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
16161         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
16162         (function_arg): Delete.
16163         (function_arg_boundary): Take a const_tree.
16164         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
16165         (rs6000_spe_function_arg): Likewise.
16166         (rs6000_parm_start): Likewise.
16167         (rs6000_arg_size): Likewise.
16168         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
16169         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
16170         (rs6000_mixed_function_arg): Likewise.
16171         (function_arg): Rename to...
16172         (rs6000_function_arg): ...this.
16173         (function_arg_advance): Rename to...
16174         (rs6000_function_arg_advance_1): ...this
16175         (rs6000_function_arg_advance): New function.  Call it.
16176         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
16177         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
16178         (rs6000_function_value): Likewise.
16179         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
16180
16181 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16182
16183         * config/arm/arm.md (enabled): Test the value of arch_enabled
16184         rather than just using it.
16185
16186 2010-08-27  Olivier Hainque  <hainque@adacore.com>
16187             Eric Botcazou  <ebotcazou@adacore.com>
16188
16189         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
16190         cover all the possible offsets from this base.
16191         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
16192
16193 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
16194
16195         PR tree-optimization/44485
16196         * calls.c (flags_from_decl_or_type): For const or pure
16197         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
16198         together with ECF_CONST resp. ECF_PURE.
16199         * builtins.c (expand_builtin): Use flags_from_decl_or_type
16200         instead of querying flags directly.
16201         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
16202         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
16203
16204 2010-08-26  Richard Guenther  <rguenther@suse.de>
16205
16206         PR tree-optimization/45255
16207         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
16208         and externals are also invariant.
16209
16210 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
16211
16212         PR rtl-optimization/44858
16213         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
16214         newi2pat, make sure they don't affect newpat.
16215
16216         PR rtl-optimization/45400
16217         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
16218         SUBREG_REG if both modes are of MODE_INT class.
16219
16220 2010-08-25  Julian Brown  <julian@codesourcery.com>
16221
16222         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
16223         * config/arm/arm.md (generic_sched): No for Cortex-A5.
16224         (generic_vfp): Likewise.
16225         (cortex-a5.md): Include.
16226         * config/arm/cortex-a5.md: New.
16227
16228 2010-08-25  Richard Guenther  <rguenther@suse.de>
16229
16230         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
16231         * gimple.c (gimple_get_alias_set): Remove special handling
16232         for pointers.
16233
16234 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
16235
16236         PR middle-end/45355
16237         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
16238         dead_or_set_p when computing i0_feeds_i2_n.
16239
16240         * combine.c (find_split_point): Undo canonicalization of multiply-add
16241         to (minus x (mult)) when it seems likely that this will increase the
16242         chances of a split.
16243
16244 2010-08-25  Richard Guenther  <rguenther@suse.de>
16245
16246         PR lto/44562
16247         * lto-streamer.c (lto_record_common_node): Do not mess with
16248         TYPE_CANONICAL when not in lto.
16249         * gimple.c (gimple_register_type): Likewise.
16250
16251 2010-08-25  Richard Guenther  <rguenther@suse.de>
16252
16253         PR tree-optimization/45316
16254         * tree-ssa-pre.c (eliminate): Properly clean EH info.
16255
16256 2010-08-25  Richard Guenther  <rguenther@suse.de>
16257
16258         PR tree-optimization/45393
16259         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
16260         and clean EH info.  Avoid SSA update.
16261         (execute_cse_sincos): Cleanup the CFG if it has changed.
16262
16263 2010-08-25  Richard Guenther  <rguenther@suse.de>
16264
16265         PR middle-end/45379
16266         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
16267         TARGET_MEM_REF in alignment computation.
16268
16269 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
16270
16271         PR tree-optimization/45059
16272         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
16273         type conversions from newop{1,2}.  Assert t is a comparison and
16274         newop{1,2} after the stripping are gimple vals.
16275
16276 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
16277
16278         * config/arm/iterators.md (VU, SE, V_widen_l): New.
16279         (V_unpack, US): New.
16280         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
16281         (vec_unpack<US>_lo_<mode>): Likewise.
16282         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
16283         (neon_vec_unpack<US>_lo_<mode>): Likewise.
16284         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
16285         (vec_widen_<US>mult_hi_<mode>): Likewise.
16286         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
16287         (neon_vec_<US>mult_hi_<mode>"): Likewise.
16288         (neon_unpack<US>_<mode>): Widening move intermediate step for
16289         vectorizing without -mvectorize-with-neon-quad.
16290         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
16291         for vectorizing without -mvectorize-with-neon-quad.
16292         * config/arm/predicates.md (vect_par_constant_high): Check for
16293         high-half lanes of a vector.
16294         (vect_par_constant_low): Check for low-half lanes of a vector.
16295
16296 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16297
16298         * tree-if-conv.c (struct ifc_dr): New.
16299         (IFC_DR): New.
16300         (DR_WRITTEN_AT_LEAST_ONCE): New.
16301         (DR_RW_UNCONDITIONALLY): New.
16302         (memref_read_or_written_unconditionally): Use the cached values
16303         when possible.
16304         (write_memref_written_at_least_once): Same.
16305         (if_convertible_loop_p): Initialize and free DR->aux fields.
16306
16307 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16308
16309         * gimple.c (gimple_could_trap_p_1): Not static anymore.
16310         Pass an extra bool parameter include_mem.
16311         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
16312         (gimple_assign_rhs_could_trap_p): Same.
16313         * gimple.h (gimple_could_trap_p_1): Declared.
16314         * tree-data-ref.h (same_data_refs_base_objects): New.
16315         (same_data_refs): New.
16316         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
16317         (write_memrefs_written_at_least_once): New.
16318         (ifcvt_memrefs_wont_trap): New.
16319         (operations_could_trap): New.
16320         (ifcvt_could_trap_p): New.
16321         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
16322         Gets a vector of data refs.
16323         (if_convertible_stmt_p): Same.
16324         (if_convertible_loop_p_1): New.
16325         (if_convertible_loop_p): Call if_convertible_loop_p_1.
16326
16327 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16328
16329         * common.opt (ftree-loop-if-convert-stores): New flag.
16330         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
16331         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
16332         the created statement before GSI.
16333         (if_convertible_phi_p): Allow virtual phi nodes when
16334         flag_loop_if_convert_stores is set.
16335         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
16336         Do not handle types that do not match is_gimple_reg_type.
16337         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
16338         when flag_loop_if_convert_stores is set, as LHS can contain
16339         memory refs.
16340         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
16341         to if_convertible_gimple_assign_stmt_p.
16342         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
16343         (replace_phi_with_cond_gimple_assign_stmt): Renamed
16344         predicate_scalar_phi.  Do not handle virtual phi nodes.
16345         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
16346         Call predicate_scalar_phi.
16347         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
16348         just after the labels for flag_loop_if_convert_stores, otherwise
16349         insert the predicate in the end of the BB.
16350         (predicate_mem_writes): New.
16351         (combine_blocks): Call predicate_all_scalar_phis.  When
16352         flag_loop_if_convert_stores is set, call predicate_mem_writes.
16353         (tree_if_conversion): Call mark_sym_for_renaming when
16354         flag_loop_if_convert_stores is set.
16355         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
16356         flag_loop_if_convert_stores is set.
16357
16358 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
16359
16360         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
16361         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
16362         (pa_function_value): Make static.
16363         (override_options): Rename to...
16364         (pa_option_override): ...this. Make static.
16365         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
16366         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
16367         TARGET_OPTION_OVERRIDE): Define.
16368         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
16369         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
16370         Remove.
16371         * config/pa/pa-protos.h (override_options): Remove.
16372
16373 2010-08-24  Richard Guenther  <rguenther@suse.de>
16374
16375         PR middle-end/45379
16376         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
16377         if addr->index is NULL or zero.
16378         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
16379         TARGET_MEM_REF more properly.
16380         (indirect_ref_may_alias_decl_p): Likewise.
16381         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
16382         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
16383
16384 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
16385
16386         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
16387         (m32c_override_options): Rename to...
16388         (m32c_option_override): ...this. Make static.
16389         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
16390         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
16391         Remove.
16392         * config/m32c/m32c-protos.h (m32c_override_options,
16393         m32c_function_value_regno_p): Remove.
16394
16395 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
16396
16397         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
16398         Fix a typo in a previous commit.
16399
16400 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
16401
16402         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
16403         Pre-initialize innerloop_iters to one.
16404
16405 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
16406
16407         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
16408         existing static function global.
16409
16410         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
16411         is changed to global.
16412
16413         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
16414         may_be_nonaddressable_p on base, and don't collect this reference
16415         if the address of the base could not be taken.
16416
16417 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16418
16419         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
16420         enable the compiler to autovectorize mathmetical functions for
16421         power7 using the Mathematical Acceleration Subsystem library.
16422
16423         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
16424         handle which vector math library we have.
16425         (rs6000_override_options): Add -mveclibabi=mass support.
16426         (rs6000_builtin_vectorized_libmass): New function to handle auto
16427         vectorizing math functions that are in the MASS library.
16428         (rs6000_builtin_vectorized_function): Call it.
16429
16430         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
16431         -mveclibabi=mass.
16432
16433 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16434
16435         PR boehm-gc/34544
16436         * gthr-posix.h (__gthread_active_init): Delete.
16437         (__gthread_active_p): Do activity check here.
16438         Don't include errno.h on hppa-hpux.  Update comment.
16439         * gthr-posix95.h (__gthread_active_init): Delete.
16440         (__gthread_active_p): Do activity check here.
16441         Don't include errno.h on hppa-hpux.  Update comment.
16442         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
16443         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
16444         add -lpthread when -mt or -pthread is specified.
16445         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
16446         (LINK_GCC_C_SEQUENCE_SPEC): Define.
16447         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
16448         (stublib.c, pthread_default_stacksize_np-stub.o,
16449         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
16450         $(T)libgcc_stub.a): Add methods.
16451         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
16452         (stublib.c, pthread_default_stacksize_np-stub.o,
16453         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
16454         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
16455         pthread_mutex_unlock): New stubs.
16456
16457 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
16458
16459         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
16460         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
16461         options.
16462         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
16463         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
16464         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
16465         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
16466         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
16467         "-l".
16468         * cppspec.c: Include opts.h.
16469         (lang_specific_driver): Use cl_decoded_option structures.
16470         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
16471         * doc/tm.texi: Regenerate.
16472         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
16473         (driver_handle_option): Allow driver options needing no special
16474         processing.
16475         (process_command): Decode options before call to
16476         lang_specific_driver.  Pass decoded options to
16477         lang_specific_driver.
16478         * gcc.h (lang_specific_driver): Update prototype.
16479         * gccspec.c: Include opts.h.
16480         (lang_specific_driver): Use cl_decoded_option structures.
16481         * opts-common.c (option_ok_for_language, generate_option,
16482         generate_option_input_file): New.
16483         (decode_cmdline_option): Use option_ok_for_language.
16484         (decode_cmdline_options_to_array): Use generate_option_input_file.
16485         (handle_generated_option): Use generate_option.
16486         * opts.h (generate_option, generate_option_input_file): Declare.
16487
16488 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
16489
16490         * config/mips/mips.c (mips_override_options): Rename to...
16491         (mips_option_override): ...this. Make static.
16492         (TARGET_OPTION_OVERRIDE): Define.
16493         (mips_in_small_data_p): Update comment.
16494         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
16495         (FIXED_REGISTERS): Update comment.
16496         * config/mips/mips-protos.h (mips_override_options): Remove.
16497
16498 2010-08-21  Olivier Hainque  <hainque@adacore.com>
16499
16500         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
16501
16502 2010-08-21  Olivier Hainque  <hainque@adacore.com>
16503
16504         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
16505         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
16506
16507 2010-08-20  Jan Hubicka  <jh@suse.cz>
16508
16509         * tree-pass.h (pass_ipa_cdtor_merge): New function.
16510         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
16511         heap allocated.
16512         (record_cdtor_fn): Move to ipa.c; do not test for
16513         have_ctors_dtors.
16514         (build_cdtor): Move to ipa.c; add code avoiding construction
16515         when target have ctors/dtors and there is only one ctor/dtor at given
16516         priority.
16517         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
16518         sort; reverse order of constructors.
16519         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
16520         (cgraph_finalize_function): Do not call record_cdtor_fn.
16521         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
16522         (cgraph_build_static_cdtor): Move to ipa.c.
16523         * ipa.c: Include target.h and tree-iterator.h.
16524         (cgraph_build_static_cdtor, static_ctors, static_dtors,
16525         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
16526         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
16527         pass_ipa_cdtor_merge): New.
16528         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
16529         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
16530         bounds access.
16531
16532 2010-08-20  Jan Hubicka  <jh@suse.cz>
16533
16534         PR c++/45307
16535         PR c++/17736
16536         * cgraph.h (cgraph_only_called_directly_p,
16537         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
16538         static cdtors.
16539         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
16540         are not needed.
16541         (cgraph_finalize_function): Static cdtors are reachable.
16542         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
16543
16544 2010-08-20  Jan Hubicka  <jh@suse.cz>
16545
16546         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
16547         flag_wpa.
16548         * lto-streamer-out.c (lto_output): Likewise.
16549         * passes.c (ipa_write_optimization_summaries): Initialize statement
16550         uids.
16551
16552 2010-08-20  Olivier Hainque  <hainque@adacore.com>
16553
16554         * tree.h (alias_diag_flags): New enum.
16555         (alias_pair): Add an 'emitted_diags' field.
16556         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
16557         (assemble_alias): Initialize emitted_diags of new pairs.
16558
16559 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
16560
16561         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
16562         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16563         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16564         (STACK_CHECK_PROTECT): Define.
16565         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
16566         (output_probe_stack_range): Likewise.
16567         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
16568         builtin stack checking is enabled.
16569         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
16570         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
16571         (probe_stack_range): New insn.
16572
16573 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
16574
16575         PR target/45336
16576         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
16577         short first.
16578
16579         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
16580         char first.
16581
16582 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16583
16584         PR target/45336
16585         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
16586         to cover zero extension into 64-bit register.
16587         (*sse2_pextrw): Likewise.
16588         (*sse4_1_pextrd_zext): New insn.
16589
16590 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
16591
16592         revert r163410, partially revert r163267.
16593         * config/rs6000/darwin.h (LIB_SPEC): Remove.
16594         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
16595         Darwin versions.
16596
16597 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16598
16599         PR middle-end/44974
16600         * builtins.c (expand_builtin): Don't optimize away
16601         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
16602
16603 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
16604
16605         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
16606         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
16607         alternative 1 of operand 2.
16608
16609 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16610             Paolo Bonzini  <bonzini@gnu.org>
16611
16612         * simplify-rtx.c (simplify_unary_operation_1): Optimize
16613         (sign_extend (zero_extend (...)) and
16614         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
16615
16616 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16617
16618         PR rtl-optimization/45353
16619         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
16620         after bb_note is a BARRIER.
16621
16622 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
16623
16624         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
16625         linking libgcc.a.
16626
16627 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16628             Michael Matz  <matz@suse.de>
16629
16630         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
16631
16632 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
16633
16634         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
16635         (ggc_mark_roots): ...here.
16636
16637 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
16638
16639         * vec.h (FOR_EACH_VEC_ELT): Define.
16640         * c-decl.c: Use it.
16641         * cfgloop.c: Likewise.
16642         * cfgloopmanip.c: Likewise.
16643         * cgraph.c: Likewise.
16644         * cgraphunit.c: Likewise.
16645         * combine.c: Likewise.
16646         * config/bfin/bfin.c: Likewise.
16647         * config/mips/mips.c: Likewise.
16648         * config/rs6000/rs6000.c: Likewise.
16649         * dbxout.c: Likewise.
16650         * df-scan.c: Likewise.
16651         * dominance.c: Likewise.
16652         * dse.c: Likewise.
16653         * dwarf2out.c: Likewise.
16654         * except.c: Likewise.
16655         * expr.c: Likewise.
16656         * function.c: Likewise.
16657         * gcse.c: Likewise.
16658         * genattr.c: Likewise.
16659         * ggc-common.c: Likewise.
16660         * gimplify.c: Likewise.
16661         * graphite-blocking.c: Likewise.
16662         * graphite-clast-to-gimple.c: Likewise.
16663         * graphite-dependences.c: Likewise.
16664         * graphite-interchange.c: Likewise.
16665         * graphite-poly.c: Likewise.
16666         * graphite-scop-detection.c: Likewise.
16667         * graphite-sese-to-poly.c: Likewise.
16668         * graphite.c: Likewise.
16669         * haifa-sched.c: Likewise.
16670         * ifcvt.c: Likewise.
16671         * implicit-zee.c: Likewise.
16672         * ipa-prop.c: Likewise.
16673         * ipa-struct-reorg.c: Likewise.
16674         * ipa.c: Likewise.
16675         * ira-build.c: Likewise.
16676         * ira-color.c: Likewise.
16677         * ira-emit.c: Likewise.
16678         * lambda-code.c: Likewise.
16679         * loop-invariant.c: Likewise.
16680         * loop-unroll.c: Likewise.
16681         * lower-subreg.c: Likewise.
16682         * lto-cgraph.c: Likewise.
16683         * lto-opts.c: Likewise.
16684         * lto-streamer-in.c: Likewise.
16685         * lto-streamer-out.c: Likewise.
16686         * lto-streamer.c: Likewise.
16687         * lto-symtab.c: Likewise.
16688         * matrix-reorg.c: Likewise.
16689         * opts.c: Likewise.
16690         * predict.c: Likewise.
16691         * print-tree.c: Likewise.
16692         * sdbout.c: Likewise.
16693         * sel-sched-dump.c: Likewise.
16694         * sel-sched-ir.c: Likewise.
16695         * sel-sched.c: Likewise.
16696         * sese.c: Likewise.
16697         * stor-layout.c: Likewise.
16698         * tree-cfg.c: Likewise.
16699         * tree-cfgcleanup.c: Likewise.
16700         * tree-chrec.c: Likewise.
16701         * tree-data-ref.c: Likewise.
16702         * tree-emutls.c: Likewise.
16703         * tree-inline.c: Likewise.
16704         * tree-into-ssa.c: Likewise.
16705         * tree-loop-distribution.c: Likewise.
16706         * tree-loop-linear.c: Likewise.
16707         * tree-mudflap.c: Likewise.
16708         * tree-outof-ssa.c: Likewise.
16709         * tree-parloops.c: Likewise.
16710         * tree-predcom.c: Likewise.
16711         * tree-pretty-print.c: Likewise.
16712         * tree-scalar-evolution.c: Likewise.
16713         * tree-ssa-live.c: Likewise.
16714         * tree-ssa-loop-im.c: Likewise.
16715         * tree-ssa-loop-ivcanon.c: Likewise.
16716         * tree-ssa-loop-ivopts.c: Likewise.
16717         * tree-ssa-loop-manip.c: Likewise.
16718         * tree-ssa-loop-niter.c: Likewise.
16719         * tree-ssa-loop-prefetch.c: Likewise.
16720         * tree-ssa-phiprop.c: Likewise.
16721         * tree-ssa-pre.c: Likewise.
16722         * tree-ssa-reassoc.c: Likewise.
16723         * tree-ssa-sccvn.c: Likewise.
16724         * tree-ssa-structalias.c: Likewise.
16725         * tree-ssa.c: Likewise.
16726         * tree-vect-data-refs.c: Likewise.
16727         * tree-vect-loop-manip.c: Likewise.
16728         * tree-vect-loop.c: Likewise.
16729         * tree-vect-patterns.c: Likewise.
16730         * tree-vect-slp.c: Likewise.
16731         * tree-vect-stmts.c: Likewise.
16732         * tree-vrp.c: Likewise.
16733         * tree.c: Likewise.
16734         * value-prof.c: Likewise.
16735         * var-tracking.c: Likewise.
16736         * varasm.c: Likewise.
16737         * vmsdbgout.c: Likewise.
16738
16739 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
16740             Richard Guenther  <richard.guenther@gmail.com>
16741
16742         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
16743         copy the src value and return a copy.
16744         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
16745         (C++ Volatiles): Adjust to describe C++ semantics only.
16746
16747 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
16748
16749         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
16750         be zero or nonzero.
16751         * doc/tm.texi: Regenerate.
16752         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
16753         * df-scan.c (df_get_exit_block_use_set), reginfo.c
16754         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
16755         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
16756         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
16757         to 1.
16758
16759 2010-08-20  Olivier Hainque  <hainque@adacore.com>
16760
16761         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
16762         an extra nop past a sibling call at the very end.
16763
16764 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
16765
16766         PR bootstrap/45350
16767         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
16768         a comment.
16769
16770 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
16771
16772         * target.def (function_arg, function_incoming_arg): Remove const
16773         qualifier on CUMULATIVE_ARGS parameter.
16774         * targhooks.h (default_function_arg, default_function_incoming_arg):
16775         Likewise.
16776         * targhooks.c (default_function_arg, default_function_incoming_arg):
16777         Likewise.
16778         * config/i386/i386.c (ix86_function_arg): Likewise.
16779
16780 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
16781
16782         PR target/45336
16783         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
16784         SIGN_EXTENDs or ZERO_EXTENDs.
16785
16786 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
16787
16788         PR target/42172
16789         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
16790         Take its cost into account if nonnull.
16791         (insn_a_feeds_b): New static function.
16792         (combine_instructions): Look for four-insn combinations.
16793         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
16794         them into account when computing all_adjacent and looking for other
16795         uses.
16796         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
16797         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
16798         (try_combine): New arg I0.  Handle four-insn combinations.
16799         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
16800         like ELIM_I1.
16801
16802 2010-08-19  Jason Merrill  <jason@redhat.com>
16803
16804         PR c++/45307
16805         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
16806         if ctor is empty.
16807         (gimplify_modify_expr_rhs): Adjust.
16808
16809 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
16810
16811         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
16812         bitmap_bit_p.
16813         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
16814         * dominance.c (iterate_fix_dominators): Likewise.
16815         * dse.c (set_usage_bits): Likewise.
16816         (set_position_unneeded, record_store): Likewise.
16817         * gimple-fold.c (get_maxval_strlen): Likewise.
16818         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
16819         * ipa-inline.c (update_caller_keys): Likewise.
16820         * ipa-split.c (verify_non_ssa_vars): Likewise.
16821         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
16822         (close_type_exposed_parameter, close_type_full_escape): Likewise.
16823         (close_addressof_down): Likewise.
16824         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
16825         (setup_allocno_left_conflicts_size): Likewise.
16826         (ira_reassign_conflict_allocnos): Likewise.
16827         (ira_reassign_pseudos): Likewise.
16828         * ira-emit.c (change_loop): Likewise.
16829         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
16830         * lto-streamer-out.c (write_symbol): Likewise.
16831         * predict.c (expr_expected_value_1): Likewise.
16832         * regstat.c (regstat_bb_compute_ri): Likewise.
16833         * sel-sched.c (create_block_for_bookkeeping): Likewise.
16834         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
16835         * stmt.c (expand_case): Likewise.
16836         * tree-eh.c (emit_eh_dispatch): Likewise.
16837         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
16838         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
16839         Likewise.
16840         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
16841         (rdg_build_components): Likewise.
16842         * tree-object-size.c (collect_object_sizes_for): Likewise.
16843         * tree-sra.c (convert_callers): Likewise.
16844         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
16845         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
16846         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
16847
16848 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
16849
16850         * config/i386/i386.md (*lea_1): Use P mode iterator.
16851         (lea add splitter): Also handle DImode operands.
16852         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
16853         predicate.  Do not use ix86_lea_for_add_ok.
16854         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
16855         (lea ashift splitter): Also handle DImode operands.
16856         (DImode lea ashift splitter): Remove splitter.
16857
16858 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
16859
16860         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
16861         ix86_binary_operator_ok.
16862
16863 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
16864
16865         PR rtl-optimization/44691
16866         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
16867         is not a register.
16868
16869 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
16870
16871         PR target/45070
16872         * config/arm/arm.c (arm_output_epilogue): Ensure that return
16873          value of size 1-3 is handled correctly.
16874
16875 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
16876
16877         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
16878         type for the conditional has wide enough range.
16879
16880 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
16881
16882         PR target/45327
16883         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
16884         ix86_binary_operator_ok.
16885
16886 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
16887
16888         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
16889         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
16890         code to output insn mnemonic.  Fix comment.
16891         (*addsi_1_zext): Add r-r-0 alternative 1.
16892         <TYPE_LEA>: Split insn to lea.
16893         <default>: Handle alternative 1.
16894         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
16895         multi-level if_then_else RTX to set "type" attribute.
16896         <default>: Handle alternative 2.
16897         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
16898         Use cond RTX instead of multi-level if_then_else RTX to set
16899         "type" attribute.
16900         <default>: Handle alternatives 2 and 4.
16901         (lea splitters): Update calls to ix86_lea_for_add_ok.
16902
16903         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
16904         argument.
16905         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
16906
16907 2010-08-18  Richard Guenther  <rguenther@suse.de>
16908
16909         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
16910         use operand helpers.
16911
16912 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
16913
16914         PR middle-end/45292
16915         * optabs.c (expand_bool_compare_and_swap): Expand pending
16916         pops before trying the optab.
16917
16918 2010-08-18  Yao Qi  <yao@codesourcery.com>
16919
16920         PR target/45094
16921         * config/arm/arm.c (output_move_double): Fix typo generating
16922         instructions ('ldr'->'str').
16923
16924 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
16925
16926         PR rtl-optimization/42575
16927         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
16928         live ranges.
16929
16930 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16931
16932         * config/arm/arm-protos.h (arm_expand_sync): New.
16933         (arm_output_memory_barrier, arm_output_sync_insn): New.
16934         (arm_sync_loop_insns): New.
16935         * config/arm/arm.c (FL_ARCH7): New.
16936         (FL_FOR_ARCH7): Include FL_ARCH7.
16937         (arm_arch7): New.
16938         (arm_print_operand): Support %C markup.
16939         (arm_legitimize_sync_memory): New.
16940         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
16941         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
16942         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
16943         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
16944         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
16945         (arm_process_output_sync_insn, arm_output_sync_insn): New.
16946         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
16947         * config/arm/arm.h (struct arm_sync_generator): New.
16948         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
16949         (TARGET_HAVE_MEMORY_BARRIER): New.
16950         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
16951         * config/arm/arm.md: Include sync.md.
16952         (UNSPEC_MEMORY_BARRIER): New.
16953         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
16954         (VUNSPEC_SYNC_OP):New.
16955         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
16956         (sync_result, sync_memory, sync_required_value): New attributes.
16957         (sync_new_value, sync_t1, sync_t2): Likewise.
16958         (sync_release_barrier, sync_op): Likewise.
16959         (length): Add logic to length attribute defintion to call
16960         arm_sync_loop_insns when appropriate.
16961         * config/arm/sync.md: New file.
16962
16963 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
16964
16965         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
16966         ENABLE_TREE_CHECKING.
16967         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
16968         and GCC >= 4.3.
16969
16970 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
16971
16972         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
16973         or optimizing for size, always avoid lea if possible.
16974
16975         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
16976
16977 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
16978
16979         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
16980         Dunmmy function with NULL return unless the target is
16981         OSX >= 10.6 (Darwin10).
16982
16983 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
16984
16985         * gcc.c (spec_function): Add remove-outfile.
16986         (remove_outfile_spec_function): New function.
16987         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
16988         * invoke.texi (replace-outfile): Document.
16989
16990 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
16991
16992         PR target/45296
16993         * reginfo.c (globalize_reg): Reject stack registers.
16994
16995 2010-08-17  Richard Guenther  <rguenther@suse.de>
16996
16997         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
16998         list of conditional equivalences.
16999         (free_all_edge_infos): Adjust.
17000         (record_equivalences_from_incoming_edge): Likewise.
17001         (record_cond): Likewise.
17002         (build_and_record_new_cond): Likewise.
17003         (record_conditions): Likewise.
17004         (dom_opt_leave_block): Likewise.
17005
17006 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
17007
17008         * doc/invoke.texi (ms-extension): Add documentation.
17009
17010 2010-08-17  Richard Guenther  <rguenther@suse.de>
17011
17012         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
17013
17014 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
17015
17016         PR c/40563
17017         * c-decl.c (diagnose_uninitialized_cst_member): New function.
17018         (finish_decl): Use it to issue a -Wc++-compat warning about
17019         uninitialized const field in struct or union.
17020
17021         (finish_struct): Use strip_array_types.
17022
17023 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
17024
17025         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
17026         functions.
17027         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
17028         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
17029         call block_nreverse here.
17030         (blocks_nreverse): Rename decl temporary to block.
17031
17032 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
17033
17034         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
17035         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
17036         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
17037         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
17038         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
17039         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
17040         thumb2_iorsi3): Delete.
17041         (orsi_notsi_si): No longer a named pattern.
17042         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
17043         * config/arm/predicates.md (shift_amount_operand): New.
17044         (mult_operator): New.
17045         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
17046         attr enabled): New.
17047         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
17048         arch matches t2.
17049         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
17050         (not_shiftsi_compare0): Likewise, renamed from
17051         arm_notsi_shiftsi_compare0.
17052         (not_shiftsi_compare0_scratch): Likweise, renamed from
17053         arm_notsi_shiftsi_compare0_scratch.
17054         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
17055         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
17056         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
17057         so that the register alternative is disabled when the shift_operator
17058         is MULT.  Use "M" as the constraint for constants.
17059         (arith_shiftsi splitter): Enable for TARGET_32BIT.
17060         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
17061         constraint for constants.
17062         (arith_shiftsi_compare0_scratch): Likewise.
17063         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
17064         Handle Thumb2 alternative.
17065
17066 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
17067
17068         * doc/options.texi (NoDriverArg): Document.
17069         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
17070         -MDX and -MMDX.
17071         * opt-functions.awk (switch_flags): Handle NoDriverArg.
17072         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
17073         marking for CL_NO_DRIVER_ARG options when in the driver.
17074         * opts.h (CL_NO_DRIVER_ARG): Define.
17075         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
17076         CL_COMMON): Update values.
17077
17078 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
17079
17080         * common.opt: Add driver options.
17081         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
17082         * doc/options.texi (Driver, RejectDriver): Document.
17083         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
17084         print_prog_name, print_multi_directory, print_sysroot,
17085         print_multi_os_directory, print_multi_lib,
17086         print_sysroot_headers_suffix, report_times, combine_flag,
17087         use_pipes, wrapper_string): Remove.
17088         (save_switch, driver_unknown_option_callback,
17089         driver_wrong_lang_callback, driver_post_handling_callback,
17090         driver_handle_option): New.
17091         (spec_lang, last_language_n_infiles): Make file-scope static
17092         instead of local to process_command.
17093         (process_command): Use decode_cmdline_options_to_array and
17094         read_cmdline_option for option processing.  Compute have_c in
17095         prescan of decoded options.
17096         * opt-functions.awk (switch_flags): Handle Driver and
17097         RejectDriver.
17098         (var_type, var_type_struct): Handle Separate options as generating
17099         const char * variables.
17100         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
17101         CL_TARGET to be passed by caller if required.
17102         (decode_cmdline_options_to_array): Update comment.
17103         * opts.c (complain_wrong_lang): Handle options only valid for the
17104         driver.
17105         (decode_options): Update call to decode_cmdline_options_to_array.
17106         (print_filtered_help): Ignore driver-only options.
17107         (print_specific_help): Ignore CL_DRIVER.
17108         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
17109         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
17110         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
17111         Update values.
17112
17113 2010-08-16  Richard Guenther  <rguenther@suse.de>
17114
17115         * tree-cfg.c (verify_types_in_gimple_reference): Verify
17116         TARGET_MEM_REF a bit.
17117         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
17118         (create_mem_ref_raw): Always create TMR_OFFSET, store the
17119         alias pointer type via it.
17120         (copy_mem_ref_info): Adjust.
17121         (maybe_fold_tmr): Likewise.
17122         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
17123         (reference_alias_ptr_type): Likewise.
17124         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
17125         adjust documentation of TMR_OFFSET operand.
17126         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
17127         use the alias pointer type.
17128         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
17129         initialize mem attrs but the TMR itself.
17130         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
17131         similar to MEM_REF.
17132         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
17133         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
17134         (unshare_and_remove_ssa_names): Likewise.
17135         (copy_ref_info): Adjust.
17136         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
17137         TARGET_MEM_REF case.
17138         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
17139         at TMR_ORIGINAL.
17140         * tree.h (TMR_ORIGINAL): Remove.
17141         * gimple.c (get_base_address): For TARGET_MEM_REF with a
17142         symbol return that.
17143         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
17144         with a symbol.
17145         (get_addr_base_and_unit_offset): Likewise.
17146         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
17147         TARGET_MEM_REFs.
17148         (indirect_ref_may_alias_decl_p): Likewise.
17149         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
17150
17151 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
17152
17153         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
17154         with GCC version 4.6, the default setting (when not optimizing
17155         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
17156         been changed to -fomit-frame-pointer.
17157
17158 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
17159
17160         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
17161         Darwin10.  Do not link libgcc.a for Darwin >= 9.
17162
17163 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
17164
17165         * doc/invoke.texi (Warning Options): Fix terminology and markup
17166         in the description of how unknown warning options are handled.
17167
17168 2010-08-15  Ira Rosen  <irar@il.ibm.com>
17169
17170         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
17171         in basic blocks.
17172         (vect_supportable_dr_alignment): Check alignment for basic blocks.
17173         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
17174         data references.
17175         (vect_bb_vectorization_profitable_p): New function.
17176         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
17177         check if it's worthwhile to vectorize the basic block.
17178
17179 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
17180
17181         * reload.h (register_move_cost, memory_move_secondary_cost,
17182         secondary_reload_class): Adjust prototype.
17183         * rtl.h (reg_class_subset_p): Adjust prototype.
17184         * reload.c (secondary_reload_class): Change arguments type from
17185         enum reg_class to reg_class_t. Change result type to reg_class_t.
17186         * reginfo.c (register_move_cost, reg_class_subset_p): Change
17187         arguments type from enum reg_class to reg_class_t.
17188         (memory_move_secondary_cost): Change arguments type from
17189         enum reg_class to reg_class_t. Change type of saved_flags to
17190         reg_class_t.
17191
17192         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
17193         Remove macros.
17194         (mips_cost): Remove.
17195         (struct mips_rtx_cost_data): Moved to mips.c.
17196         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
17197         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
17198         (mips_cost): Make static.
17199         (mips_canonicalize_move_class): Change argument type to reg_class_t.
17200         Change result type to reg_class_t.
17201         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
17202         type from enum reg_class to reg_class_t.
17203         (mips_register_move_cost): Make static. Change arguments
17204         type from enum reg_class to reg_class_t.
17205         (mips_memory_move_cost): New function.
17206         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
17207
17208 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
17209
17210         PR rtl-optimization/43358
17211         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
17212         of a single hard register, using simplify_subreg_regno to decide
17213         what that register should be.
17214
17215 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
17216
17217         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
17218         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
17219         (loongson_pmull<V_suffix>): Rename to...
17220         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
17221
17222 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
17223
17224         * configure.ac: Enable -fomit-frame-pointer on darwin
17225         which support dwarf2.
17226         * config/i386/i386.c (override_options): Same.
17227
17228 2010-08-13  Jie Zhang  <jie@codesourcery.com>
17229
17230         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
17231
17232 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
17233
17234         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
17235         -MMD.
17236
17237 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
17238
17239         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
17240         up dot_prod pattern searching if a stmt is outside the loop.
17241
17242 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
17243             Uros Bizjak  <ubizjak@gmail.com>
17244
17245         * config.gcc: Handle --enable-frame-pointer.
17246
17247         * configure.ac: Add --enable-frame-pointer.
17248         * configure: Regenerated.
17249
17250         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
17251         (override_options): If not configured with --enable-frame-pointer,
17252         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
17253         optimizing for size), -fasynchronous-unwind-tables and
17254         -maccumulate-outgoing-args by default.
17255
17256 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
17257
17258         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
17259
17260         PR middle-end/45262
17261         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
17262         -a overflows.  Normalize the range.
17263
17264 2010-08-12  Richard Guenther  <rguenther@suse.de>
17265
17266         PR tree-optimization/45232
17267         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
17268         for types with undefined overflow.
17269         (reassociate_bb): Allow re-associating of bit and min/max
17270         operations for types with undefined overflow.
17271         * tree-ssa-forwprop.c (associate_plusminus): New function.
17272         (tree_ssa_forward_propagate_single_use_vars): Call it.
17273
17274 2010-08-12  Richard Guenther  <rguenther@suse.de>
17275
17276         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
17277         * tree-ssa-alias.c (get_ptr_info): Move ...
17278         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
17279         align and misalign fields conservatively.
17280         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
17281         derive alignment information.
17282         (evaluate_stmt): Derive alignment information from memory
17283         allocation functions.
17284         * tree.h (get_pointer_alignment): Make unsigned.
17285         * builtins.c (get_object_alignment): Use alignment information we
17286         have computed for pointers.
17287         (get_pointer_alignment): Likewise.  Make conservative, return
17288         and unsigned value.
17289         (expand_builtin_strlen): Adjust.
17290         (expand_builtin_memcmp): Likewise.
17291         (expand_builtin_strcmp): Likewise.
17292         (expand_builtin_strncmp): Likewise.
17293         (get_builtin_sync_mem): Use at least mode alignment.
17294         (fold_builtin_memset): Adjust.
17295         (fold_builtin_memory_op): Likewise.
17296         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
17297         information also dump pointer alignment knowledge.
17298         (dump_gimple_stmt): Likewise.
17299
17300 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
17301
17302         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
17303         (EMPTY_FIELD_BOUNDARY): Remove.
17304         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
17305
17306 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
17307
17308         PR debug/45259
17309         * caller-save.c (save_call_clobbered_regs): Only swap notes with
17310         DEBUG_INSNs if n_regs_saved.
17311
17312 2010-08-12  Wei Guozhi  <carrot@google.com>
17313
17314         PR target/44999
17315         * config/arm/arm.md (andsi3): Change to zero extension if possible.
17316         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
17317
17318 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
17319
17320         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
17321
17322         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
17323
17324 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17325
17326         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
17327         the case removed in the previous patch, when the only phi argument
17328         is defined in the same loop as the phi node itself.  Handle it
17329         separately from the invariant case by both propagating it outside
17330         the region and replacing the phi node with an assign.
17331
17332 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17333
17334         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
17335         constant phi nodes with one argument are is_gimple_min_invariant
17336         and SSA_NAME_IS_DEFAULT_DEF.
17337
17338 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17339
17340         * graphite-cloog-util.c (oppose_constraint):
17341         Extend loop counter's value range (CLOOG_ORG).
17342         (cloog_matrix_to_ppl_constraint): Same.
17343         (new_Constraint_System_from_Cloog_matrix): Same.
17344         * graphite-cloog-compat.h (matrix_num_type): New.
17345
17346 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17347
17348         * graphite.c (graphite_initialize): Do not initialize
17349         CLooG and initialize the Parma Polyhedra Library
17350         manually when using CLOOG_ORG.
17351         (graphite_finalize): Do not finalize CLooG and finalize
17352         the Parma Polyhedra Library manually when using CLOOG_ORG.
17353         * graphite-cloog-compat.h (cloog_initialize): Hide function
17354         when using CLOOG_ORG.
17355         (cloog_finalize): Same.
17356
17357 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17358
17359         * graphite-clast-to-gimple.c (free_scattering): Change
17360         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
17361         (CLOOG_ORG).
17362         (build_cloog_prog): Same.
17363         * graphite-cloog-compat.h (cloog_domain): Removed.
17364         (cloog_scattering): New.
17365         (cloog_set_domain): Removed.
17366         (cloog_set_scattering): New.
17367         (cloog_next_domain): Removed.
17368         (cloog_next_scattering): New.
17369         (cloog_set_next_domain): Removed.
17370         (cloog_set_next_scattering): New.
17371         (CloogScatteringList): New.
17372         (CloogScattering): New.
17373         (cloog_scattering_free): New.
17374         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
17375         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
17376         New.
17377
17378 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17379
17380         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
17381         CloogState.
17382         (set_cloog_options): Same.
17383         (print_clast_stmt): Same.
17384         (scop_to_clast): Same.
17385         (print_generated_program): Same.
17386         (gloog): Same.
17387         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
17388         (scop_to_clast): Extend with CloogState.
17389         * graphite-cloog-util.c: Include graphite-cloog-compat.h
17390         (new_Cloog_Domain_from_ppl_Polyhedron):
17391         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
17392         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
17393         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17394         * graphite-cloog-util.h (build_cloog_prog): Same.
17395         * graphite-cloog-copat.h (build_cloog_prog): New.
17396         (CloogState): New.
17397         (cloog_state_malloc): New.
17398         (cloog_state_free): New.
17399         (cloog_loop_malloc): New.
17400         (cloog_options_malloc): New.
17401         (cloog_statement_alloc): New.
17402         (cloog_domain_from_cloog_matrix): New.
17403         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
17404         (new_Cloog_Domain_from_ppl_Polyhedron): New.
17405
17406 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17407
17408         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
17409         type of NAME now depends on used CLooG version.
17410         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
17411         (gcc_type_for_clast_expr): Same.
17412         (print_clast_stmt): Replace pprint with clast_pprint.
17413         * graphite-cloog-compat.h: Provide compatibility macros for
17414         CLooG Legacy.
17415         (clast_name_p): New.
17416         (clast_expr_term): New.
17417         (clast_expr_red): New.
17418         (clast_expr_bin): New.
17419         (clast_pprint): New.
17420
17421 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17422
17423         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
17424         compatible to newer CLooG releases (CLOOG_ORG).
17425         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
17426         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
17427         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
17428         (build_cloog_prog) : New.
17429         (cloog_program_extract_scalars): New.
17430         (cloog_program_scatter): New.
17431
17432 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17433
17434         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
17435         conditionally (CLOOG_ORG).
17436         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
17437         (cloog_statement_usr): New.
17438         (cloog_domain): Same.
17439         (cloog_set_domain): Same.
17440         (cloog_next_domain): Same.
17441         (cloog_set_next_domain): Same.
17442         (cloog_program_nb_scattdims): Same.
17443         (cloog_program_set_nb_scattdims): Same.
17444         (cloog_program_names): Same.
17445         (cloog_program_set_names): Same.
17446         (cloog_program_set_context): Same.
17447         (cloog_program_set_loop): Same.
17448         (cloog_program_blocklist): Same.
17449         (cloog_program_set_blocklist): Same.
17450         (cloog_program_scaldims): Same.
17451         (cloog_program_set_scaldims): Same.
17452         (cloog_names_nb_parameters): Same.
17453         (cloog_names_set_nb_parameters): Same.
17454         (cloog_names_parameters): Same.
17455         (cloog_names_set_parameters): Same.
17456         (cloog_names_set_nb_iterators): Same.
17457         (cloog_names_set_iterators): Same.
17458         (cloog_names_set_nb_scattering): Same.
17459         (cloog_names_set_scattering): Same.
17460         (cloog_statement_set_usr): Same.
17461         (cloog_loop_set_next): Same.
17462         (cloog_loop_set_domain): Same.
17463         (cloog_loop_set_block): Same.
17464         (cloog_block_list_next): Same.
17465         (cloog_block_list_set_next):
17466         (cloog_block_list_set_block): Same.
17467
17468 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17469
17470         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
17471         a bool.
17472         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
17473         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
17474         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
17475         when something has been changed.
17476         (rewrite_commutative_reductions_out_of_ssa): Same.
17477
17478 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17479
17480         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
17481         handle the case when def is in the sese region.
17482         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
17483         for invariant expressions.
17484         (rewrite_cross_bb_phi_deps): Removed.
17485         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
17486         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
17487         rewrite_cross_bb_phi_deps.
17488
17489 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17490
17491         * graphite-sese-to-poly.c
17492         (rewrite_commutative_reductions_out_of_ssa_loop): Call
17493         scev_analyzable_p only on is_gimple_reg
17494
17495 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17496
17497         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
17498         (rewrite_close_phi_out_of_ssa): Propagate constant values or
17499         parametric expressions outside the scop region.
17500         (rewrite_cross_bb_scalar_deps): Same.
17501         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
17502
17503 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17504
17505         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
17506         SSA_NAME_DEF_STMT only on SSA_NAMEs.
17507
17508 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17509
17510         * tree-scalar-evolution.c (instantiate_scev_name): Do not
17511         instantiate default definitions.
17512
17513 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
17514             Sebastian Pop  <sebastian.pop@amd.com>
17515
17516         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
17517         (loop_exits_from_bb_p): New.
17518         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
17519         (loop_exits_from_bb_p): Declared.
17520         * graphite-scop-detection.c (scopdet_basic_block_info): Call
17521         loop_exits_to_bb_p.
17522
17523 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17524
17525         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
17526         extra parameter for the region.  Call scev_analyzable_p.
17527         (rewrite_reductions_out_of_ssa): Update call to
17528         rewrite_close_phi_out_of_ssa.
17529         (rewrite_cross_bb_phi_deps): Same.
17530         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
17531         parameter for the region.  Call scev_analyzable_p.
17532         (rewrite_commutative_reductions_out_of_ssa): Update call to
17533         rewrite_commutative_reductions_out_of_ssa_loop.
17534
17535 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17536
17537         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
17538
17539 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17540
17541         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
17542         SSA scalar phi nodes that can be scev_analyzable_p.
17543
17544 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17545
17546         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
17547         handle SSA_NAME_IS_DEFAULT_DEF.
17548
17549 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17550
17551         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
17552
17553 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17554
17555         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
17556         case non close-phi nodes with one argument.
17557
17558 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17559
17560         * sese.h (scev_analyzable_p): Scevs could be expressions without
17561         chrecs and still be scev_analyzable_p.
17562
17563 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17564
17565         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
17566
17567 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17568
17569         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
17570         * cfgloop.h (struct loop): Remove single_iv field.
17571         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
17572         (scop_canonicalize_loops): Removed.
17573         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
17574         over all the loop phi nodes in loop->header.
17575         (build_poly_scop): Remove use of scop_canonicalize_loops.
17576
17577 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17578
17579         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
17580         handle GIMPLE_CALL.
17581
17582 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17583
17584         * tree-chrec.c (chrec_apply): Should only apply to the specified
17585         variable.  Also handle multivariate chains of recurrences that
17586         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
17587
17588 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17589
17590         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
17591         (debug_clast_name_indexes_1): Removed.
17592         (debug_clast_name_indexes): Removed.
17593         (pbb_to_depth_to_oldiv): Removed.
17594         (build_iv_mapping): Replace the use of rename_map with iv_map.
17595         (translate_clast_user): Remove uses of rename_map.  Allocate and
17596         free iv_map.
17597         (translate_clast_for_loop): Remove uses of rename_map.
17598         (translate_clast_for): Same.
17599         (translate_clast_guard): Same.
17600         (translate_clast): Same.
17601         (gloog): Same.
17602         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
17603         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
17604         * sese.c (set_rename): Now static.
17605         (rename_variables_in_stmt): Removed.
17606         (rename_uses): New.
17607         (is_parameter): Removed.
17608         (is_iv): Removed.
17609         (expand_scalar_variables_call): Removed.
17610         (expand_scalar_variables_ssa_name): Removed.
17611         (expand_scalar_variables_expr): Removed.
17612         (expand_scalar_variables_stmt): Removed.
17613         (expand_scalar_variables): Removed.
17614         (rename_variables): Removed.
17615         (remove_condition): Removed.
17616         (get_true_edge_from_guard_bb): Removed.
17617         (get_false_edge_from_guard_bb): Removed.
17618         (struct igp): Removed.
17619         (default_before_guard): Removed.
17620         (convert_for_phi_arg): Removed.
17621         (add_guard_exit_phis): Removed.
17622         (insert_guard_phis): Removed.
17623         (graphite_copy_stmts_from_block): Now also uses iv_map and a
17624         region.  Do not copy conditions.  Do not copy induction variables.
17625         Call rename_uses.
17626         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
17627         the translated statement.  Use the iv_map for the induction
17628         variable renaming.
17629         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
17630         (set_rename): Removed declaration.
17631         (scev_analyzable_p): ...here.
17632         * tree-chrec.c (chrec_apply_map): New.
17633         * tree-chrec.h (chrec_apply_map): Declared.
17634
17635 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17636
17637         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
17638         insert_loop_close_phis.
17639         * sese.c (name_defined_in_loop_p): Removed.
17640         (expr_defined_in_loop_p): Removed.
17641         (alive_after_loop): Removed.
17642         (close_phi_not_yet_inserted_p): Removed.
17643         (struct alep): Removed.
17644         (add_loop_exit_phis): Removed.
17645         (insert_loop_close_phis): Removed.
17646
17647 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17648
17649         * graphite-cloog-util.c
17650         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
17651         * graphite-poly.c
17652         (psct_scattering_dim_for_loop_depth): Same.
17653
17654 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17655
17656         * graphite-cloog-util.h: Added cloog.h.
17657         * graphite-blocking.c: Removed cloog.h.
17658         * graphite-dependences.c: Same.
17659         * graphite-interchange.c: Same.
17660         * graphite-poly.c: Same.
17661         * graphite-ppl.c: Same.
17662         * graphite-scop-detection.c: Same.
17663         * graphite-sese-to-poly.c:
17664         Removed cloog.h.
17665         Removed graphite-clast-to-gimple.h.
17666         (check_poly_representation): Removed (unused).
17667         * graphite-sese-to-poly.h
17668         (check_poly_representation): Removed (unused).
17669
17670 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17671
17672         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
17673         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
17674         (graphite-cloog-util.o): New.
17675         (graphite-ppl.o): Added graphite-cloog-util.h.
17676         * graphite-clast-to-gimple.c:
17677         Added graphite-cloog-util.h to include statements.
17678         * graphite-cloog-util.c: New.
17679         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
17680         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17681         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17682         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17683         (insert_constraint_into_matrix): Same.
17684         (ppl_Constrain_System_number_of_constraints): Same.
17685         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
17686         (oppose_constraint): Same.
17687         (cloog_matrix_to_ppl_constraint): Same.
17688         (new_Constraint_System_from_Cloog_Matrix): Same.
17689         * graphite-cloog-util.h: New.
17690         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
17691         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17692         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17693         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17694         (insert_constraint_into_matrix): Same.
17695         * graphite-ppl.c:
17696         Added graphite-cloog-util.h to include statements.
17697         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
17698         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17699         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17700         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17701         (insert_constraint_into_matrix): Same.
17702         (ppl_Constrain_System_number_of_constraints): Same.
17703         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
17704         (oppose_constraint): Same.
17705         (cloog_matrix_to_ppl_constraint): Same.
17706         (new_Constraint_System_from_Cloog_Matrix): Same.
17707         * graphite-ppl.h:
17708         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
17709         graphite-cloog-util.h.
17710         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17711         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17712         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17713         (insert_constraint_into_matrix): Same.
17714
17715 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17716
17717         * graphite-clast-to-gimple.c
17718         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
17719         (precision_for_interval): Same.
17720         (gcc_type_for_interval): Same.
17721         (compute_type_for_level): Same.
17722         * graphite-interchange.c
17723         (lst_interchange_profitable_p): Same.
17724         * graphite-poly.c
17725         (psct_scattering_dim_for_loop_depth): Same.
17726         * graphite-ppl.c
17727         (ppl_max_for_le_pointset): Same.
17728         (ppl_min_for_le_pointset): Same.
17729
17730 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17731
17732         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
17733         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
17734
17735 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17736
17737         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
17738         rewrite_close_phi_out_of_ssa.
17739
17740 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17741
17742         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
17743
17744 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17745
17746         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
17747         rename_map.
17748         * sese.c (debug_rename_map): Same.
17749         (get_rename): Same.
17750         (set_rename): Same.
17751         (rename_variables_in_stmt): Same.
17752         (expand_scalar_variables_call): Same.
17753         (expand_scalar_variables_ssa_name): Same.
17754         (expand_scalar_variables_expr): Same.
17755         (expand_scalar_variables_stmt): Same.
17756         (expand_scalar_variables): Same.
17757         (rename_variables): Same.
17758         (graphite_copy_stmts_from_block): Same.
17759         (copy_bb_and_scalar_dependences): Same.
17760
17761 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17762
17763         * graphite-clast-to-gimple.c (copy_renames): Removed.
17764         (translate_clast_for): Do not call copy_renames.
17765         (translate_clast_guard): Same.
17766
17767 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17768
17769         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
17770         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
17771         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
17772         before rewrite_cross_bb_scalar_deps.
17773
17774 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17775
17776         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
17777         Early return in when flag_associative_math is not set.
17778
17779 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17780
17781         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
17782         of SSA copies on edges except for loop->latch.
17783
17784 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17785
17786         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
17787         Split out of rewrite_reductions_out_of_ssa.
17788         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
17789         Declared.
17790         * graphite.c (graphite_transform_loops): Call it.
17791
17792 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17793
17794         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
17795
17796 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
17797
17798         * dbgcnt.def (graphite_scop): New counter.
17799         * graphite.c: Include dbgcnt.h.
17800         (graphite_transform_loops): Use new counter to limit transformations.
17801         * Makefile.in (graphite.o): Depend on DBGCNT_H.
17802
17803 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17804
17805         * passes.c (init_optimization_passes): Add pass_graphite.
17806         Schedule a pass_copy_prop before pass_graphite_transforms.
17807         * timevar.def (TV_GRAPHITE): Declared.
17808         * tree-pass.h (pass_graphite): Declared.
17809         * tree-ssa-loop.c (pass_graphite): New.
17810
17811 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17812
17813         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
17814         Remove calls to rename_nb_iterations and rename_sese_parameters.
17815         * graphite-clast-to-gimple.h (gloog): Update declaration.
17816         * graphite.c (graphite_transform_loops): Update call to gloog.
17817         * sese.c (rename_variables_in_expr): Removed.
17818         (rename_nb_iterations): Removed.
17819         (rename_sese_parameters): Removed.
17820         * sese.h (rename_nb_iterations): Removed.
17821         (rename_sese_parameters): Removed.
17822
17823 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17824
17825         * graphite-clast-to-gimple.c (gloog): Remove call to
17826         sese_adjust_liveout_phis.
17827         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
17828         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
17829         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
17830         rewrite_phi_out_of_ssa.
17831         * sese.c (get_vdef_before_sese): Removed.
17832         (sese_adjust_vphi): Removed.
17833         (sese_adjust_liveout_phis): Removed.
17834         * sese.h (sese_adjust_liveout_phis): Removed.
17835
17836 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17837
17838         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
17839         argument for the place after which to insert the out of SSA copy.
17840         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
17841         (rewrite_phi_out_of_ssa): Same.
17842         (rewrite_cross_bb_scalar_deps): Same.
17843         (insert_copyout): Removed.
17844         (insert_copyin): Removed.
17845         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
17846         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
17847         insert_copyin.
17848
17849 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17850
17851         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
17852         (rewrite_reductions_out_of_ssa): Same.
17853         (rewrite_commutative_reductions_out_of_ssa): Same.
17854         (build_poly_scop): Do not call these functions.
17855         * graphite-sese-to-poly.h (build_poly_scop): Declared.
17856         (rewrite_reductions_out_of_ssa): Declared.
17857         (rewrite_commutative_reductions_out_of_ssa): Declared.
17858         * graphite.c (graphite_transform_loops): Call on every scop
17859         rewrite_commutative_reductions_out_of_ssa before calling
17860         rewrite_reductions_out_of_ssa and build_scop_bbs.
17861
17862 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17863
17864         * graphite-dependences.c (dot_deps): Make system call to dotty run
17865         in background.
17866         (dot_deps_stmt): Same.
17867         * graphite-poly.c (dot_lst): Same.
17868
17869 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17870
17871         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
17872         phi_arg_in_outermost_loop.
17873         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
17874         (remove_invariant_phi): Same.
17875
17876 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
17877
17878         * target.def (output_addr_const_extra): New hook.
17879         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
17880         * doc/tm.texi: Regenerate.
17881         * targhooks.c (default_asm_output_addr_const_extra): New function.
17882         * targhooks.h (default_asm_output_addr_const_extra): Declare.
17883         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
17884         target hook.
17885
17886         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
17887         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
17888         * config/i386/i386.h (output_addr_const_extra): Rename to...
17889         (i386_asm_output_addr_const_extra): ...this. Make static.
17890         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
17891
17892 2010-08-11  Richard Henderson  <rth@redhat.com>
17893
17894         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
17895
17896 2010-08-11  Nick Clifton  <nickc@redhat.com>
17897
17898         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
17899         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
17900         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
17901         stormy16-lib2-cmpsi.c.
17902
17903         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
17904         -O2.
17905
17906 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
17907
17908         * opts.h (struct cl_option_handler_func): Make handler take
17909         cl_decoded_option structure as parameter, not individual elements.
17910         (struct cl_option_handlers): Make callbacks take cl_decoded_option
17911         structure as parameter, not individual elements.
17912         (handle_option): Take cl_decoded_option structure as parameter,
17913         not individual elements.
17914         (handle_generated_option): Declare.
17915         * opts-common.c (handle_option): Take cl_decoded_option structure
17916         as parameter, not individual elements.  Update calls to callback
17917         and handler functions.
17918         (handle_generated_option): New.
17919         (read_cmdline_option): Update calls to callback functions and
17920         handle_option.
17921         * opts.c (common_handle_option, complain_wrong_lang,
17922         unknown_option_callback, post_handling_callback,
17923         lang_handle_option, target_handle_option): Take cl_decoded_option
17924         structure as parameter, not individual elements.
17925         (lang_handle_option, target_handle_option, common_handle_option):
17926         Assert option has at most one argument.
17927         (enable_warning_as_error): Call handle_generated_option instead of
17928         handle_option.  Do not pass -Werror argument as argument of
17929         generated option.
17930
17931 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17932
17933         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
17934         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
17935         (SUBWORD_BOOL_CAS): Likewise.
17936         (SUBWORD_SYNC_OP): Likewise.
17937         (SUBWORD_TEST_AND_SET): Likewise.
17938         (FETCH_AND_OP_WORD): Parenthesise INF_OP
17939         (SUBWORD_SYNC_OP): Likewise.
17940         (OP_AND_FETCH_WORD): Likewise.
17941
17942 2010-08-10  Xinliang David Li  <davidxl@google.com>
17943
17944         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
17945         compute max/min offset in address.
17946
17947 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
17948
17949         * ira-live.c: Include sbitmap.h.
17950         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
17951         Compress live ranges even more.
17952
17953 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17954
17955         * coverage.c (ctr_labels): Delete.
17956
17957 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
17958
17959         PR bootstrap/45177
17960         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
17961         test here from arm_gen_load_multiple_1.
17962         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
17963         multiple_operation_profitable_p.
17964
17965 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17966
17967         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
17968         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
17969
17970 2010-08-10  Richard Henderson  <rth@redhat.com>
17971
17972         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
17973         after saving registers.  Assert that SSE registers are only saved
17974         with a sufficiently aligned frame.
17975         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
17976         remove stack_realign_fp handling.
17977         (ix86_expand_prologue): Save int registers before stack_realign_fp,
17978         and do not mark the stack alignment as frame related.
17979         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
17980
17981         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
17982         saves when re-aligning the stack.
17983
17984 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17985
17986         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
17987         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
17988         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
17989
17990 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17991
17992         * dwarf2out.c (struct die_struct): Move die_tag to the end.
17993
17994 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
17995
17996         * config/arm/iterators.md: New file.
17997         * config/arm/arm.md: Include iterators.md.
17998         (QHSI): Move to new file.
17999         (LTUGEU, cnb, optab, ior_xor): Likewise.
18000         * config/arm/iwmmxt.md (VMMX): Move to new file.
18001         (VSHFT, MMX_char): Likewise.
18002         * config/arm/neon.md (VD): Move to new file.
18003         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
18004         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
18005         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
18006         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
18007         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
18008         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
18009         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
18010         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
18011         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
18012         (Is_d_reg, V_mode_nunits): Likewise.
18013         * config/arm/vec-common.md (VALL): Move to new file.
18014         (VALLW, VINT, VINTW): Likewise.
18015
18016 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
18017
18018         PR middle-end/45182
18019         * combine.c (make_compound_operation): Don't try to convert
18020         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
18021
18022 2010-08-10  Richard Guenther  <rguenther@suse.de>
18023
18024         * tree.h (get_object_alignment): Adjust prototype.
18025         * builtins.c (get_object_alignment): Return unsigned int,
18026         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
18027         and TARGET_MEM_REF properly.
18028         (get_pointer_alignment): Adjust.
18029         * emit-rtl.c (get_mem_align_offset): Adjust comment.
18030         (set_mem_attributes_minus_bitpos): Adjust.
18031         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
18032
18033 2010-08-10  Richard Guenther  <rguenther@suse.de>
18034
18035         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
18036         (copy_prop_visit_assignment): Simplify.
18037         (copy_prop_visit_stmt): Also visit assignments from
18038         constants.
18039         (copy_prop_visit_phi_node): Use operand_equal_p.
18040
18041 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18042
18043         * ipa-split.c (find_split_points): Free stack.
18044
18045 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18046
18047         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
18048         * tree.c (tree_node_kind): Delete corresponding entries.
18049
18050 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
18051
18052         * alias.c (may_alias_p): Remove unused ret.
18053
18054 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
18055
18056         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
18057         alias_sets_conflict_p.
18058         (walk_mems_1): Moved from alias.c.
18059         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
18060         in alias.c.
18061         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
18062         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
18063         * alias.c (walk_mems_2): Moved to ddg.c.
18064         (walk_mems_1): Ditto.
18065         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
18066         to ddg.c.
18067         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
18068         disambiguation.
18069         *(may_alias_p): New function to check whether two memory expression
18070         may alias or not. Currently used in buidling inter-iteration memory
18071         dependence.
18072         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
18073         (insn_alias_sets_conflict_p): Removed
18074         *rtl.h (may_alias_p): New function prototype.
18075
18076 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18077
18078         * tree.c (nreverse): Assert that we don't have a BLOCK.
18079
18080 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18081
18082         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
18083         * config/arm/arm.c (arm_get_pcs_model): Likewise.
18084         * config/avr/avr.c (init_cumulative_args): Likewise.
18085         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
18086         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
18087         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
18088         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
18089         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
18090         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18091         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
18092         * dwarf2out.c (gen_subprogram_die): Likewise.
18093         * function.c (allocate_struct_function): Likewise.
18094         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
18095         (deserves_ellipsis): Delete.
18096
18097 2010-08-09  Richard Guenther  <rguenther@suse.de>
18098
18099         * tree-ssa-copy.c (cached_last_copy_of): Remove.
18100         (valueize_val): New function.
18101         (get_last_copy_of): Remove.
18102         (set_copy_of_val): Simplify.
18103         (dump_copy_of): Likewise.
18104         (copy_prop_visit_cond_stmt): Use valueize_val.
18105         (copy_prop_visit_phi_node): Properly handle unvisited names.
18106         Drop code managing copy-of chains.
18107         (init_copy_prop): Adjust.
18108         (fini_copy_prop): Likewise.
18109         (execute_copy_prop): Remove obsolete comment.
18110
18111 2010-08-09  Richard Guenther  <rguenther@suse.de>
18112
18113         PR middle-end/44632
18114         * function.c (gimplify_parameters): Do not clear addressable
18115         bit of the original parameter.
18116
18117 2010-08-09  Richard Guenther  <rguenther@suse.de>
18118
18119         PR middle-end/45212
18120         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
18121         alignment from MEM_REF offset only if we took it from the
18122         base object.
18123
18124 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
18125
18126         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
18127
18128 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
18129
18130         * c-tree.h (build_arg_info): Declare.
18131         * c-decl.c (build_arg_info): Define.
18132         (get_parm_info): Call it.  Delete initialization code.
18133         * c-parser.c (c_parser_parms_declarator): Likewise.
18134         (c_parser_parms_list_declaractor): Likewise.
18135
18136 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
18137
18138         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
18139         (struct c_arg_info): Change type of tags field.
18140         * c-decl.c (grokdeclarator): Update for changed type of tags field.
18141         (get_parm_info): Likewise.
18142         (store_parm_decls_newstyle): Likewise.
18143
18144 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
18145
18146         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
18147         (branch_island_list): Delete.
18148         (branch_islands): Declare.
18149         (add_compiler_branch_island): Adjust for branch_islands instead of
18150         branch_island_list.
18151         (macho_branch_islands): Likewise.
18152         (no_previous_def): Likewise.
18153         (get_prev_label): Likewise.
18154
18155 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18156
18157         PR boehm-gc/34544
18158         * gthr-posix.h (__gthread_start): Delete.
18159         (__gthread_active_init): Use pthread_default_stacksize_np instead of
18160         pthread_create to determine if hpux pthreads are active.
18161         * gthr-posix95.h (__gthread_start): Delete.
18162         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
18163
18164 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
18165
18166         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
18167         _WIN64 not expanded.
18168
18169 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
18170             H.J. Lu  <hongjiu.lu@intel.com>
18171
18172         PR target/45213
18173         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
18174         to output 32bit SFmode immediate as 8 byte sign extended value.
18175
18176 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18177
18178         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
18179         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
18180         (SUBWORD_BOOL_CAS): Likewise.
18181         (SUBWORD_SYNC_OP): Likewise.
18182         (SUBWORD_TEST_AND_SET): Likewise.
18183         (FETCH_AND_OP_WORD): Parenthesise INF_OP
18184         (SUBWORD_SYNC_OP): Likewise.
18185         (OP_AND_FETCH_WORD): Likewise.
18186
18187 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18188
18189         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
18190         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
18191         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
18192         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
18193         generic part.
18194         (cortex_a9_sched_adjust_cost): New function.
18195         (xscale_sched_adjust_cost): New function.
18196         * config/arm/arm-protos.h (struct tune_params): New field
18197         sched_adjust_cost.
18198         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
18199
18200 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
18201
18202         PR target/44942
18203         * config/sparc/sparc.c (function_arg_advance): Always take into account
18204         the padding, if any.
18205
18206 2010-08-06  Richard Guenther  <rguenther@suse.de>
18207
18208         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
18209         (dump_lattice_value): Dump it.
18210         (get_default_value): Adjust.
18211         (get_constant_value): Likewise.
18212         (set_value_varying): Likewise.
18213         (set_lattice_value): Make sure to not go up the lattice
18214         with bitwise constant values.
18215         (get_value_for_expr): Handle ADDR_EXPRs.
18216         (value_to_double_int): New function.
18217         (get_value_from_alignment): Likewise.
18218         (do_dbg_cnt): Adjust.
18219         (ccp_lattice_meet): Handle partially constant values.
18220         (bit_value_unop_1): New function.
18221         (bit_value_binop_1): Likewise.
18222         (bit_value_unop): Likewise.
18223         (bit_value_binop): Likewise.
18224         (evaluate_stmt): Track partially constant values if
18225         flag_tree_bit_ccp is set.
18226         (ccp_fold_stmt): Dump if we folded a predicate.
18227         (ccp_visit_stmt): Adjust.
18228         * common.opt (ftree-bit-ccp): New flag.
18229         * doc/invoke.texi (ftree-bit-ccp): Document.
18230         * opts.c (decode_options): Enable bit-CCP at -O1.
18231
18232 2010-08-06  Alan Modra  <amodra@gmail.com>
18233
18234         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
18235         and -mrelocatable-lib description.
18236
18237 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
18238
18239         From Martin Thuresson  <martint@google.com>
18240         * postreload.c (reload_cse_simplify_operands): Use
18241         SET_REGNO_RAW instead of SET_REGNO.
18242         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
18243         SET_REGNO.
18244         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
18245         instead of SET_REGNO.
18246         * rtl.h (SET_REGNO_RAW): New macro.
18247
18248 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
18249
18250         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
18251         computations.  Fix formatting issues.
18252         (num_sign_bit_copies1): Likewise.
18253         (canonicalize_condition): Likewise.
18254
18255 2010-08-05  Richard Henderson  <rth@redhat.com>
18256
18257         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
18258         (floor_log2): Use clz_hwi.
18259         (exact_log2): Use ctz_hwi.
18260         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
18261         * builtins.c (fold_builtin_bitop): Use them.
18262         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
18263         * combine.c (get_pos_from_mask): Use ctz_hwi.
18264         * double-int.c (double_int_ctz): Likewise.
18265         * explow.c (force_reg): Likewise.
18266         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
18267
18268 2010-08-05  Richard Henderson  <rth@redhat.com>
18269
18270         PR target/45189
18271         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
18272         the alignment constant is properly sign-extended.
18273
18274 2010-08-05  Richard Guenther  <rguenther@suse.de>
18275
18276         * expr.c (store_expr): Use emit_block_move only if both
18277         source and target are MEMs.  Use store_bit_field if only
18278         the target is a MEM.
18279
18280 2010-08-05  Richard Henderson  <rth@redhat.com>
18281
18282         PR debug/45188
18283         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
18284         (INCOMING_RETURN_ADDR_RTX): Likewise.
18285         (dwarf2out_do_frame): Remove conditional compilation.
18286         (dwarf2out_frame_init): Likewise.
18287
18288 2010-08-05  Nicolas Setton  <setton@adacore.com>
18289
18290         * gcov.c (flag_display_progress): New static variable.
18291         (main): Display progress info on standard output if requested.
18292         (options): Add -d/--display-progress.
18293         (print_usage): Print them.
18294         (process_args): Handle them.
18295         * doc/gcov.texi: Document them.
18296
18297 2010-08-05  Martin Jambor  <mjambor@suse.cz>
18298
18299         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
18300         (ipcp_insert_stage): Redirect only edges not flagged with
18301         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
18302         discovered constants.
18303
18304 2010-08-05  Martin Jambor  <mjambor@suse.cz>
18305
18306         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
18307         (struct ipa_param_descriptor): New fields types and
18308         cannot_devirtualize.
18309         (ipa_param_cannot_devirtualize_p): New function.
18310         (ipa_param_types_vec_empty): Likewise.
18311         (ipa_make_edge_direct_to_target): Declare.
18312         * ipa-cp.c: Fixed first stage driver name in initial comment,
18313         described devirtualization there too.
18314         (ipcp_analyze_node): Call ipa_analyze_params_uses.
18315         (ipcp_print_all_lattices): Print devirtualization info.
18316         (ipa_set_param_cannot_devirtualize): New function.
18317         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
18318         lattice to BOTTOM.
18319         (ipcp_init_stage): Merged into...
18320         (ipcp_generate_summary): ...its caller.
18321         (ipcp_change_tops_to_bottom): Also process type lists.
18322         (ipcp_add_param_type): New function.
18323         (ipcp_copy_types): Likewise.
18324         (ipcp_propagate_types): Likewise.
18325         (ipcp_propagate_stage): Also propagate types.
18326         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
18327         Also return true if propagated types require it.
18328         (ipcp_update_callgraph): Dump redirection info.
18329         (ipcp_process_devirtualization_opportunities): New function.
18330         (ipcp_const_param_count): Include known type information.
18331         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
18332         on new node.  Fixed formatting.
18333         * ipa-prop.c (make_edge_direct_to_target): Renamed to
18334         ipa_make_edge_direct_to_target and changed all callers.  Made
18335         externally visible.
18336         (ipa_node_duplication_hook): Duplicate types vector.
18337         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
18338         redirect outgoing calls for which we can't get a decl from the
18339         statement.  Check that we can get a decl from the call statement.
18340         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
18341         ipa_analyze_params_uses only when ipa-cp is disabled.
18342         * tree-inline.c (get_indirect_callee_fndecl): Removed.
18343         (expand_call_inline): Do not call get_indirect_callee_fndecl.
18344         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
18345         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
18346
18347 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
18348
18349         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
18350         temporary. Emit move from temporary to accum, so REG_EQUAL note will
18351         be attached to this insn in correct mode.
18352
18353 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
18354
18355         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
18356         using REGNO of base_reg directly.
18357
18358 2010-08-05  Jie Zhang  <jie@codesourcery.com>
18359
18360         PR tree-optimization/45144
18361         * tree-sra.c (type_consists_of_records_p): Return false
18362         if the record contains bit-field.
18363
18364 2010-08-04  Richard Henderson  <rth@redhat.com>
18365
18366         * config/i386/i386.c (struct ix86_frame): Remove padding and
18367         to_allocate members.
18368         (ix86_compute_frame_layout): Don't store them.
18369         (ix86_can_use_return_insn_p): Use a more direct and more obviously
18370         correct condition for the position of the stack pointer.
18371         (ix86_expand_prologue): Compute remaining stack allocation based
18372         on the ultimate stack pointer offset.
18373         (ix86_expand_epilogue): Use more obvious expressions testing for
18374         the stack pointer already pointing to the saved registers.
18375
18376         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
18377         duplication deconstructing the frame pointer.  Simplify
18378         deallocation of the local stack frame.
18379
18380         * reg-notes.def (CFA_EXPRESSION): New.
18381         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
18382         (dwarf2out_frame_debug_cfa_expression): New.
18383         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
18384
18385         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
18386         * config/i386/i386.c (ix86_expand_prologue): Set it.
18387         (ix86_expand_epilogue): Clear it.
18388         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
18389         context, add REG_CFA_EXPRESSION notes.
18390
18391         * config/i386/i386.h (struct machine_frame_state): Rename from
18392         machine_cfa_state.  Add members tracking SP and FP regardless
18393         of the current CFA register.
18394         (ix86_cfa_state): Remove.
18395         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
18396         and sse_reg_save_offset members.
18397         (ix86_compute_frame_layout): Set them.
18398         (gen_push): Increment sp_offset too.
18399         (choose_baseaddr_len, choose_baseaddr): New.
18400         (ix86_emit_save_reg_using_mov): New.
18401         (ix86_emit_save_regs_using_mov): Use it.
18402         (ix86_emit_save_sse_regs_using_mov): Likewise.
18403         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
18404         compare vs the saved red_zone_offset.
18405         (pro_epilogue_adjust_stack): Adjust sp_offset.
18406         (ix86_adjust_stack_and_probe): Likewise.
18407         (ix86_expand_prologue): Set up, use, and validate the new
18408         frame_state_info members.  Use gen_frame_mem.
18409         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
18410         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
18411         new frame_state_info members.
18412         (ix86_emit_leave): Likewise.
18413         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
18414         out-of-range stack pointer offsets here.
18415         (ix86_emit_restore_sse_regs_using_mov): Likewise.
18416         (ix86_expand_epilogue): Use and validate the new frame_state_info
18417         members.  Break up and simplify the logic selecting the
18418         restore_regs_via_mov code path.  Ensure that there will be no
18419         out-of-range stack pointer offsets.
18420
18421         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
18422
18423         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
18424         argument name to reflect the expected tree; fix indentation.
18425         (ix86_asm_output_function_label): Output the entire 32-bit
18426         ms_hook here as bytes ...
18427         (ix86_expand_prologue): ... not here as insns.  Attach the
18428         unwind info for the ms_hook to a blockage insn.
18429         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
18430         (ix86_ms_bitfield_layout_p): Fix indentation.
18431         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
18432
18433         * config/i386/i386.c (ix86_using_red_zone): New.
18434         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
18435         ix86_expand_prologue, ix86_force_to_memory): Use it.
18436
18437         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
18438         saving the int registers.
18439
18440         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
18441         and DWARF2_UNWIND_INFO conditional compilation.
18442
18443 2010-08-04  Richard Henderson  <rth@redhat.com>
18444
18445         PR debug/45171
18446         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
18447         an is_naming_typedef_decl.
18448
18449 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
18450
18451         PR rtl-optimization/45162
18452         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
18453         * dce.c (word_dce_process_block): Likewise.
18454
18455 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
18456
18457         PR target/44583
18458         * config/ia64/constraints.md (Z): New.
18459         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
18460         (xfreg_or_signed_fp01_operand): New.
18461         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
18462         with fr_reg_or_signed_fp01_operand and constraint G with Z.
18463         (subsf3): Ditto.
18464         (*maddsf4): Ditto.
18465         (*msubsf4): Ditto.
18466         (adddf3): Ditto.
18467         (adddf3_trunc): Ditto.
18468         (subdf3): Ditto.
18469         (*subdf3_trunc): Ditto.
18470         (*madddf4): Ditto.
18471         (*madddf4_trunc): Ditto.
18472         (*msubdf4): Ditto.
18473         (*msubdf4_trunc): Ditto.
18474         (addxf3): Replace xfreg_or_fp01_operand with
18475         xfreg_or_signed_fp01_operand and constraint G with Z.
18476         (*addxf3_truncsf): Ditto.
18477         (*addxf3_truncdf): Ditto.
18478         (subxf3): Ditto.
18479         (*subxf3_truncsf): Ditto.
18480         (*subxf3_truncdf): Ditto.
18481         (*maddxf4): Ditto.
18482         (*maddxf4_truncsf): Ditto.
18483         (*maddxf4_truncdf): Ditto.
18484         (*msubxf4): Ditto.
18485         (*msubxf4_truncsf): Ditto.
18486         (*msubxf4_truncdf): Ditto.
18487
18488 2010-08-04  Richard Guenther  <rguenther@suse.de>
18489
18490         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
18491         if either alias-set is zero.
18492
18493 2010-08-04  Richard Guenther  <rguenther@suse.de>
18494
18495         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
18496         * tree-ssa-ccp.c: ... here.
18497         * tree-ssa-copy.c: ... and here.
18498         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
18499         value_range_t): Move ...
18500         * tree-vrp.c: ... here.
18501         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
18502         (substitute_and_fold): Adjust prototype.
18503         * tree-ssa-propagate.c (replace_uses_in): Adjust.
18504         (replace_phi_args_in): Likewise.
18505         (substitute_and_fold): Take callback to query lattice instead
18506         of pointer to lattice.  Replace SSA name defs with lattice
18507         values first.
18508         * tree-ssa-ccp.c (ccp_finalize): Adjust.
18509         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
18510         (get_value): New function.
18511         (fini_copy_prop): Adjust.
18512         * tree-vrp.c (vrp_finalize): Adjust.
18513
18514 2010-08-04  Richard Guenther  <rguenther@suse.de>
18515
18516         PR middle-end/45176
18517         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
18518         points-to set for original MEM_REF.
18519
18520 2010-08-04  Richard Guenther  <rguenther@suse.de>
18521
18522         * tree-ssa-ccp.c (get_constant_value): New function.
18523         (get_rhs_assign_op_for_ccp): Remove.
18524         (valueize_op): New function.
18525         (ccp_fold): Use get_constant_value and valueize_op.
18526         (fold_const_aggregate_ref): Likewise.
18527         (ccp_fold_stmt): Likewise.
18528         (visit_assignment): Simplify.
18529
18530 2010-08-04  Richard Guenther  <rguenther@suse.de>
18531
18532         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
18533         * double-int.h (double_int_ctz): Declare.
18534         * double-int.c (double_int_ctz): New function.
18535
18536 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
18537
18538         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
18539         Define.
18540         picochip_expand_movmemhi : Expand movmem pattern.
18541         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
18542         Declare.
18543         * config/picochip/picochip.md (movmemhi) : New pattern.
18544
18545 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
18546
18547         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
18548
18549 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
18550
18551         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
18552         NEG as operand of a MULT by merging it with the other operand.
18553         * combine.c (make_compound_operation): Use trunc_int_for_mode when
18554         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
18555         MULT.
18556         * config/arm/constraints.md (M): Examine only 32 bits of a
18557         HOST_WIDE_INT.
18558         * config/arm/predicates.md (power_of_two_operand): Likewise.
18559
18560 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18561
18562         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
18563         non-NOTE insns.
18564
18565 2010-08-03  Jan Hubicka  <jh@suse.cz>
18566
18567         * ipa-split.c (struct split_point): Add split_part_set_retval.
18568         (find_retval): Forward declare.
18569         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
18570         (consider_split): Compute current->split_part_set_retval.
18571         (visit_bb): Do not look into return value.
18572         (split_function): Handle !split_part_set_retval
18573
18574 2010-08-03  Martin Jambor  <mjambor@suse.cz>
18575
18576         * tree-sra.c (completely_scalarize_record): New parameter REF, create
18577         its own access->expr intead of using build_ref_for_offset.
18578
18579 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
18580
18581         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
18582         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
18583         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
18584         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
18585         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
18586         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
18587         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
18588         DEFAULT_SWITCH_TAKES_ARG.
18589         * config/rx/rx.opt (-patch=): Remove option.
18590         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
18591         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
18592         * doc/invoke.texi (RX Options): Remove -patch=.
18593         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
18594         (option_map): Remove --profile-blocks, --quiet and --silent.
18595
18596 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
18597
18598         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
18599         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
18600         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
18601         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
18602         Update calls to ix86_expand_compare and ix86_expand_branch.
18603         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
18604         ix86_expand_compare.
18605         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
18606         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
18607         Make static.
18608         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
18609         and ix86_compare_op1.  Update calls to ix86_expand_compare.
18610         (ix86_expand_int_movcc): Ditto.
18611         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
18612         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
18613         (ix86_expand_setcc): Ditto.
18614         (ix86_expand_compare): Remove prototype.
18615         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
18616         ix86_compare_op0 and ix86_compare_op1.  Update calls
18617         to ix86_expand_branch to directly pass operands[1] and operands[2].
18618         (cbranchxf4): Ditto.
18619         (cbranch<MODEF:mode>4): Ditto.
18620         (cbranchcc4): Ditto.
18621         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
18622         Update calls to ix86_expand_setcc to directly pass operands[2] and
18623         operands[3].
18624         (cstorexf4): Ditto.
18625         (cstore<MODEF:mode>4): Ditto.
18626         (cstorecc4): Ditto.
18627
18628 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
18629
18630         PR target/45063
18631         * caller-save.c (save_call_clobbered_regs): Remove regs from
18632         hard_regs_saved when they are set.
18633
18634 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
18635
18636         PR target/41089
18637         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
18638         as volatile.
18639
18640 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
18641
18642         * common.opt (ftree-loop-distribute-patterns): New.
18643         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
18644         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
18645         at -O3.
18646         * tree-data-ref.c (stores_zero_from_loop): New.
18647         * tree-data-ref.h (stores_zero_from_loop): Declared.
18648         * tree-loop-distribution.c (tree_loop_distribution): Call
18649         stores_zero_from_loop.
18650         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
18651
18652 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
18653
18654         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
18655         into account.
18656
18657         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
18658         * config/arm/arm.c (thumb1_code): New variable.
18659         (arm_override_options): Set it.
18660         (thumb1_final_prescan_insn): Keep track of condition code status.
18661         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
18662         jumps that depend on them.
18663         * config/arm/arm.h (thumb1_code): Declare variable.
18664         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
18665         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
18666         thumb1_cc_mode.
18667         (CC_STATUS_INIT): New macro.
18668         * config/arm/constraints.md (Pd): New constraint.
18669         * config/arm/predicates.md (noov_comparison_operator): New predicate.
18670         * config/arm/arm.md (is_thumb1): New define_attr.
18671         (conds): Set default to "clob" when generating Thumb1 code.
18672         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
18673         code are set.  Use two-operand assembly syntax.
18674         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
18675         pattern.
18676         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
18677         codes are set.  Use two-operand assembly syntax.
18678         (zero_extendhisi splitter): Remove constraints.
18679         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
18680         thumb1_movsf_insn): Set conds attribute as appropriate.
18681         (cbranchsi4_insn): Use condition code status from struct
18682         machine_function to determine whether the comparison can be eliminated.
18683         Discourage the alternative using high registers.
18684         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
18685         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
18686         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
18687         subsi3_cbranch): Delete.
18688         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
18689         one subtract and one cbranch insn.
18690
18691         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
18692         thumb2_movdf_soft_insn): Delete patterns.
18693         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
18694         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
18695         (pool_range, neg_pool_range): Use them to define defaults.
18696         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
18697         and allow for TARGET_32BIT.
18698
18699         PR target/40457
18700         * config/arm/arm.h (arm_regs_in_sequence): Declare.
18701         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
18702         load_multiple_sequence, store_multiple_sequence): Delete
18703         declarations.
18704         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
18705         declarations.
18706         * config/arm/ldmstm.md: New file.
18707         * config/arm/arm.c (arm_regs_in_sequence): New array.
18708         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
18709         CHECK_REGS.  All callers changed.
18710         If SAVED_ORDER is nonnull, copy the computed order into it.
18711         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
18712         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
18713         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
18714         If SAVED_ORDER is nonnull, copy the computed order into it.
18715         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
18716         like REGS.  Handle Thumb mode.
18717         (arm_gen_load_multiple_1): New function, broken out of
18718         arm_gen_load_multiple.
18719         (arm_gen_store_multiple_1): New function, broken out of
18720         arm_gen_store_multiple.
18721         (arm_gen_multiple_op): New function, with code from
18722         arm_gen_load_multiple and arm_gen_store_multiple moved here.
18723         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
18724         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
18725         changed.
18726         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
18727         * config/arm/predicates.md (commutative_binary_operator): New.
18728         (load_multiple_operation, store_multiple_operation): Handle more
18729         variants of these patterns with different starting offsets.  Handle
18730         Thumb-1.
18731         * config/arm/arm.md: Include "ldmstm.md".
18732         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
18733         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
18734         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
18735         peepholes): Delete.
18736         * config/arm/ldmstm.md: New file.
18737         * config/arm/arm-ldmstm.ml: New file.
18738
18739         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
18740         if statement which adds extra costs to frame-related expressions.
18741
18742 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18743
18744         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
18745
18746 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
18747
18748         PR target/45142
18749         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
18750         alternative 2.
18751         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
18752         split V4SI operands.
18753
18754 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
18755
18756         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18757         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
18758         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
18759         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
18760
18761 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
18762
18763         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
18764         LOCAL_INCLUDE_DIR.
18765
18766 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
18767
18768         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
18769         used in the call to optab_for_tree_code.  Fix the second
18770         is_widening_mult_p call.  Check that both unwidened operands
18771         have the same sign.
18772
18773 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
18774
18775         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
18776
18777 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
18778
18779         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18780
18781 2010-07-30  DJ Delorie  <dj@redhat.com>
18782
18783         * config/rx/predicates.md (rx_constshift_operand): New.
18784         * config/rx/rx.md (zs_cond): New.
18785         (cbranchsi4): Remove mode.
18786         (*cbranchsi4_<code>): Likewise.
18787         (*tstbranchsi4_<code>): New.
18788         (*tstbranchsi4r_<code>): New.
18789         (*tstbranchsi4m_eq): New.
18790         (*tstbranchsi4m_ne): New.
18791         (cbranchsf4): Remove mode.
18792         (*cbranchsf4_<code>): Likewise.
18793
18794 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
18795
18796         * rtlanal.c (simplify_subreg_regno): Don't treat
18797         HARD_FRAME_POINTER_REGNUM specially.
18798
18799 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
18800
18801         * common.opt (-G): Don't define option here.
18802         * config/g.opt: New.
18803         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
18804         rs6000/powerpc and score targets.
18805         * opts.c (common_handle_option): Don't handle -G here.
18806         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
18807         * config/frv/frv.c (frv_handle_option): Handle -G.
18808         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
18809         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
18810         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
18811         * config/mips/mips.c (mips_handle_option): Handle -G.
18812         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
18813         * config/score/score.c (score_handle_option): Handle -G.
18814
18815 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
18816
18817         * config/mmix/mmix.c: Include basic-block.h.
18818
18819 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
18820
18821         PR debug/45055
18822         PR rtl-optimization/45137
18823         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
18824         prototypes.
18825         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
18826         New functions.
18827         * combine.c (next_nonnote_nondebug_insn): Removed.
18828         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
18829         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
18830         * sched-deps.c (sched_analyze_insn): Likewise.
18831         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
18832         * rtlanal.c (canonicalize_condition): Likewise.
18833         * postreload.c (reload_combine_recognize_pattern): Likewise.
18834         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
18835
18836 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
18837
18838         * config/i386/i386.md (int_cond): Remove code iterator.
18839         (fp_cond): Ditto.
18840         (cbranch<mode>4): Use ordered_comparison_operator predicate
18841         for operator0.
18842         (cstore<mode>4): Ditto for operator1.
18843         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
18844         (add<mode>cc): ditto.
18845
18846 2010-07-30  Richard Guenther  <rguenther@suse.de>
18847
18848         PR middle-end/45141
18849         * expr.c (expand_expr_real_1): Check for not handled base address.
18850
18851 2010-07-30  Richard Guenther  <rguenther@suse.de>
18852
18853         * ipa-prop.c (ipa_modify_formal_parameters): Use
18854         build_distinct_type_copy.
18855
18856 2010-07-30  Anthony Green  <green@moxielogic.com>
18857
18858         * config/moxie/rtems.h: New file.
18859         * config.gcc: Add moxie-rtems support.
18860
18861 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
18862
18863         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
18864         df flags as in run_fast_df_dce.
18865
18866 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
18867
18868         Revert:
18869         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18870
18871         * rtl.def (NOTE): Swap operands 4 and 5.
18872         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
18873         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
18874         Adjust accordingly.
18875         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
18876
18877 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
18878
18879         PR debug/45110
18880         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
18881         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
18882         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
18883         formal parameters.
18884         (gen_decl_die): Change return type to dw_die_ref, return what
18885         gen_formal_parameter_die returned.
18886
18887 2010-07-29  Martin Jambor  <mjambor@suse.cz>
18888
18889         * dbgcnt.def (eipa_sra): New counter.
18890         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
18891
18892 2010-07-29  Xinliang David Li  <davidxl@google.com>
18893
18894         PR bootstrap/45119
18895         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
18896         in revision 162652.
18897
18898 2010-07-29  Richard Guenther  <rguenther@suse.de>
18899
18900         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
18901         (TV_TREE_STORE_CCP): Likewise.
18902         (TV_TREE_REDPHI): Likewise.
18903
18904 2010-07-29  Richard Guenther  <rguenther@suse.de>
18905
18906         * double-int.h (double_int_and_not): New function.
18907         * combine.c (try_combine): Use it.
18908         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
18909
18910 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
18911
18912         PR rtl-optimization/42575
18913         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
18914         Argument AU removed.  All callers changed.  Ignore artificial refs.
18915         Use return value of df_word_lr_simulate_defs to decide whether an insn
18916         is necessary.
18917         (fast_dce): Rename arg to WORD_LEVEL.
18918         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
18919         static.
18920         (pass_fast_rtl_byte_dce): Delete.
18921         * dce.h (run_word_dce): Declare.
18922         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
18923         All callers changed.  Simplify code to only deal with two-word regs.
18924         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
18925         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
18926         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
18927         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
18928         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
18929         (df_word_lr_mark_ref): Declare.
18930         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
18931         df_word_lr_simulate_uses): Declare or rename from byte variants.
18932         (df_byte_lr_simulate_artificial_refs_at_top,
18933         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
18934         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
18935         declarations.
18936         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
18937         (enum df_mm): Delete.
18938         * df-byte-scan.c: Delete file.
18939         * df-problems.c (df_word_lr_problem_data): Renamed from
18940         df_byte_lr_problem_data, all members deleted except for
18941         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
18942         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
18943         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
18944         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
18945         df_byte_lr_confluence_0): Delete functions.
18946         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
18947         callers changed.
18948         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
18949         Don't initialize members that were deleted, don't try to discover data
18950         about registers.  Ignore hard regs.
18951         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
18952         (df_word_lr_mark_ref): New function.
18953         (df_word_lr_bb_local_compute): Renamed from
18954         df_byte_bb_lr_local_compute; all callers changed.  Use
18955         df_word_lr_mark_ref.  Assert that artificial refs don't include
18956         pseudos.  Ignore hard registers.
18957         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
18958         Assert that exit block uses don't contain pseudos.
18959         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
18960         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
18961         callers changed.  Ignore hard regs.
18962         (df_word_lr_transfer_function): Renamed from
18963         df_byte_lr_transfer_function; all callers changed.
18964         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
18965         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
18966         changed.
18967         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
18968         callers changed.
18969         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
18970         confluence operator 0 set to NULL.
18971         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
18972         callers changed.
18973         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
18974         Return bool, true if bitmap changed or insn otherwise necessary.
18975         All callers changed.  Simplify using df_word_lr_mark_ref.
18976         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
18977         all callers changed.  Simplify using df_word_lr_mark_ref.
18978         * lower-subreg.c: Include "dce.h"
18979         (decompose_multiword_subregs): Call run_word_dce if df available.
18980         * Makefile.in (lower-subreg.o): Adjust dependencies.
18981         (df-byte-scan.o): Delete.
18982         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
18983
18984 2010-07-29  Richard Guenther  <rguenther@suse.de>
18985
18986         * tree.c (build_vector): Assert that the vector constant
18987         has enough elements.
18988         (build_vector_from_ctor): Pad with trailing zeros.
18989
18990 2010-07-29  Richard Guenther  <rguenther@suse.de>
18991
18992         PR tree-optimization/45120
18993         * tree-ssa-structalias.c (get_constraint_for_component_ref):
18994         Handle offset in DEREFs properly.
18995         (get_constraint_for_1): Handle MEM_REF offset properly.
18996
18997 2010-07-29  Richard Guenther  <rguenther@suse.de>
18998
18999         PR middle-end/45034
19000         * convert.c (convert_to_integer): Always use an unsigned
19001         type for narrowed negate and bitwise not.
19002
19003 2010-07-29  Ira Rosen  <irar@il.ibm.com>
19004
19005         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
19006         to outer loop when creating reduction epilogue for double reduction,
19007         and switch back to the inner loop when updating the phi nodes.
19008         Update uses of outer loop exit phi nodes in double reduction (instead
19009         of uses of reduction).
19010
19011 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
19012
19013         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
19014         popcount on power7 and parity on power6 systems.
19015         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
19016         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
19017         instructions.
19018
19019         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
19020         (UNSPEC_PARITY): Ditto.
19021         (SFDF): New iterator for SF/DF.
19022         (rreg2): New mode attribute for floating register constraint.
19023         (TARGET_FLOAT): New mode attribute for whether single/double float
19024         is supported.
19025         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
19026         pattern.
19027         (parity<mode>2_cmpb): New insn for parity on power6 and newer
19028         machines.
19029         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
19030         pattern.  Add support for fcpsgn instruction added in power6.
19031         (copysignsf3): Delete.
19032         (copysigndf3): Delete.
19033         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
19034         instead of if_then_else in RTL to avoid problems with -0.
19035
19036         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
19037         of if_then_else to mirror scalar code.
19038         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
19039         rs6000.md.
19040
19041         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
19042         instead of if_then_else.
19043
19044 2010-07-28  Xinliang David Li  <davidxl@google.com>
19045
19046         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
19047         (dump_cand): Dump var_before/after.
19048         (htab_inv_expr_eq): New function.
19049         (htab_inv_expr_hash): New function.
19050         (tree_ssa_iv_optimize_init): Support pseudo invariants.
19051         (add_candidate_1): consider base type precision.
19052         (set_use_iv_cost): New parameter.
19053         (adjust_setup_cost): Use profile information.
19054         (get_address_cost): Do not hard code width in computing address
19055         offset limits.
19056         (compare_aff_trees): New function.
19057         (get_loop_invariant_expr_id): New function.
19058         (get_computation_cost_at): New parameter and use profile information.
19059         (get_computation_cost): New parameter.
19060         (determine_use_iv_cost_generic): Pass new parameter.
19061         (determine_use_iv_cost_address): Ditto.
19062         (determine_use_iv_cost_condition): Ditto.
19063         (autoinc_possible_for_pair): Ditto.
19064         (determine_use_iv_costs): More dumps.
19065         (iv_ca_get_num_inv_exprs): New function.
19066         (iv_ca_recount_cost): Consider loop invariants in register pressure
19067         cost.
19068         (iv_ca_add_use): New parameter.
19069         (iv_ca_dump): Better dumping.
19070         (iv_ca_extend): New parameter.
19071         (try_add_cand_for): Attempt to get better partial solution.
19072         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
19073         (create_new-ivs): More dumps.
19074         (rewrite_use_compare): Ditto.
19075         (free_loop_data): More cleanup.
19076         (treee_ssa_iv_optimize_finalize): Ditto.
19077
19078 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
19079
19080         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
19081         * config/i386/i386.c (ix86_profile_before_prologue): New.
19082         (override_options): Add special handling for -mfentry.
19083         (ix86_function_regparm): Likewise.
19084         (ix86_function_sseregparm): Likewise.
19085         (ix86_frame_pointer_required): Likewise.
19086         (ix86_expand_prologue): Check for ms_hook_prologue.
19087         (x86_function_profiler): Adjust mcount output.
19088         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
19089         * config/i386/i386.opt (mfentry): New.
19090         * doc/invoke.texi (mfentry): Add documentation.
19091         * doc/tm.texi: Regenerated..
19092         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
19093         * final.c (final_start_function): Replace macro
19094         PROFILE_BEFORE_PROLOGUE by target hook.
19095         * function.c (thread_prologue_and_epilogue_insns): Likewise.
19096         * target.def (profile_before_prologue): New hook.
19097         * targhooks.c (default_profile_before_prologue): New.
19098         * targhooks.h (default_profile_before_prologue): New.
19099
19100 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
19101
19102         PR debug/45105
19103         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
19104
19105         PR debug/45103
19106         * dwarf2out.c (dwarf2out_var_location): Always consider
19107         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
19108
19109 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
19110
19111         PR rtl-optimization/45107
19112         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
19113
19114 2010-07-28  Richard Guenther  <rguenther@suse.de>
19115
19116         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
19117         (set_lattice_value): Do not query an old default value.
19118         (get_value_for_expr): New function.  Properly canonicalize
19119         float values.
19120         (ccp_visit_phi_node): Use it.
19121
19122 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
19123
19124         * config/arm/arm.c (arm_pcs_default): Remove static.
19125         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
19126         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
19127         (arm_pcs_default): Declare.
19128
19129 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
19130
19131         * config/rs6000/rs6000.c (rs6000_override_options):
19132         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
19133         ... to darwin_rs6000_override_options.
19134         (rs6000_return_in_memory): Update preceding comment for darwin
19135         64 bit ABI.  Use TARGET_MACHO inline.
19136         (rs6000_darwin64_struct_check_p): New.
19137         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
19138         (function_arg): Likewise.
19139         (rs6000_arg_partial_bytes): Likewise.
19140         (rs6000_function_value): Likewise.
19141
19142 2010-07-28  Andi Kleen  <ak@linux.intel.com>
19143
19144         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
19145
19146 2010-07-28  Richard Guenther  <rguenther@suse.de>
19147
19148         PR middle-end/44903
19149         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
19150         targets try harder to not generate unaligned accesses.
19151
19152 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
19153
19154         PR rtl-optimization/45101
19155         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
19156         for gcse-las.
19157
19158 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
19159
19160         PR tree-optimization/44885
19161         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
19162         with non-aliased component.
19163
19164 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
19165
19166         * config/darwin-driver.c (SWITCH_TAKES_ARG,
19167         WORD_SWITCH_TAKES_ARG): Remove.
19168         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
19169         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
19170         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
19171         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
19172         definitions from gcc.c.
19173         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
19174         defaults.h.
19175         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
19176         Move to defaults.h.
19177         * opts-common.c: Include tm.h.
19178         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
19179         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
19180         Handle more than one argument.  Set canonical_option_num_elements.
19181         (decode_cmdline_options_to_array): Set
19182         canonical_option_num_elements and trailing elements of
19183         canonical_option.
19184         * opts.h (struct cl_decoded_option): Allow four elements in
19185         canonical_option.  Add field canonical_option_num_elements.
19186         * Makefile.in (opts-common.o): Update dependencies.
19187
19188 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
19189
19190         PR middle-end/44790
19191         PR middle-end/44993
19192         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
19193         sure the base has address_mode before adding the offset.
19194
19195 2010-07-27  Xinliang David Li  <davidxl@google.com>
19196
19197         * tree-flow.h (create_mem_ref): Add one new parameter.
19198         * tree-ssa-address.c (create_mem_ref): New parameter.
19199         (addr_to_parts): Ditto.
19200         (move_variant_to_index): New function.
19201         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
19202
19203 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19204
19205         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
19206         4 and 5.
19207         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
19208         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
19209         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
19210         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
19211         CODE_LABELs and NOTEs.
19212         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
19213         * combine.c (try_combine): Likewise.
19214         * ira.c (setup_prohibited_mode_move_regs): Likewise.
19215         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
19216
19217 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19218
19219         * coretypes.h (struct cl_option_handlers): Declare.
19220         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
19221         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
19222         * langhooks-def.h (lhd_handle_option): Declare.
19223         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
19224         * langhooks.c (lhd_handle_option): New.
19225         * langhooks.h (struct lang_hooks): Update prototype and return
19226         value type of handle_option hook.
19227         * optc-gen.awk: Generate target_flags_explicit definition for the
19228         driver.
19229         * opts-common.c: Include diagnostic.h.
19230         (handle_option): Move from opts.c.  Update prototype and return
19231         value type.  Use handlers structure.
19232         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
19233         handlers structure.
19234         (set_option): Move from opts.c.
19235         * opts.c (common_handle_option): Update prototype and return value
19236         type.  Update calls to handle_option and enable_warning_as_error.
19237         (unknown_option_callback, post_handling_callback,
19238         lang_handle_option, target_handle_option): New.
19239         (handle_option, read_cmdline_option): Move to opts-common.c.
19240         (read_cmdline_options): Update prototype.  Update call to
19241         read_cmdline_option.
19242         (decode_options): Initialize and use handlers structure.
19243         (set_option): Move to opts-common.c.
19244         (enable_warning_as_error): Update prototype.  Update call to
19245         handle_option.
19246         * opts.h (struct cl_option_handler_func, struct
19247         cl_option_handlers): New.
19248         (handle_option, enable_warning_as_error): Update prototypes.
19249         (read_cmdline_option): Declare.
19250         * Makefile.in (opts-common.o): Update dependencies.
19251
19252 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19253
19254         * config/arm/arm.c (params.h): Include.
19255         (arm_override_options): Tune gcse-unrestricted-cost.
19256         * config/arm/t-arm (arm.o): Define dependencies.
19257
19258 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19259
19260         PR target/42495
19261         PR middle-end/42574
19262         * basic-block.h (get_dominated_to_depth): Declare.
19263         * dominance.c (get_dominated_to_depth): New function, use
19264         get_all_dominated_blocks as a base.
19265         (get_all_dominated_blocks): Use get_dominated_to_depth.
19266
19267         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
19268         (hoist_exprs): Remove.
19269         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
19270         (compute_code_hoist_vbeinout): Add debug print outs.
19271         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
19272
19273         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
19274         quadratic behavior.
19275         * params.h (MAX_HOIST_DEPTH): New macro.
19276         * doc/invoke.texi (max-hoist-depth): Document.
19277
19278 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19279
19280         PR rtl-optimization/40956
19281         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
19282         constants.
19283
19284 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19285
19286         PR target/42495
19287         PR middle-end/42574
19288         * config/arm/arm.c (legitimize_pic_address): Use
19289         gen_calculate_pic_address pattern to emit calculation of PIC address.
19290         (will_be_in_index_register): New function.
19291         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
19292         (thumb1_legitimate_address_p): Use it provided !strict_p.
19293         * config/arm/arm.md (calculate_pic_address): New expand and split.
19294
19295 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19296
19297         PR target/42495
19298         PR middle-end/42574
19299         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
19300         * config/arm/arm.md (define_split "J", define_split "K"): Make
19301         IRA/reload friendly.
19302
19303 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19304
19305         * gcse.c (insert_insn_end_basic_block): Update signature, remove
19306         unused checks.
19307         (pre_edge_insert, hoist_code): Update.
19308
19309 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19310
19311         PR target/42495
19312         PR middle-end/42574
19313         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
19314
19315 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19316
19317         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
19318
19319 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19320
19321         PR rtl-optimization/40956
19322         PR target/42495
19323         PR middle-end/42574
19324         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
19325         for hoisting.
19326         (hoist_code): Count occurences in current block too.
19327
19328 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19329
19330         * gcse.c (struct expr:max_distance): New field.
19331         (doing_code_hoisting_p): New static variable.
19332         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
19333         simple expressions, don't change behavior for PRE.  Set max_distance.
19334         (insert_expr_in_table): Set new max_distance field.
19335         (hash_scan_set): Update.
19336         (hoist_expr_reaches_here_p): Stop search after max_distance
19337         instructions.
19338         (find_occr_in_bb): New static function.  Use it in ...
19339         (hoist_code): Calculate sizes of basic block before any changes are
19340         done.  Pass max_distance to hoist_expr_reaches_here_p.
19341         (one_code_hoisting_pass): Set doing_code_hoisting_p.
19342
19343         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
19344         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
19345         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
19346         macros.
19347         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
19348         Document.
19349
19350 2010-07-27  Jeff Law  <law@redhat.com>
19351             Maxim Kuvyrkov  <maxim@codesourcery.com>
19352
19353         * gcse.c (compute_transpout, transpout): Remove, move logic
19354         to prune_expressions.
19355         (compute_pre_data): Move pruning of trapping expressions ...
19356         (prune_expressions): ... here.  New static function.
19357         (compute_code_hoist_data): Use it.
19358         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
19359
19360 2010-07-27  Xinliang David Li  <davidxl@google.com>
19361
19362         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
19363         (rewrite_use_address): Adjust iv update position when needed.
19364
19365 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19366
19367         * dbgcnt.def (hoist_insn): New debug counter.
19368         * gcse.c (hoist_code): Use it.
19369
19370 2010-07-27  Xinliang David Li  <davidxl@google.com>
19371
19372         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
19373         (niter_for_single_dom_exit): Passes additional parameter.
19374         (iv_period): Fix comments.
19375         (may_eliminate_iv): Handles multiple exit loops properly.
19376         (free_tree_niter_desc): New function.
19377         (free_loop_data): Frees up loop iteration descriptors.
19378
19379 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19380
19381         PR target/44542
19382         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
19383         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
19384         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
19385         (expand_one_var): Don't consider DECL_ALIGN for variables for
19386         which expand_one_stack_var_at has been already called.
19387
19388         PR testsuite/44701
19389         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
19390         constraints on IA-64.
19391
19392 2010-07-27  Jie Zhang  <jie@codesourcery.com>
19393
19394         PR target/44290
19395         Revert:
19396         2010-07-23  Jie Zhang  <jie@codesourcery.com>
19397
19398         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
19399         false if ! tree_versionable_function_p.
19400
19401 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19402
19403         * dwarf2out.c (add_data_member_location_attribute): Use
19404         add_AT_unsigned instead of add_AT_int if offset is non-negative.
19405
19406 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19407
19408         * postreload.c (try_replace_in_use): New static function.
19409         (reload_combine_recognize_const_pattern): Use it here.  Allow
19410         substituting into a final add insn, and substituting into a memory
19411         reference in an insn that sets the reg.
19412
19413 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19414
19415         * common.opt (o): Add MissingArgError.
19416         * doc/options.texi (MissingArgError): Document.
19417         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
19418         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
19419         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
19420         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
19421         * langhooks.h (struct lang_hooks): Remove missing_argument.
19422         * optc-gen.awk: Handle MissingArgError and output new structure
19423         field initializers.
19424         * opts.c (read_cmdline_option): Use missing_argument_error field
19425         instead of missing_argument langhook.
19426         * opts.h (struct cl_option): Add missing_argument_error field.
19427         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
19428
19429 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
19430
19431         PR target/29090
19432         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
19433         Darwin64 ABI, for zero-sized objects.
19434
19435 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
19436
19437         PR target/35491
19438         PR target/29090
19439
19440         Merge from Apple local 4.2.1.
19441         2005-05-11  Stan Shebs  <shebs@apple.com>
19442         Fix 64-bit varargs for Darwin (Radar 4028089).
19443         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
19444         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
19445         Add argument, add case for 8-byte register half-filled with a float.
19446         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
19447         single-precision floats specially.
19448
19449 2010-07-27  Ira Rosen  <irar@il.ibm.com>
19450
19451         PR tree-optimization/44152
19452         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
19453         complex numbers for further check.
19454         (vect_supported_load_permutation_p): Check nodes with
19455         complex numbers.
19456
19457 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19458
19459         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
19460         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
19461         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
19462         (LANG_HOOKS_INITIALIZER): Add new hooks.
19463         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
19464         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
19465         and complain_wrong_lang_p.  Update init_options prototype.
19466         * c-objc-common.c (c_initialize_diagnostics): First call
19467         c_common_initialize_diagnostics.
19468         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
19469         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
19470         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
19471         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
19472         (hook_uint_void_0): New.
19473         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
19474         (hook_uint_void_0): New.
19475         * opts-common.c (decode_cmdline_option,
19476         decode_cmdline_options_to_array): Also fill in canonical_option field.
19477         * opts.c (complain_wrong_lang): Use langhook to determine whether
19478         to complain instead of special-casing LTO.
19479         (decode_options): Separate lang_mask determination with
19480         option_lang_mask hook from call of init_options hook.
19481         * opts.h (struct cl_decoded_option): Add canonical_option.
19482
19483 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19484
19485         PR tree-optimization/45083
19486         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
19487
19488 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19489
19490         * postreload.c (reload_combine_recognize_const_pattern): Move test
19491         for limiting the insn movement to the right scope.
19492
19493         PR rtl-optimization/45051
19494         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
19495         than reg_mentioned_p.
19496
19497 2010-07-26  Richard Henderson  <rth@redhat.com>
19498
19499         PR target/44132
19500         * tree-emutls.c: New file.
19501         * Makefile.in (OBJS-common): Add it.
19502         * tree-pass.h (pass_ipa_lower_emutls): Declare.
19503         * passes.c (init_optimization_passes): Add it.
19504
19505         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
19506         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
19507         * expr.c (emutls_var_address): Delete.
19508         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
19509         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
19510         (emutls_finish): Delete.
19511         * toplev.c (compile_file): Don't call it.
19512         * tree.h (emutls_decl): Delete.
19513         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
19514         (emutls_finish, emutls_finalize_control_var): Delete.
19515         (emutls_object_type): Move to tree-emutls.c.
19516         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
19517         default_emutls_var_fields, get_emutls_object_type,
19518         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
19519         default_emutls_var_init): Likewise.
19520         (get_variable_section): Don't special case emutls.
19521         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
19522         default_elf_select_section, default_unique_section,
19523         default_encode_section_info): Likewise.
19524         * varpool.c (decide_is_variable_needed): Likewise.
19525         * gimple-iterator.c (update_call_edge_frequencies): New
19526         (gsi_insert_on_edge_immediate): Use it.
19527         (gsi_insert_seq_on_edge_immediate): Likewise.
19528         (gsi_commit_one_edge_insert): Likewise.
19529
19530         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
19531         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
19532         (x86_64_elf_unique_section): Likewise.
19533
19534 2010-07-26  Jan Hubicka  <jh@suse.cz>
19535
19536         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
19537         GTY((skip)).
19538
19539 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
19540
19541         * target.def (output_source_filename): New hook.
19542         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
19543         * doc/tm.texi: Regenerate.
19544         * toplev.c (output_file_directive) Remove function.
19545         * toplev.h (output_file_directive) Remove.
19546         * output.h (default_asm_output_source_filename,
19547         output_file_directive): Declare.
19548         * varasm.h (default_asm_output_source_filename,
19549         output_file_directive): New functions.
19550
19551         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
19552         * config/mips/mips-protos.h (mips_output_filename): Remove.
19553         * config/mips/mips.c (mips_output_filename): Make Static.
19554         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
19555
19556 2010-07-26  Richard Guenther  <rguenther@suse.de>
19557
19558         PR tree-optimization/43784
19559         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
19560         if the destination is used by the call.
19561
19562 2010-07-26  Richard Guenther  <rguenther@suse.de>
19563
19564         PR middle-end/45073
19565         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
19566         SSA updating on being in SSA form.
19567
19568 2010-07-26  Richard Guenther  <rguenther@suse.de>
19569
19570         PR middle-end/45056
19571         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
19572
19573 2010-07-26  Richard Guenther  <rguenther@suse.de>
19574
19575         PR tree-optimization/45071
19576         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
19577         adjust op->opcode.
19578
19579 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
19580
19581         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
19582         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
19583         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
19584         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
19585         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
19586         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
19587         save_r31, return_r31, save_interrupt, return_interrupt,
19588         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
19589         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
19590         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
19591         new ABI requirements.
19592         (save_r6_r9, L_callt_save_r6_r9): Remove.
19593         * config/v850/predicates.md (even_reg_operand, disp23_operand,
19594         const_float_1_operand const_float_0_operand): New Predicates.
19595         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
19596         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
19597         * config/v850/t-v850: Update multilibs for new target variants.
19598         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
19599         * config/v850/t-v850e: Likewise.
19600         * config/v850/v850.c (v850_issue_rate): New.
19601         (v850_strict_argument_naming): New.
19602         (function_arg): Modify to generate a different ABI.
19603         (print_operand): Update case 'z' to support float modes.
19604         (output_move_single): Modify to generate appropriate and better
19605         assembly.
19606         (v850_float_z_comparison_operator, v850_select_cc_mode,
19607         v850_float_nz_comparison_operator,  v850_gen_float_compare,
19608         v850_gen_compare): New functions to support comparison of float values.
19609         (ep_memory_offset): Add support for V850E2 targets.
19610         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
19611         (INTERRUPT_REGPARM_NUM): Remove.
19612         (compute_register_save_size): Add extra case to save/restore long call.
19613         (use_prolog_function): New function to support prologue.
19614         (expand_prologue): Add support for V850E2 targets and modified
19615         as per the current ABI requirements.
19616         (expand_epilogue): Likewise.
19617         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
19618         (construct_save_jarl): Likewise.
19619         (construct_dispose_instruction): Update as per the current ABI
19620         requirements.
19621         (construct_prepare_instruction): Likewise.
19622         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
19623         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
19624         (CPP_SPEC): Updated to support v850e2 targets.
19625         (STRICT_ALIGNMENT): Modified.
19626         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
19627         (FIXED_REGISTERS): Likewise.
19628         (CALL_USED_REGISTERS): Likewise.
19629         (CONDITIONAL_REGISTER_USAGE): Updated.
19630         (HARD_REGNO_MODE_OK): Updated.
19631         (reg_class): Updated to add even registers.
19632         (REG_CLASS_NAMES): Likewise.
19633         (REG_CLASS_CONTENTS): Likewise.
19634         (REGNO_REG_CLASS): Updated for CC registers.
19635         (REG_CLASS_FROM_LETTER): Added support for even registers.
19636         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
19637         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
19638         ARG_POINTER_REGNUM): Updated.
19639         (FUNCTION_ARG_ADVANCE): Define.
19640         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
19641         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
19642         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
19643         (GO_IF_LEGITIMATE_ADDRESS): Updated.
19644         (SELECT_CC_MODE): Define.
19645         (REGISTER_NAMES): Updated to add psw and fcc registers.
19646         (ADDITIONAL_REGISTER_NAMES): Updated.
19647         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
19648         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
19649         * config/v850/v850.md (define_constants): Define new constants.
19650         (type): Update store,bit1,macc,div,fpu and single attributes.
19651         (cpu): New attribute.
19652         (cc): Add set_z attribute.
19653         (unsign23byte_load, sign23byte_load, unsign23hword_load,
19654         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
19655         23word_store): New instructions for 23-bit displacement load and store.
19656         (movqi_internal, movhi_internal): Update the attributes.
19657         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
19658         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
19659         the attributes.
19660         (v850_tst1): Modified using CC_REGNUM.
19661         (tstsi): Remove.
19662         (cmpsi): Modified as define_expand from define_insn.
19663         (cmpsi_insn, cmpsf, cmpdf): New instructions.
19664         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
19665         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
19666         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
19667         one_cmplsi2): Clobber the CC_REGNUM register.
19668         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
19669         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
19670         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
19671         (setf_insn, set_z_insn, set_nz_insn): New instructions for
19672         v850e2v3 target.
19673         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
19674         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
19675         targets.
19676         (sasf_1, sasf_2): Remove.
19677         (sasf): New instruction.
19678         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
19679         targets. CC_REGNUM register is clobbered and attributes are
19680         updated.
19681         (branch_z_normal, branch_z_invert, branch_nz_normal,
19682         branch_nz_invert): New branch related instructions.
19683         (jump): Updated the attributes.
19684         (switch): Update to support new targets. CC_REGNUM register is
19685         clobbered and attributes are updated.
19686         (call_internal_short, call_internal_long, call_value_internal_short,
19687         call_value_internal_long): Updated the attributes.
19688         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
19689         clobbered and attributes are updated.
19690         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
19691         Update to support new targets. CC_REGNUM register is clobbered.
19692         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
19693         instructions.
19694         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
19695         are updated.
19696         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
19697         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
19698         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
19699         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
19700         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
19701         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
19702         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
19703         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
19704         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
19705         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
19706         point instructions defined for V850e2v3 target.
19707         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
19708         Add support for V850E2 targets and CC_REGNUM register is clobbered.
19709         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
19710         support for new targets.
19711         * config/v850/v850-modes.def: New file.
19712         * config/v850/v850.opt(mstrict-align): Remove.
19713         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
19714         mv850e2v3): New command line options for V850.
19715         * config.gcc: Update the newly added files.
19716         * doc/invoke.texi: Update the newly added command line options for
19717         V850 target.
19718
19719 2010-07-26  Richard Guenther  <rguenther@suse.de>
19720
19721         PR tree-optimization/45052
19722         * ipa-pure-const.c (check_stmt): Check volatileness.
19723
19724 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
19725
19726         PR target/44707
19727         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
19728         * config/sparc/sparc.c: Include reload.h.
19729         (legitimize_tls_address): Rename into...
19730         (sparc_legitimize_tls_address): ...this.
19731         (legitimize_pic_address): Rename into...
19732         (sparc_legitimize_pic_address): ...this.
19733         (sparc_expand_move): Adjust to above renaming.
19734         (sparc_tls_referenced_p): Likewise.
19735         (sparc_legitimize_tls_address): Likewise.
19736         (sparc_legitimize_pic_address): Likewise.
19737         (sparc_legitimize_address): Likewise.
19738         (sparc_output_mi_thunk): Likewise.
19739         (sparc_legitimize_reload_address): New global function.  Recognize
19740         (lo_sum (high ...) ...) patterns generated by earlier passes.
19741         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
19742
19743 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
19744
19745         PR target/44484
19746         * config/sparc/predicates.md (memory_reg_operand): Delete.
19747         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
19748         (*sync_compare_and_swap): Encode the address form in the pattern.
19749         (*sync_compare_and_swapdi_v8plus): Likewise.
19750
19751 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
19752
19753         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
19754         Streamline paragraph on compatibility with the system compiler.
19755
19756 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
19757
19758         PR middle-end/45035
19759         * alias.c (true_dependence_1): Fix thinko in merge of old
19760         true_dependence and canon_true_dependence.
19761
19762 2010-07-23  Jan Hubicka  <jh@suse.cz>
19763
19764         * lto-streamer-out.c (write_symbol): Fix visibilities of external
19765         references.
19766
19767 2010-07-23  Le-Chun Wu  <lcwu@google.com>
19768
19769         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
19770         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
19771         and an unnecessary assignment.
19772         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
19773         self-assign warning.
19774         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
19775         unnecessary self-init.
19776
19777 2010-07-23  Richard Guenther  <rguenther@suse.de>
19778
19779         PR lto/43071
19780         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
19781         for -flto and -fwhopr.
19782
19783 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
19784
19785         PR target/41943
19786         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
19787         (stmp-int-hdrs): Prefix/postfix headers by include_next.
19788         * config.gcc (user_headers_inc_next_pre): New.
19789         (user_headers_inc_next_post): Likewise.
19790         (*-w64-mingw*): Use for float.h post-fixing, and for
19791         stddef.h/stdarg.h pre-fixing by include_next.
19792         * configure.ac (user_headers_inc_next_post): New.
19793         (user_headers_inc_next_pre): New.
19794         * configure: Regenerated.
19795
19796 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19797
19798         * configure.ac: Don't disable TLS on Solaris 8/9 by default
19799         Set tga_func for Solaris 2/x86 resp. SPARC.
19800         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
19801         (LIB_THREAD_LDFLAGS_SPEC): Define.
19802         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
19803         * configure: Regenerate.
19804         * config.in: Regenerate.
19805         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
19806         -pthread, -threads, LIB_TLS_SPEC with -pthread.
19807         * doc/install.texi (Specific, *-*-solaris2*): Document use of
19808         alternate thread libraries on Solaris 8.
19809         Document TLS patch requirements.
19810         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
19811         Document tls.
19812
19813         PR target/18788
19814         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
19815         -shared.
19816
19817 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
19818
19819         * tree.h (struct tree_base): Add nameless_flag bitfield.
19820         (TYPE_NAMELESS, DECL_NAMELESS): Define.
19821         * omp-low.c (create_omp_child_function, scan_omp_parallel,
19822         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
19823         DECL_ARTIFICIAL where needed.
19824         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
19825         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
19826         has DECL_NAMELESS set.
19827
19828 2010-07-23  Martin Jambor  <mjambor@suse.cz>
19829
19830         PR tree-optimization/44915
19831         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
19832         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
19833         (analyze_function): Likewise.
19834
19835 2010-07-23  Martin Jambor  <mjambor@suse.cz>
19836
19837         PR tree-optimization/44914
19838         * tree-sra.c (sra_modify_function_body): Return true if CFG was
19839         changed, add purging dead eh edges.
19840         (ipa_sra_modify_function_body): Return true if CFG was changed,
19841         simplify purging dead eh edges.
19842         (modify_function): Return true if CFG was changed.
19843         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
19844         was changed.
19845         (ipa_early_sra): Likewise.
19846
19847 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19848
19849         PR target/44290
19850         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
19851         if "naked".
19852         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
19853         false if ! tree_versionable_function_p.
19854
19855 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
19856
19857         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
19858         * ipa-pure-const.c (special_builtlin_state): Remove
19859         BUILT_IN_ARGS_INFO case.
19860         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
19861         * builtins.c (expand_builtin): Likewise.
19862         (expand_builtin_args_info): Remove.
19863         * doc/tm.texi (__builtin_args_info): Remove.
19864         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
19865         * doc/tm.text.in: Likewise.
19866
19867 2010-07-23  Richard Guenther  <rguenther@suse.de>
19868
19869         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
19870         (lto_symtab_merge_decls_2): Likewise.
19871         * tree-ssa.c (useless_type_conversion_p): Likewise.
19872         * lto-streamer-in.c (input_gimple_stmt): Likewise.
19873         * gimple.c (gtc_visited2, gtc_ob2): Remove.
19874         (struct type_pair_d): Make same_p an array indexed by mode.
19875         Update comment.
19876         (lookup_type_pair): Update initialization.
19877         (struct sccs): Adjust same_p type.
19878         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
19879         Adjust.
19880         (print_gimple_types_stats): Likewise.
19881         * gimple.h (enum gtc_mode): New.
19882         (gimple_types_compatible_p): Adjust prototype.
19883
19884 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
19885
19886         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
19887         again after processing insn.
19888
19889 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19890
19891         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
19892         proper words when !tree_versionable_function_p.
19893
19894 2010-07-23  Richard Guenther  <rguenther@suse.de>
19895
19896         PR tree-optimization/45037
19897         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
19898
19899 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19900
19901         * doc/extend.texi: Remove IP2K from the description of naked attribute.
19902         Add MCORE instead.
19903
19904 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19905
19906         PR lto/44992
19907         * lto-opts.c (lto_write_options): Add NULL file_data argument to
19908         lto_get_section_name.
19909         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
19910         * lto-streamer-out.c (produce_asm): Likewise.
19911         (copy_function): Likewise.
19912         (produce_symtab): Likewise.
19913         (produce_asm_for_decls): Likewise.
19914         * lto-streamer.c (lto_get_section_name): Add file_data argument.
19915         Rewrite to add random postfix to LTO sections.
19916         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
19917         (lto_get_section_name): Add file_data argument to prototype.
19918
19919 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19920
19921         * lto-section-in.c (lto_section_name): Synchronize names
19922         with lto_get_section_name.
19923
19924 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19925
19926         * lto-opts.c (lto_read_file_options): Check for missing section.
19927
19928 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
19929
19930         * ira.c (check_allocation): Correctly handle the case where an allocno
19931         with two objects was allocated to a single reg.
19932
19933 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
19934
19935         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
19936         (is_widening_mult_p): Likewise.
19937         (convert_to_widen): Use them.
19938         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
19939         well as integer ones.
19940
19941 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
19942
19943         * alias.c (true_dependence_1): New function, merged version of
19944         true_dependence and canon_true_dependence.
19945         (true_dependence): Simplify.
19946         (canon_true_dependence): Simplify.
19947
19948 2010-07-22  Richard Henderson  <rth@redhat.com>
19949
19950         PR target/45027
19951         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
19952         of V4SFmode for the SSE saves; increase stack alignment if needed.
19953         (ix86_gimplify_va_arg): Don't increase stack alignment here.
19954
19955 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
19956
19957         PR bootstrap/45028
19958         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
19959         call cprop_find_used_regs again via note_uses.
19960
19961 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
19962
19963         * alias.c (get_alias_set): Fix formatting issues.
19964
19965 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
19966
19967         PR middle-end/44878
19968         * stmt.c (expand_value_return):  Call promote_function_mode with
19969         a for_return argument of 2 when returning by reference.
19970
19971 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
19972
19973         PR debug/45024
19974         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
19975         unit DIE if we can find the scope DIE.
19976
19977 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
19978
19979         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
19980         changed.  Initialize OBJECT_SUBWORD.
19981         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
19982         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
19983         all callers changed.
19984         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
19985         (finish_allocno): Likewise.
19986         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
19987         (remove_low_level_allocnos): Likewise.
19988         (update_bad_spill_attribute): Likewise.
19989         (setup_min_max_allocno_live_range_point): Likewise.
19990         (sort_conflict_id_map): Likewise.
19991         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
19992         (ior_hard_reg_conflicts): New function.
19993         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
19994         (compress_conflict_vecs): Iterate over objects, not allocnos.
19995         (ira_add_live_range_to_object): New function.
19996         (object_range_compare_func): Renamed from allocno_range_compare_func.
19997         All callers changed.
19998         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
19999         subobjects, widen the min/max range of the lowest-order object to
20000         potentially include all other such low-order objects.
20001         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
20002         (check_allocation): Likewise.  Use more fine-grained tests for register
20003         conflicts.
20004         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
20005         allocno subobjects.
20006         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
20007         choices about which bits to set in each set.  Don't use
20008         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
20009         using the multiple sets we computed.
20010         (push_allocno_to_stack): Iterate over allocno subobjects.
20011         (all_conflicting_hard_regs_coalesced): New static function.
20012         (setup_allocno_available_regs_num): Use it.
20013         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
20014         subobjects.
20015         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
20016         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
20017         by ALLOCNO_NUM_OBJECTS.
20018         (calculate_spill_cost): Likewise.
20019         (color_pass): Express if statement in a more normal way.
20020         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
20021         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
20022         (setup_slot_coalesced_allocno_live_ranges): Likewise.
20023         (allocno_reload_assign): Likewise.
20024         (ira_reassign_pseudos): Likewise.
20025         (fast_allocation): Likewise.
20026         * ira-conflicts.c (build_conflict_bit_table): Likewise.
20027         (print_allocno_conflicts): Likewise.
20028         (ira_build_conflicts): Likewise.
20029         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
20030         callers changed.  Test subword 0 of each allocno for conflicts.
20031         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
20032         callers changed.  Iterate over allocno subobjects.
20033         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
20034         * ira-int.h (struct ira_allocno): New member: num_objects.
20035         Rename object to objects and change it into an array.
20036         (ALLOCNO_OBJECT): Add new argument N.
20037         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
20038         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
20039         (ior_hard_reg_conflicts): Declare.
20040         (ira_add_live_range_to_object): Declare.
20041         (ira_allocno_object_iterator): New.
20042         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
20043         (FOR_EACH_ALLOCNO_OBJECT): New macro.
20044         * ira-lives.c (objects_live): Renamed from allocnos_live; all
20045         uses changed.
20046         (allocnos_processed): New sparseset.
20047         (make_object_born): Renamed from make_allocno_born; take an
20048         ira_object_t argument.  All callers changed.
20049         (make_object_dead): Renamed from make_allocno_dead; take an
20050         ira_object_t argument.  All callers changed.
20051         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
20052         All callers changed.
20053         (mark_pseudo_regno_live): Iterate over allocno subobjects.
20054         (mark_pseudo_regno_dead): Likewise.
20055         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
20056         functions.
20057         (mark_ref_live): Detect subword accesses and call
20058         mark_pseudo_regno_subword_live as appropriate.
20059         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
20060         (process_bb_nodes_live): Deal with object-related updates first; set
20061         and test bits in allocnos_processed to avoid computing allocno
20062         statistics more than once.
20063         (create_start_finish_chains): Iterate over objects, not allocnos.
20064         (print_object_live_ranges): New function.
20065         (print_allocno_live_ranges): Use it.
20066         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
20067         and objects_live.
20068
20069 2010-07-22  Richard Guenther  <rguenther@suse.de>
20070
20071         PR lto/42451
20072         * gimple.c (gtc_next_dfs_num): New global.
20073         (struct sccs): Make value a union, add integer same_p member.
20074         (gtc_visit): New function.
20075         (gimple_types_compatible_p_1): New function, split out from ...
20076         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
20077         (iterative_hash_gimple_type): Adjust for sccs change.
20078
20079 2010-07-22  Martin Jambor  <mjambor@suse.cz>
20080
20081         PR tree-optimization/44891
20082         * tree-sra.c: Include gimple-pretty-print.h.
20083         (replace_uses_with_default_def_ssa_name): Renamed to
20084         get_repl_default_def_ssa_name, return the new SSA name instead of
20085         replacing the old one.
20086         (sra_modify_assign): Dump a message when removing a load, if the LHS
20087         is an SSA_NAME, do not do any propagation, just set the RHS to a
20088         default definition SSA NAME, type convert if necessary.
20089         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
20090
20091 2010-07-22  Richard Guenther  <rguenther@suse.de>
20092
20093         PR tree-optimization/45017
20094         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
20095         TYPE_PRECISION of integral types in addition to size.
20096
20097 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
20098
20099         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
20100         when no C library is specified.
20101
20102 2010-07-22  Martin Jambor  <mjambor@suse.cz>
20103
20104         * ipa-prop.h (struct ipa_node_params): Updated comment.
20105         (struct ipa_edge_args): Likewise.
20106         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
20107
20108 2010-07-22  Martin Jambor  <mjambor@suse.cz>
20109
20110         * cgraphunit.c (verify_edge_count_and_frequency): New function.
20111         (verify_cgraph_node): Verify frequencies of indirect edges.
20112         * tree-inline.c (tree_function_versioning): Update frequencies of
20113         indirect edges.
20114
20115 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20116
20117         PR target/43698
20118         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
20119         Set *arm_rev to be predicable.
20120
20121 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
20122
20123         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
20124         (LINK_COMMAND_SPEC_A): New.
20125         (DSYMUTIL): New.
20126         (DSYMUTIL_SPEC): New.
20127         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
20128         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
20129
20130 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
20131
20132         * calls.c (load_register_parameters): Move check for zero
20133         sized items so that only the call to
20134         mem_overlaps_already_clobbered_arg_p () is protected.
20135
20136 2010-07-22  Jan Hubicka  <jh@suse.cz>
20137
20138         * ipa-pure-const.c (varying_state): Break out from ...
20139         (get_function_state): ... here; always return varying_state
20140         when state would be NULL otherwise.
20141         (remove_node_data): Do not free varying state.
20142
20143 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
20144
20145         PR bootstrap/44970
20146         PR middle-end/45009
20147         * postreload.c: Include "target.h".
20148         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
20149         into account.
20150         (fixup_debug_insns): Don't copy the rtx.
20151         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
20152         Don't copy when replacing.  Call fixup_debug_insns in the case where
20153         we merged one add with another.
20154         (reload_combine_recognize_pattern): Fail if there aren't any uses.
20155         Try harder to determine whether we're picking a valid index register.
20156         Don't set store_ruid for an insn we're going to scan in the
20157         next iteration.
20158         (reload_combine): Remove unused code.
20159         (reload_combine_note_use): When updating use information for
20160         an old insn, ignore a use that occurs after store_ruid.
20161         * Makefile.in (postreload.o): Update dependencies.
20162
20163         * function.c (record_hard_reg_sets): Restrict the previous change
20164         to cases where the incoming nominal mode is the same as the
20165         incoming promoted mode and everything happens in MODE_INT.
20166
20167 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
20168
20169         PR debug/45015
20170         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
20171         ASM_OPERANDS_OUTPUT_IDX.
20172         (adjust_insn): For inline asm with multiple sets ensure first
20173         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
20174         the insn.
20175
20176 2010-07-21  Richard Henderson  <rth@redhat.com>
20177
20178         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
20179         comparison for avoiding xmm register saves.  Emit the xmm register
20180         saves explicitly.
20181         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
20182         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
20183         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
20184         Remove patterns and the associated splitters.
20185
20186 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
20187
20188         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
20189         and imagine parts of a complex, so that they can have the same
20190         base and fall into the same group.
20191
20192 2010-07-21  Richard Guenther  <rguenther@suse.de>
20193
20194         PR lto/45018
20195         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
20196         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
20197         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
20198
20199 2010-07-21  Martin Jambor  <mjambor@suse.cz>
20200
20201         PR tree-optimization/44900
20202         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
20203         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
20204
20205 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
20206
20207         PR middle-end/44738
20208         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
20209
20210 2010-07-21  Richard Guenther  <rguenther@suse.de>
20211
20212         PR middle-end/45013
20213         * tree-ssa.c (useless_type_conversion_p): Dispatch to
20214         gimple_types_compatible_p only when in lto.
20215         * gimple.c (gimple_types_compatible_p): Use canonical types
20216         to speed up comparison.
20217
20218 2010-07-21  Richard Guenther  <rguenther@suse.de>
20219
20220         * tree-flow.h (referenced_var): Move define ...
20221         * tree-flow-inline.h (referenced_var): ... here as an inline
20222         function.  Assert here ...
20223         * tree-dfa.c (referenced_var_lookup): ... instead of here.
20224         * tree-ssa.c (maybe_optimize_var): Check if the variable
20225         is in referenced vars.
20226         (execute_update_addresses_taken): Remove old broken check.
20227         * gimple-pretty-print.c (pp_points_to_solution): Use
20228         referenced_var_lookup.
20229         * tree-into-ssa.c (dump_decl_set): Likewise.
20230
20231 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
20232
20233         PR debug/45003
20234         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
20235         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
20236         ZERO_EXTEND here.
20237
20238 2010-07-20  Richard Henderson  <rth@redhat.com>
20239
20240         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
20241
20242 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
20243
20244         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
20245         computing the sum of the stack pointer and a large constant.
20246         * config/arm/constraints.md (M): Remove superfluous parentheses.
20247         (Pc): New constraint.
20248
20249 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
20250
20251         PR debug/45006
20252         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
20253         operand's type if exp is tcc_unary class tree.
20254
20255 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
20256
20257         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
20258         Reverse sense of if_then_else condition.
20259
20260 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
20261
20262         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
20263         * config/rs6000/rs6000.c (rs6000_override_options): Set
20264         rs6000_block_move_inline_limit appropriately.
20265         (expand_block_move): Use rs6000_block_move_inline_limit.
20266         * doc/invoke.texi (mblock-move-inline-limit): Document.
20267
20268 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
20269
20270         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
20271         FROM and TO.  All callers changed.  Don't look for tracked uses,
20272         just scan the RTL for DEBUG_INSNs and substitute.
20273         (reload_combine_recognize_pattern): Call fixup_debug_insns.
20274         (reload_combine): Ignore DEBUG_INSNs.
20275
20276 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
20277
20278         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
20279         depth to 8 from 5.
20280
20281         PR debug/45003
20282         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
20283         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
20284         instead of the result's type.
20285
20286 2010-07-20  Richard Guenther  <rguenther@suse.de>
20287
20288         PR tree-optimization/44977
20289         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
20290         SSA form.
20291
20292 2010-07-20  Richard Guenther  <rguenther@suse.de>
20293
20294         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
20295         (lto_symtab_merge_decls_2): Likewise.
20296         * gimple.h (gimple_types_compatible_p): Declare.
20297         * gimple.c (gimple_queue_type_fixup): Remove.
20298         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
20299         (gimple_compatible_complete_and_incomplete_type_p): New function.
20300         (gimple_types_compatible_p): Adjust.
20301         (gimple_register_type): Remove type fixup code.
20302         (print_gimple_types_stats): Adjust.
20303         (free_gimple_type_tables): Likewise.
20304         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
20305         * tree-ssa.c (useless_type_conversion_p): Likewise.
20306
20307 2010-07-20  Richard Guenther  <rguenther@suse.de>
20308
20309         PR middle-end/44971
20310         PR middle-end/44988
20311         * tree-ssa.c (maybe_optimize_var): New function split out from ...
20312         (execute_update_addresses_taken): ... here.
20313         (non_rewritable_mem_ref_base): Likewise.
20314         (execute_update_addresses_taken): Do not iterate over all referenced
20315         vars but just all local decls and parms.
20316         Properly check call and asm arguments and rewrite call arguments.
20317
20318 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
20319
20320         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
20321         to top level.
20322         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
20323         definitions ...
20324         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
20325         New macro.
20326         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
20327
20328 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
20329
20330         * gengtype.c (start_root_entry): New function, split out from
20331         write_root.  Check whether V is null and raise an error if so.
20332         (write_field_root): Check for V being null.  Don't raise an error here;
20333         set V to null instead.
20334         (write_root): Update comment above function.  Use start_root_entry.
20335
20336 2010-07-19  Xinliang David Li  <davidxl@google.com>
20337
20338         PR testsuite/44932
20339         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
20340         def edges.
20341         (find_uninit_use): Add dump.
20342         (is_use_properly_guarded): Ditto.
20343         (warn_uninitialized_phi): Ditto.
20344         (execute_late_warn_uninitialized): Ditto.
20345
20346 2010-07-19  Richard Guenther  <rguenther@suse.de>
20347
20348         PR middle-end/44941
20349         * expr.c (emit_block_move_hints): Move zero size check first.
20350         Move asserts to more useful places.
20351         * calls.c (load_register_parameters): Check for zero size.
20352
20353 2010-07-19  Richard Henderson  <rth@redhat.com>
20354
20355         * tree-optimize.c (execute_all_early_local_passes): New.  Change
20356         cgraph_state here ...
20357         (execute_early_local_optimizations): ... not here.  Remove.
20358         (pass_early_local_passes, pass_all_early_optimizations): Update.
20359
20360 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
20361
20362         * postreload.c (reload_combine_closest_single_use): Ignore the
20363         number of uses for DEBUG_INSNs.
20364         (fixup_debug_insns): New static function.
20365         (reload_combine_recognize_const_pattern): Use it.  Don't let the
20366         main loop be affected by DEBUG_INSNs.
20367         Really disallow moving adds past a jump insn.
20368         (reload_combine_recognize_pattern): Don't update use_ruid here.
20369         (reload_combine_note_use): Do it here.
20370         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
20371
20372 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
20373
20374         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
20375         of a loop.
20376         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
20377
20378 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
20379
20380         * config/i386/darwin.h: Define darwin_emit_branch_islands.
20381         (TARGET_MACHO_BRANCH_ISLANDS): New.
20382         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
20383         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
20384         default value.
20385         * config/i386/i386.c (output_pic_addr_const): Do not emit
20386         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
20387         (x86_output_mi_thunk): Adjust symbol creation.
20388         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
20389         Remove out of date comment.
20390         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
20391         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
20392         (DARWIN_GENERATE_ISLANDS): Ditto.
20393         (output_call):  Do not emit branch islands unless
20394         darwin_emit_branch_islands is set.
20395         * config/darwin.c: Declare darwin_emit_branch_islands.
20396         (machopic_indirect_data_reference): Do not emit unless
20397         darwin_emit_branch_islands is set.
20398         (darwin_override_options): Set darwin_emit_branch_islands
20399         where it is needed.
20400         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
20401
20402 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20403
20404         * doc/sourcebuild.texi (Effective-Target Keywords): Document
20405         sse_runtime, sse2_runtime.
20406
20407 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
20408
20409         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
20410         low half of a single-register SCmode return value before ORing
20411         it with the high half.
20412         * config/mips/mips16.S (MERGE_GPRf): Likewise.
20413
20414 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20415
20416         PR target/44805
20417         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
20418         on all targets.
20419
20420 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
20421
20422         PR target/42235
20423         * postreload.c (reload_cse_move2add): Return bool, true if anything.
20424         changed.  All callers changed.
20425         (move2add_use_add2_insn): Likewise.
20426         (move2add_use_add3_insn): Likewise.
20427         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
20428         reload_combine.
20429         (RELOAD_COMBINE_MAX_USES): Bump to 16.
20430         (last_jump_ruid): New static variable.
20431         (struct reg_use): New members CONTAINING_MEM and RUID.
20432         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
20433         (reload_combine_split_one_ruid, reload_combine_split_ruids,
20434         reload_combine_purge_insn_uses, reload_combine_closest_single_use
20435         reload_combine_purge_reg_uses_after_ruid,
20436         reload_combine_recognize_const_pattern): New static functions.
20437         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
20438         is true for our reg and that we have available index regs.
20439         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
20440         callers changed.  Use them to initialize fields in struct reg_use.
20441         (reload_combine): Initialize last_jump_ruid.  Be careful when to
20442         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
20443         Call reload_combine_recognize_const_pattern.
20444         (reload_combine_note_store): Update REAL_STORE_RUID field.
20445
20446 2010-07-16  Jason Merrill  <jason@redhat.com>
20447
20448         * Makefile.in (opts-common.o): Depend on options.h.
20449
20450 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
20451
20452         * tree.c (build_common_builtin_nodes): Use build_function_type_list
20453         instead of build_function_type.
20454         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
20455         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
20456
20457 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
20458
20459         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
20460         do all the work.
20461         (rs6000_emit_int_cmove): Use function pointers for insn generation.
20462         Don't force values into registers unnecessarily.
20463         (output_isel): Assert that we're not given conditions we can't handle.
20464         Delete corresponding code.
20465         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
20466         scc_comparison_operator constraint.  Permit 0 for the consequent
20467         operand.  Permit any GPR for the alternative operand.
20468         (isel_unsigned_<mode>): Likewise.
20469
20470 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
20471
20472         PR target/44942
20473         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
20474         argument to const_tree.
20475         * config/i386/i386.c (function_arg_advance): If padding needs to be
20476         inserted before argument, increment cum->words by number of padding
20477         words as well.
20478         (contains_aligned_value_p): Change argument to const_tree.
20479         (ix86_function_arg_boundary): Change second argument to const_tree.
20480
20481 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
20482
20483         PR target/42235
20484         * function.c (record_hard_reg_sets): New static function.
20485         (assign_parm_setup_reg): If an optab for extending exists and the
20486         generated code clobbbers no hard regs, emit the insn directly and
20487         create a REG_EQUIV note.
20488
20489 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20490
20491         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
20492         TREE_CHAIN.
20493         * c-typeck.c (push_init_level): Likewise.
20494         (process_init_element): Likewise.
20495
20496 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
20497
20498         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
20499         (integer_three_node): Add.
20500         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
20501         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
20502         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
20503         of call build_int_cst.
20504         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
20505         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
20506         (find_interesting_uses_address): Ditto.
20507         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
20508         * tree-eh.c (lower_eh_constructs_2): Ditto.
20509         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
20510         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
20511         * expmed.c (expand_divmod): Ditto.
20512         * tree-mudflap.c (mx_register_decls): Ditto.
20513         * varasm.c (array_size_for_constructor): Ditto.
20514         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
20515         * c-parser.c (c_parser_postfix_expression): Ditto.
20516
20517 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
20518
20519         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
20520         New static variables.
20521         (reload_combine_recognize_pattern): New static function, broken out
20522         of reload_combine.
20523         (reload_combine): Use it.  Only initialize first_index_reg and
20524         last_index_reg once.
20525
20526 2010-07-15  Richard Henderson  <rth@redhat.com>
20527
20528         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
20529         when done.
20530
20531 2010-07-15  Jan Hubicka  <jh@suse.cz>
20532
20533         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
20534         comdats for broken gold.
20535         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
20536
20537 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20538
20539         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
20540
20541 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20542
20543         * tree.h (DECL_CHAIN): Define.
20544         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
20545         * c-decl.c: Likewise.
20546         * c-parser.c: Likewise.
20547         * c-typeck.c: Likewise.
20548         * cfgexpand.c: Likewise.
20549         * cgraph.c: Likewise.
20550         * cgraphunit.c: Likewise.
20551         * combine.c: Likewise.
20552         * config/alpha/alpha.c: Likewise.
20553         * config/arm/arm.c: Likewise.
20554         * config/frv/frv.c: Likewise.
20555         * config/i386/i386.c: Likewise.
20556         * config/i386/winnt-cxx.c: Likewise.
20557         * config/ia64/ia64.c: Likewise.
20558         * config/iq2000/iq2000.c: Likewise.
20559         * config/mep/mep.c: Likewise.
20560         * config/mips/mips.c: Likewise.
20561         * config/pa/som.h: Likewise.
20562         * config/rs6000/rs6000.c: Likewise.
20563         * config/s390/s390.c: Likewise.
20564         * config/sh/sh.c: Likewise.
20565         * config/sh/symbian-cxx.c: Likewise.
20566         * config/sparc/sparc.c: Likewise.
20567         * config/spu/spu.c: Likewise.
20568         * config/stormy16/stormy16.c: Likewise.
20569         * config/vxworks.c: Likewise.
20570         * config/xtensa/xtensa.c: Likewise.
20571         * coverage.c: Likewise.
20572         * dbxout.c: Likewise.
20573         * dwarf2out.c: Likewise.
20574         * emit-rtl.c: Likewise.
20575         * expr.c: Likewise.
20576         * function.c: Likewise.
20577         * gimple-low.c: Likewise.
20578         * gimple-pretty-print.c: Likewise.
20579         * gimplify.c: Likewise.
20580         * integrate.c: Likewise.
20581         * ipa-inline.c: Likewise.
20582         * ipa-prop.c: Likewise.
20583         * ipa-split.c: Likewise.
20584         * ipa-struct-reorg.c: Likewise.
20585         * ipa-type-escape.c: Likewise.
20586         * langhooks.c: Likewise.
20587         * lto-cgraph.c: Likewise.
20588         * omp-low.c: Likewise.
20589         * stor-layout.c: Likewise.
20590         * tree-cfg.c: Likewise.
20591         * tree-complex.c: Likewise.
20592         * tree-dfa.c: Likewise.
20593         * tree-dump.c: Likewise.
20594         * tree-inline.c: Likewise.
20595         * tree-mudflap.c: Likewise.
20596         * tree-nested.c: Likewise.
20597         * tree-object-size.c: Likewise.
20598         * tree-pretty-print.c: Likewise.
20599         * tree-sra.c: Likewise.
20600         * tree-ssa-live.c: Likewise.
20601         * tree-ssa-loop-niter.c: Likewise.
20602         * tree-ssa-math-opts.c: Likewise.
20603         * tree-ssa-reassoc.c: Likewise.
20604         * tree-ssa-sccvn.c: Likewise.
20605         * tree-ssa-structalias.c: Likewise.
20606         * tree-tailcall.c: Likewise.
20607         * tree-vrp.c: Likewise.
20608         * tree.c: Likewise.
20609         * var-tracking.c: Likewise.
20610         * varasm.c: Likewise.
20611
20612 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20613
20614         PR target/44877
20615         * config/spu/spu.c (spu_expand_builtin_1): Allow references
20616         (as well as pointers) as argument to mask_for_load builtins.
20617
20618 2010-07-15  Richard Guenther  <rguenther@suse.de>
20619
20620         PR tree-optimization/44946
20621         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
20622         with accessing only padding properly.
20623
20624 2010-07-15  Jan Hubicka  <jh@suse.cz>
20625
20626         * ipa.c (function_and_variable_visibility): Variables marked as used
20627         should not be localized.
20628
20629 2010-07-15  Jan Hubicka  <jh@suse.cz>
20630
20631         * cgraph.c: Include lto-streamer.h
20632         (change_decl_assembler_name): Work when assembler name hash is at place.
20633         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
20634         be sure to rename it to avoid name clash.
20635         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
20636         Localize hidden symbols only when locally defined.
20637
20638 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
20639
20640         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
20641
20642 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
20643             Kevin F. Quinn  <kevquinn@gentoo.org>
20644
20645         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
20646         * common.opt: Add -Wtrampolines.
20647         * doc/invoke.texi: Add -Wtrampolines.
20648
20649 2010-07-15  Jie Zhang  <jie@codesourcery.com>
20650
20651         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
20652         cortex_a8_issue_ls.
20653
20654 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
20655
20656         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
20657         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
20658
20659 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20660
20661         * config/spu/spu.c (reg_names): Remove prototype.
20662         (call_used_regs): Likewise.
20663
20664 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
20665
20666         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
20667         "unused" with attribute "used".
20668         (__JCR_END__): Likewise.
20669         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
20670         "used" attribute.
20671         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
20672
20673 2010-07-14  Richard Guenther  <rguenther@suse.de>
20674
20675         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
20676         (maybe_fixup_decls): Likewise.
20677         (input_gimple_stmt): Do not fixup anything.
20678         * lto-streamer-out.c (output_gimple_stmt): Make sure all
20679         non-automatic variable uses are wrapped inside a MEM_REF.
20680
20681 2010-07-14  Richard Henderson  <rth@redhat.com>
20682
20683         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
20684         for functions.
20685         * varasm.c (assemble_variable): Remove early exit for functions;
20686         assert that we're given a variable.
20687
20688 2010-07-14  Jie Zhang  <jie@codesourcery.com>
20689
20690         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
20691         cortex_a8_default when neon_type is not none.
20692
20693 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20694
20695         * lower-subreg.c (subreg_context): New static bitmap.
20696         (decompose_multiword_subregs): Allocate and free it.
20697         (find_decomposable_subregs): Set a bit in it for a register that
20698         occurs in a subreg that changes mode but not size.
20699         (can_decompose_p): Test it instead of non_decomposable_context.
20700
20701 2010-07-14  Richard Guenther  <rguenther@suse.de>
20702
20703         PR tree-optimization/44824
20704         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
20705         is_gimple_mem_ref_addr.
20706         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
20707         non-decl_address_invariant_p addresses.
20708
20709 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20710
20711         * reload.c (find_reloads): Revert code to penalize small register
20712         classes that was brought in with the IRA merge.
20713
20714 2010-07-14  Richard Guenther  <rguenther@suse.de>
20715
20716         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
20717         as base of ARRAY_REFs.
20718
20719 2010-07-14  Richard Guenther  <rguenther@suse.de>
20720
20721         PR middle-end/44930
20722         * tree-pretty-print.c (do_niy): Do not print a newline.
20723
20724 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20725
20726         * ira-int.h (struct ira_object): New.
20727         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
20728         (struct ira_allocno): Remove members min, max,
20729         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
20730         conflict_allocnos_num and conflict_vec_p.  Add new member object.
20731         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
20732         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
20733         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
20734         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
20735         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
20736         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
20737         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
20738         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
20739         an ira_object_t rather than ira_allocno_t.  All uses changed.
20740         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
20741         contains a vector of ira_object_t; all uses changed.
20742         (ira_objects_num): Declare variable.
20743         (ira_create_allocno_object): Declare function.
20744         (ira_conflict_vector_profitable_p): Adjust prototype.
20745         (ira_allocate_conflict_vec): Renamed from
20746         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
20747         (ira_allocate_object_conflicts): Renamed from
20748         ira_allocate_allocno_conflicts; first arg now ira_object_t.
20749         (struct ira_object_iterator): New.
20750         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
20751         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
20752         to conflict_vec_p.  All uses changed.
20753         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
20754         Changed to take into account that conflicts are now tracked for
20755         objects.
20756         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
20757         Args changed to accept ira_object_t.  All uses changed.
20758         (allocnos_conflict_p): New static function.
20759         (collected_conflict_objects): Renamed from collected_allocno_objects;
20760         now a vector of ira_object_t.  All uses changed.
20761         (build_conflict_bit_table): Changed to take into account that
20762         conflicts are now tracked for objects.
20763         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
20764         (print_allocno_conflicts, ira_build_conflicts): Likewise.
20765         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
20766         setup_allocno_left_conflicts_size, allocno_reload_assign,
20767         fast_allocation): Likewise.
20768         * ira-lives.c (make_hard_regno_born, make_allocno_born)
20769         process_single_reg_class_operands, process_bb_node_lives): Likewise.
20770         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
20771         Likewise.
20772         * ira-build.c (ira_objects_num): New variable.
20773         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
20774         contains a vector of ira_object_t; all uses changed.
20775         (ira_object_id_map_vec): Corresponding change.
20776         (object_pool): New static variable.
20777         (initiate_allocnos): Initialize it.
20778         (finish_allocnos): Free it.
20779         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
20780         New functions.
20781         (ira_create_allocno): Don't set members that were removed.
20782         (ira_set_allocno_cover_class): Don't change conflict hard regs.
20783         (merge_hard_reg_conflicts): Changed to take into account that
20784         conflicts are now tracked for objects.
20785         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
20786         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
20787         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
20788         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
20789         setup_min_max_conflict_allocno_ids, ):  Likewise.
20790         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
20791         to ira_object_t; all callers changed.
20792         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
20793         to ira_object_t, all callers changed.
20794         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
20795         to ira_object_t, all callers changed.
20796         (conflict_check, curr_conflict_check_tick): Renamed from
20797         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
20798         changed.
20799         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
20800         arg changed to ira_object_t, all callers changed.
20801         (create_cap_allocno): Call ira_create_allocno_object.
20802         (finish_allocno): Free the corresponding object.
20803         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
20804         callers changed.  Adjusted for dealing with objects.
20805         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
20806         dealing with objects.
20807         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
20808
20809         * ira-int.h (struct live_range): Rename allocno member to object
20810         and change type to ira_object_t.
20811         (struct ira_object): New member live_ranges.
20812         (struct ira_allocno): Remove member live_ranges.
20813         (ALLOCNO_LIVE_RANGES): Remove.
20814         (OBJECT_LIVE_RANGES): New macro.
20815         (ira_create_live_range, ira_copy_live_range_list,
20816         ira_merge_live_range_list, ira_live_ranges_intersect_p,
20817         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
20818         * ira-build.c (ira_create_object): Initialize live ranges here.
20819         (ira_create_allocno): Not here.
20820         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
20821         changed to ira_object_t, all callers changed.
20822         (copy_live_range): Rename from copy_allocno_live_range, all callers
20823         changed.
20824         (ira_copy_live_range_list): Rename from
20825         ira_copy_allocno_live_range_list, all callers changed.
20826         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
20827         all callers changed.
20828         (ira_live_ranges_intersect_p): Rename from
20829         ira_allocno_live_ranges_intersect_p, all callers changed.
20830         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
20831         callers changed.
20832         (ira_finish_live_range_list): Rename from
20833         ira_finish_allocno_live_range_list, all callers changed.
20834         (change_object_in_range_list): Rename from change_allocno_in_range_list,
20835         last arg changed to ira_object_t, all callers changed.
20836         (finish_allocno): Changed to expect live ranges in the allocno's object.
20837         (move_allocno_live_ranges, copy_allocno_live_ranges,
20838         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
20839         ira_flattening, ira_build): Likewise.
20840         * ira-color.c (allocnos_have_intersected_live_ranges_p,
20841         slot_coalesced_allocno_live_ranges_intersect,
20842         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
20843         * ira-conflicts.c (build_conflict_bit_table): Likewise.
20844         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
20845         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
20846         make_allocno_dead, create_start_finish_chains,
20847         remove_some_program_points_and_update_live_ranges,
20848         ira_debug_live_range_list): Likewise.
20849
20850         * ira-int.h (ira_object_conflict_iterator): Rename from
20851         ira_allocno_conflict_iterator.
20852         (ira_object_conflict_iter_init): Rename from
20853         ira_allocno_conflict_iter_init, second arg changed to
20854         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
20855         FOR_EACH_ALLOCNO_CONFLICT.
20856         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
20857         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
20858         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
20859         * ira-conflicts.c (print_allocno_conflicts): Likewise.
20860
20861 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
20862
20863         PR other/44874
20864         * tree-dump.c (dump_options): Add enumerate_locals entry.
20865         Add TDF_NOID exclusion to all entry.
20866         * tree-dump.h (dump_enumerated_decls): Declare.
20867         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
20868         Don't display type uid.
20869         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
20870         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
20871         * tree-ssa-live.c: Include gimple.h.
20872         (numbered_tree_d): New struct.
20873         (numbered_tree): New typedef.
20874         (DEF_VEC_O (numbered_tree): New.
20875         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
20876         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
20877         (dump_enumerated_decls): Likewise.
20878         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
20879         debug info and flag_dump_final_insns, call dump_enumerated_decls.
20880         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
20881         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
20882
20883 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
20884
20885         * expmed.h (MAX_BITS_PER_WORD): Move to...
20886         * defaults.h (MAX_BITS_PER_WORD): ...here.
20887
20888 2010-07-13  DJ Delorie  <dj@redhat.com>
20889
20890         * config/h8300/h8300.c (h8300_init_once): Default to
20891         -fstrict_volatile_bitfields.
20892
20893         * config/sh/sh.c (sh_override_options): Default to
20894         -fstrict_volatile_bitfields.
20895
20896         * config/rx/rx.c (rx_option_override): New.
20897
20898         * config/m32c/m32c.c (m32c_override_options): Default to
20899         -fstrict_volatile_bitfields.
20900
20901 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
20902
20903         * tree.h (build_function_call_expr): Delete.
20904         (build_call_expr_loc_array): New function.
20905         (build_call_expr_loc_vec): New function.
20906         * tree-flow.h (struct omp_region): Change type of ws_args field
20907         to a VEC.
20908         * builtins.c (build_function_call_expr): Delete.
20909         (build_call_expr_loc_array): New function.
20910         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
20911         (build_call_expr): Likewise.
20912         (build_call_expr_loc_vec): New function.
20913         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
20914         build_function_call_expr.
20915         * expr.c (emutls_var_address): Likewise.
20916         * varasm.c (emutls_common_1): Likewise.
20917         * omp-low.c (expand_omp_atomic_mutex): Likewise.
20918         (expand_omp_taskreg): Adjust for new type of region->ws_args.
20919         (get_ws_args_for): Return a VEC instead of a tree.
20920         (expand_parallel_call): Call build_call_expr_loc_vec instead of
20921         build_function_call_expr.
20922         * stor-layout.c (self_referential_size): Likewise.
20923
20924 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
20925
20926         PR testsuite/44701
20927         * recog.c (constrain_operands): Allow side-effects in memory
20928         operands if either < or > constraint is used, rather than if
20929         both < and > is used.
20930
20931 2010-07-13  Richard Guenther  <rguenther@suse.de>
20932
20933         PR middle-end/44911
20934         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
20935         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
20936         without name.
20937
20938 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
20939
20940         PR target/44761
20941         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
20942         to variable emited.
20943         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
20944         * config/sh/sh.md (symGOT_load): Likewise.
20945         (symDTPOFF2reg): Likewise.
20946         (symTPOFF2reg): Likewise.
20947
20948 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20949
20950         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
20951         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
20952
20953 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20954
20955         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
20956         explanation.
20957         Find ucontext_t * on Solaris 11.
20958         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
20959         Handle new Solaris 11 __sighndlr patterns.
20960
20961 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
20962
20963         PR debug/44901
20964         * vec.h (VEC_block_remove): Fix comment.
20965         * tree-ssa-live.c (remove_unused_locals): Don't use
20966         VEC_unordered_remove on local_decls, instead replace a single
20967         vector element in each iteration if at least one element had
20968         to be removed and VEC_truncate at the end.
20969         * omp-low.c (expand_omp_taskreg): Likewise.
20970
20971 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20972
20973         * c-decl.c (finish_function): Fix typo in comment.
20974
20975 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
20976
20977         PR bootstrap/44921
20978         * postreload.c (move2add_use_add3_insn): Silence gcc warning
20979         on min_regno.
20980
20981 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
20982
20983         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
20984         (simplify_stmt_using_ranges): Use it.
20985
20986 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20987
20988         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
20989         member.  Do not mark as GTY(()).
20990         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
20991         (spu_builtin_decls): New static variable.
20992         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
20993         (spu_init_builtins): Likewise.
20994         (spu_builtin_mul_widen_even): Likewise.
20995         (spu_builtin_mul_widen_odd): Likewise.
20996         (spu_builtin_mask_for_load): Likewise.
20997         (spu_builtin_vec_perm): Likewise.
20998         * config/spu/spu-c.c: Include "target.h".
20999         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
21000         of using spu_builtins[].fndecl.
21001
21002 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21003
21004         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
21005         imply -minterlink-mips16.
21006
21007 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21008
21009         * config/mips/mips.h (mips16_globals): Declare.
21010         (SWITCHABLE_TARGET): Define.
21011         * config/mips/mips.c: Include target-globals.h.
21012         (mips16_globals): New variable.
21013         (mips_set_mips16_mode): Use save_target_globals and
21014         restore_target_globals instead of target_reinit.
21015
21016 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21017
21018         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
21019         to say that the function can be called more than once.
21020         * target-globals.c (save_target_globals): Call init_reg_sets.
21021
21022 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21023
21024         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
21025         * bb-reorder.h: New file.
21026         * bb-reorder.c (default_target_bb_reorder): New variable.
21027         (this_target_bb_reorder): New conditional variable.
21028         (uncond_jump_length): Redefine as a macro.
21029         * target-globals.h (this_target_bb_reorder): Declare.
21030         (target_globals): Add a bb_reorder field.
21031         (restore_target_globals): Copy the bb_reorder field to
21032         this_target_bb-reorder.
21033         * target-globals.c: Include bb-reorder.h.
21034         (default_target_globals): Initialize the bb_reorder field.
21035         (save_target_globals): Likewise.
21036
21037 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21038
21039         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
21040         * gcse.h: New file.
21041         * gcse.c: Include gcse.h.
21042         (default_target_gcse): New variable.
21043         (this_target_gcse): New conditional variable.
21044         (can_copy): Redefine as a macro.
21045         (can_copy_init_p): New macro.
21046         (can_copy_p): Remove can_copy_init_p.
21047         * target-globals.h (this_target_gcse): Declare.
21048         (target_globals): Add a gcse field.
21049         (restore_target_globals): Copy the gcse field to this_target_gcse.
21050         * target-globals.c: Include gcse.h.
21051         (default_target_globals): Initialize the gcse field.
21052         (save_target_globals): Likewise.
21053
21054 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21055
21056         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
21057         and x_ira_prohibited_mode_move_regs_initialized_p.
21058         (ira_prohibited_mode_move_regs): Redefine as a macro.
21059         * ira.c (ira_prohibited_mode_move_regs): Delete.
21060         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
21061
21062 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21063
21064         * reload.h (target_reload): Add x_cached_reg_save_code and
21065         x_cached_reg_restore_code.
21066         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
21067         Redefine as macros.
21068
21069 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21070
21071         * Makefile.in (target-globals.o): Depend on builtins.h.
21072         * builtins.h: New file.
21073         * builtins.c: Include builtins.h.
21074         (default_target_builtins): New variable.
21075         (this_target_builtins): New conditional variable.
21076         (apply_args_mode, apply_result_mode): Redefine as macros.
21077         * target-globals.h (this_target_builtins): Declare.
21078         (target_globals): Add a builtins field.
21079         (restore_target_globals): Copy the builtins field to
21080         this_target_builtins.
21081         * target-globals.c: Include builtins.h.
21082         (default_target_globals): Initialize the builtins field.
21083         (save_target_globals): Likewise.
21084
21085 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21086
21087         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
21088         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
21089         from expmed.c.
21090         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
21091         (alg_hash, alg_hash_used_p): New macros.
21092         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
21093         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
21094         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
21095
21096 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21097
21098         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
21099         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
21100         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
21101         (this_op_costs, costs_classes): Redefine as macros.
21102         (record_reg_classes): Don't take op_costs as a parameter.
21103         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
21104         (scan_one_insn): Update call to record_operand_costs.
21105
21106 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21107
21108         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
21109         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
21110         (target_ira_int): New structure.
21111         (default_target_ira_int): Declare.
21112         (this_target_ira_int): Declare as a variable or define as a macro.
21113         (ira_reg_mode_hard_regset, ira_register_move_cost)
21114         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
21115         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
21116         (prohibited_class_mode_regs, ira_important_classes_num)
21117         (ira_important_classes, ira_reg_class_intersect)
21118         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
21119         (ira_reg_class_union): Redefine as macros.
21120         * ira.h (target_ira): New structure.
21121         (default_target_ira): Declare.
21122         (this_target_ira): Declare as a variable or define as a macro.
21123         (ira_available_class_regs, ira_hard_regno_cover_class)
21124         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
21125         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
21126         (ira_class_hard_regs_num): Redefine as macros.
21127         * ira.c (default_target_ira, default_target_ira_int): New variables.
21128         (this_target_ira, this_target_ira_int): New conditional variables.
21129         (ira_reg_mode_hard_regset, ira_memory_move_cost)
21130         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
21131         (ira_class_subset_p): Delete.
21132         (no_unit_alloc_regs): Redefine as a macro.
21133         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
21134         (ira_class_hard_regs_num, ira_class_hard_reg_index)
21135         (ira_available_class_regs): Delete.
21136         (alloc_reg_class_subclasses): Redefine as a macro.
21137         (ira_reg_class_cover_size, ira_reg_class_cover)
21138         (ira_important_classes_num, ira_important_classes)
21139         (ira_important_class_nums, ira_class_translate): Delete.
21140         (cover_class_order): Document the variable's lifetime.
21141         (reorder_important_classes): Don't set ira_important_class_nums.
21142         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
21143         (ira_reg_class_super_classes, ira_reg_class_union)
21144         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
21145         Delete.
21146         (setup_reg_class_nregs): Don't set ira_max_regs.
21147         (prohibited_class_mode_regs): Delete.
21148         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
21149         (target_globals): Add ira and ira_int fields.
21150         (restore_target_globals): Copy the ira field to this_target_ira
21151         and the ira_int field to this_target_ira_int.
21152         * target-globals.c: Include ira-int.h.
21153         (default_target_globals): Initialize the ira and ira_int fields.
21154         (save_target_globals): Likewise.
21155
21156 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21157
21158         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
21159         * cfgloop.h (target_cfgloop): New structure.
21160         (default_target_cfgloop): Declare.
21161         (this_target_cfgloop): Declare as a variable or define as a macro.
21162         (target_avail_regs, target_clobbered_regs, target_res_regs)
21163         (target_reg_cost, target_spill_cost): Redefine as macros.
21164         * cfgloopanal.c (default_target_cfgloop): New variable.
21165         (this_target_cfgloop): New conditional variable.
21166         (target_avail_regs, target_clobbered_regs, target_res_regs)
21167         (target_reg_cost, target_spill_cost): Delete.
21168         * target-globals.h (this_target_cfgloop): Declare.
21169         (target_globals): Add a cfgloop field.
21170         (restore_target_globals): Copy the cfgloop field to
21171         this_target_cfgloop.
21172         * target-globals.c: Include cfgloop.h.
21173         (default_target_globals): Initialize the cfgloop field.
21174         (save_target_globals): Likewise.
21175
21176 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21177
21178         * regs.h (target_regs): Add x_direct_load, x_direct_store and
21179         x_float_extend_from_mem.
21180         (direct_load, direct_store, float_extend_from_mem): New macros.
21181         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
21182
21183 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21184
21185         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
21186         (target-globals.o): Depend on $(LIBFUNCS_H).
21187         * libfuncs.h: Include hashtab.h.
21188         (libfunc_entry): Moved from optabs.c.
21189         (target_libfuncs): New structure.
21190         (default_target_libfuncs): Declare.
21191         (this_target_libfuncs): Declare as a variable or define as a macro.
21192         (libfunc_table): Redefine as a macro.
21193         * optabs.c (default_target_libfuncs): New variable.
21194         (this_target_libfuncs): New conditional variable.
21195         (libfunc_table): Delete.
21196         (libfunc_entry): Moved to optabs.h.
21197         (libfunc_hash): Redefine as a macro.
21198         (hash_libfunc, eq_libfunc): Fix comments.
21199         (init_optabs): Use libfunc_hash to detect cases where the function
21200         has already been called.  Clear the hash table instead of
21201         recreating it.
21202         * target-globals.h (this_target_libfuncs): Declare.
21203         (target_globals): Add a libfuncs field.
21204         (restore_target_globals): Copy the libfuncs field to
21205         this_target_libfuncs.
21206         * target-globals.c: Include libfuncs.h.
21207         (default_target_globals): Initialize the libfuncs field.
21208         (save_target_globals): Likewise.
21209
21210 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21211
21212         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
21213         in all dependency lists.
21214
21215 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21216
21217         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
21218         * optabs.h (target_optabs): New structure.
21219         (default_target_optabs): Declare.
21220         (this_target_optabs): Declare as a variable or define as a macro.
21221         (optab_table, convert_optab_table, direct_optab_table): Redefine
21222         as macros.
21223         * optabs.c (default_target_optabs): New variable.
21224         (this_target_optabs): New conditional variable.
21225         (optab_table, convert_optab_table, direct_optab_table): Delete.
21226         * target-globals.h (this_target_optabs): Declare.
21227         (target_globals): Add a optabs field.
21228         (restore_target_globals): Copy the optabs field to
21229         this_target_optabs.
21230         * target-globals.c: Include expr.h and optabs.h.
21231         (default_target_globals): Initialize the optabs field.
21232         (save_target_globals): Likewise.
21233
21234 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21235
21236         * flags.h (target_flagstate): Add x_flag_excess_precision.
21237         (flag_excess_precision): Redefine as a macro.
21238         * toplev.c (flag_excess_precision): Delete.
21239
21240 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21241
21242         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
21243         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
21244         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
21245         (no_caller_save_reg_set): Redefine as a macro.
21246         * reload.h (target_reload): Add x_caller_save_initialized_p and
21247         x_regno_save_mode.
21248         (caller_save_initialized_p): Redefine as a macro.
21249         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
21250         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
21251         (regno_save_mode): Redefine as a macro.
21252
21253 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21254
21255         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
21256         * expmed.h: New file.
21257         * expmed.c (default_target_costs): New variable.
21258         (this_target_costs): New conditional variable.
21259         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
21260         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
21261         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
21262         * target-globals.h (this_target_expmed): Declare.
21263         (target_globals): Add a expmed field.
21264         (restore_target_globals): Copy the expmed field to
21265         this_target_expmed.
21266         * target-globals.c: Include expmed.h.
21267         (default_target_globals): Initialize the expmed field.
21268         (save_target_globals): Likewise.
21269
21270 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21271
21272         * Makefile.in (target-globals.o): Depend on reload.h.
21273         * reload.h (target_reload): New structure.
21274         (default_target_reload): Declare.
21275         (this_target_reload): Declare as a variable or define as a macro.
21276         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
21277         * reload1.c (default_target_reload): New variable
21278         (this_target_reload): New conditional variable.
21279         (indirect_symref_ok, double_reg_address_ok): Delete.
21280         (spill_indirect_levels): Redefine as a macro.
21281         * target-globals.h (this_target_reload): Declare.
21282         (target_globals): Add a reload field.
21283         (restore_target_globals): Copy the reload field to
21284         this_target_reload.
21285         * target-globals.c: Include hard-reg-set.h.
21286         (default_target_globals): Initialize the reload field.
21287         (save_target_globals): Likewise.
21288
21289 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21290
21291         * rtl.h (target_rtl): Add x_static_reg_base_value.
21292         * alias.c (static_reg_base_value): Redefine as a macro.
21293
21294 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21295
21296         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
21297         (GTFILES): Remove reginfo.c.
21298         * rtl.h (target_rtl): Add x_top_of_stack.
21299         (top_of_stack): New macro.
21300         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
21301         (top_of_stack): Delete.
21302
21303 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21304
21305         * regs.h (target_regs): Add x_hard_regs_of_mode,
21306         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
21307         x_may_move_out_cost and x_last_mode_for_init_move_cost.
21308         (have_regs_of_mode, contains_reg_of_mode, move_cost)
21309         (may_move_in_cost, may_move_out_cost): Redefine as macros.
21310         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
21311         (may_move_in_cost, may_move_out_cost): Delete.
21312         (last_mode_for_init_move_cost): Redefine as a macro.
21313
21314 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21315
21316         * hard-reg-set.h (target_hard_regs): New structure.
21317         (default_target_hard_regs): Declare.
21318         (this_target_hard_regs): Declare as a variable or define as a macro.
21319         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
21320         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
21321         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
21322         (reg_class_size, reg_class_subclasses, reg_class_subunion)
21323         (reg_class_superunion, reg_names): Redefine as macros.
21324         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
21325         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
21326         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
21327         (reg_class_contents, reg_class_size, reg_class_subclasses)
21328         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
21329         (default_target_hard_regs): New variable
21330         (this_target_hard_regs, initial_call_really_used_regs)
21331         (initial_reg_alloc_order): New conditional variables.
21332         (initial_reg_names): New variable.
21333         (init_reg_sets): Assert that initial_call_really_used_regs,
21334         initial_reg_alloc_order and initial_reg_names
21335         are all the same size as their variable counterparts.  Use them to
21336         initialize those counterparts.
21337         * target-globals.h (this_target_hard_regs): Declare.
21338         (target_globals): Add a hard_regs field.
21339         (restore_target_globals): Copy the hard_regs field to
21340         this_target_hard_regs.
21341         * target-globals.c: Include hard-reg-set.h.
21342         (default_target_globals): Initialize the hard_regs field.
21343         (save_target_globals): Likewise.
21344
21345 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21346
21347         * Makefile.in (target-globals.o): Depend on $(RTL_H).
21348         * rtl.h (target_rtl): New structure.
21349         (default_target_rtl): Declare.
21350         (this_target_rtl): Declare as a variable or define as a macro.
21351         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
21352         Redefine as macros.
21353         * emit-rtl.c (default_target_rtl): New variable.
21354         (this_target_rtl): New conditional variable.
21355         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
21356         (return_address_pointer_rtx): Delete.
21357         (initial_regno_reg_rtx): New macro.
21358         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
21359         (init_emit_regs): Likewise.
21360         * target-globals.h (this_target_rtl): Declare.
21361         (target_globals): Add a rtl field.
21362         (restore_target_globals): Copy the rtl field to this_target_rtl.
21363         * target-globals.c: Include rtl.h.
21364         (default_target_globals): Initialize the rtl field.
21365         (save_target_globals): Likewise.
21366
21367 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21368
21369         * Makefile.in (target-globals.o): Depend on $(REGS_H).
21370         * regs.h (target_reg_modes): New structure.
21371         (default_target_reg_modes): Declare.
21372         (this_target_reg_modes): Declare as a variable or define as a macro.
21373         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
21374         * reginfo.c (default_target_reg_modes): New variable.
21375         (this_target_reg_modes): New conditional variable.
21376         (hard_regno_nregs, reg_raw_mode): Delete.
21377         * target-globals.h (this_target_regs): Declare.
21378         (target_globals): Add a regs field.
21379         (restore_target_globals): Copy the regs field to this_target_regs.
21380         * target-globals.c: Include regs.h.
21381         (default_target_globals): Initialize the regs field.
21382         (save_target_globals): Likewise.
21383
21384 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21385
21386         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
21387         * doc/tm.texi: Regenerate.
21388         * Makefile.in (OBJS-common): Add target-globals.o.
21389         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
21390         and target-globals.h.
21391         (target-globals.o): New rule.
21392         (GTFILES): Include $(srcdir)/target-globals.h.
21393         * defaults.h (SWITCHABLE_TARGET): Define.
21394         * gengtype.c (open_base_files): Add target-globals.h to the
21395         list of includes.
21396         * target-globals.h: New file.
21397         * target-globals.c: Likewise.
21398
21399         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
21400         * flags.h (target_flag_state): New structure.
21401         (default_target_flag_state): Declare.
21402         (this_target_flag_state): Declare as a variable or define as a macro.
21403         (align_loops_log): Redefine as a macro.
21404         (align_loops_max_skip, align_jumps_log): Likewise.
21405         (align_jumps_max_skip, align_labels_log): Likewise.
21406         (align_labels_max_skip, align_functions_log): Likewise.
21407         * toplev.c (default_target_flag_state): New variable.
21408         (this_target_flag_state): New conditional variable.
21409         (align_loops_log): Delete.
21410         (align_loops_max_skip, align_jumps_log): Likewise.
21411         (align_jumps_max_skip, align_labels_log): Likewise.
21412         (align_labels_max_skip, align_functions_log): Likewise.
21413         * target-globals.h (this_target_flag_state): Declare.
21414         (target_globals): Add a flag_state field.
21415         (restore_target_globals): Copy the flag_state field to
21416         this_target_flag_state.
21417         * target-globals.c: Include flags.h.
21418         (default_target_globals): Initialize the flag_state field.
21419         (save_target_globals): Likewise.
21420
21421 2010-07-12  Jie Zhang  <jie@codesourcery.com>
21422
21423         * postreload.c (reg_symbol_ref[]): New.
21424         (move2add_use_add2_insn): New.
21425         (move2add_use_add3_insn): New.
21426         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
21427         (move2add_note_store): Likewise.
21428
21429 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
21430
21431         PR rtl-optimization/44752
21432         * genautomata.c (main): Don't emit an empty file even if there
21433         is no automaton.
21434
21435 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21436
21437         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
21438         ix86_solaris_return_in_memory.
21439         * config/i386-protos.h: Reflect this.
21440         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
21441         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
21442         Move ...
21443         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
21444
21445 2010-07-12  Jie Zhang  <jie@codesourcery.com>
21446
21447         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
21448         align the stack when it's going to be saved.
21449
21450 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21451
21452         PR pch/14940
21453         * config/host-solaris.c (mmap_fixed): New function.
21454         (sol_gt_pch_get_address): Use it.
21455         (sol_gt_pch_use_address): Likewise.
21456
21457 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21458
21459         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
21460         pentiumpro on Solaris 8 and 9/x86.
21461         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
21462         Document SSE/SSE2 support.
21463         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
21464
21465 2010-07-12  Andi Kleen  <ak@linux.intel.com>
21466
21467         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
21468         instead of gcc_assert to print better error message for multiple
21469         prevailing defs.
21470
21471 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
21472
21473         * config/i386/i386.c (ix86_asm_output_function_label): Change format
21474         string placeholder from 0x%x to %#x.
21475         (ix86_code_end): Use putc to output '\n'.
21476         (ix86_print_operand) <case ';'>: Use putc to output ';'.
21477
21478 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
21479
21480         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
21481         in directive -export.
21482
21483 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
21484
21485         * reginfo.h (reg_classes_intersect_p): Change arguments type to
21486         reg_class_t.
21487         * rtl.h (reg_classes_intersect_p): Adjust prototype.
21488
21489         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21490         Remove macros.
21491         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
21492         rs6000_memory_move_cost): Remove
21493         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
21494         TARGET_MEMORY_MOVE_COST): Define.
21495         (rs6000_register_move_cost): Make static. Change arguments type from
21496         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
21497         (rs6000_memory_move_cost): Make static. Change arguments type from
21498         'enum reg_class' to reg_class_t.
21499
21500 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
21501
21502         PR middle-end/42505
21503         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
21504         lookup code into....
21505         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
21506         new functions.
21507         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
21508         * cfgloopanal.c (target_clobbered_regs): Define.
21509         (init_set_costs): Initialize target_clobbered_regs.
21510         (estimate_reg_pressure_cost): Add call_p argument.  When true,
21511         adjust the number of available registers to exclude the
21512         call-clobbered registers.
21513         * cfgloop.h (target_clobbered_regs): Declare.
21514         (estimate_reg_pressure_cost): Adjust declaration.
21515         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
21516         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
21517         (determine_set_costs): Dump target_clobbered_regs.
21518         (loop_body_includes_call): New function.
21519         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
21520         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
21521         call_p flag through.
21522         (best_gain_for_invariant): Likewise.
21523         (find_invariants_to_move): Likewise.
21524         (move_single_loop_invariants): Likewise, using already-computed
21525         has_call field.
21526
21527 2010-07-10  Richard Guenther  <rguenther@suse.de>
21528             Joern Rennecke  <joern.rennecke@embecosm.com>
21529
21530         PR debug/44832
21531         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
21532         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
21533         unless they have DECL_IGNORED_P set.
21534
21535 2010-07-10  Richard Guenther  <rguenther@suse.de>
21536
21537         PR lto/44889
21538         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
21539         helper function.
21540         (gimple_types_compatible_p): Similar to pointed-to
21541         types allow and merge a mix of complete and incomplete aggregate.
21542         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
21543         (iterative_hash_gimple_type): Adjust for that.
21544
21545 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
21546
21547         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
21548
21549 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
21550
21551         PR objc/44140
21552         * config/darwin.c (output_objc_section_asm_op): Save and restore
21553         section when outputting ObjC section list.
21554
21555 2010-07-09  Jan Hubicka  <jh@suse.cz>
21556
21557         * lto-streamer-out.c (produce_symtab): Do not write alias
21558         cgraph/varpool nodes.
21559
21560 2010-07-09  Jan Hubicka  <jh@suse.cz>
21561
21562         * tree-inline.c (declare_return_variable): Fix ICE while
21563         inlining DECL_BY_VALUE function not in SSA form
21564
21565 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
21566
21567         PR tree-optimization/44576
21568         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
21569         New.  Pull out from is_loop_prefetching_profitable to implement
21570         the trip count to ahead ratio heuristic.
21571         (mem_ref_count_reasonable_p): New.  Pull out from
21572         is_loop_prefetching_profitable to implement the instruction to
21573         memory reference ratio heuristic.  Also consider not reasonable if
21574         the memory reference count is above a threshold (to avoid
21575         explosive compilation time.
21576         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
21577         is_loop_prefetching_profitable to implement the instruction to
21578         prefetch ratio heuristic.
21579         (is_loop_prefetching_profitable): Removed.
21580         (loop_prefetch_arrays): Distribute the cost analysis across the
21581         function to allow early exit of the prefetch analysis.
21582         is_loop_prefetching_profitable is splitted into three functions,
21583         with each one called as early as possible.
21584         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
21585         number of memory references in a loop is considered too many.
21586
21587 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
21588
21589         * reload.c (find_reloads): Don't clear badop if we have a winreg
21590         alternative, but not win, and the class only has fixed regs.
21591         * hard-reg-set.h (class_only_fixed_regs): Declare.
21592         * reginfo.c (class_only_fixed_regs): New array.
21593         (init_reg_sets_1): Initialize it.
21594         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
21595         discourage alternatives using the stack pointer.
21596
21597         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
21598
21599         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
21600
21601         * config/arm/arm.md (cbranchqi4): Fix array size.
21602         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
21603         calculating length.
21604
21605 2010-07-09  Richard Guenther  <rguenther@suse.de>
21606
21607         * gimple.c (struct type_fixup_s): New struct and VEC type.
21608         (gimple_register_type_fixups): New static global.
21609         (gimple_queue_type_fixup): New function.
21610         (gimple_types_compatible_p): Queue type fixups instead of
21611         applying them here.
21612         (gimple_register_type): Apply queued fixups for the
21613         canonical type.  Empty the type fixup queue.
21614
21615 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21616
21617         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
21618         * configure: Regenerate.
21619         * config.in: Ditto.
21620
21621 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
21622             Denys Vlasenko  <dvlasenk@redhat.com>
21623             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
21624
21625         PR tree-optimization/28632
21626         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
21627         (extract_range_from_binary_expr): Further optimize
21628         BIT_AND_EXPR and BIT_IOR_EXPR.
21629
21630 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
21631
21632         * tree-if-conv.c (fold_or_predicates): New.
21633         (add_to_predicate_list): Call it.
21634
21635 2010-07-09  Richard Guenther  <rguenther@suse.de>
21636
21637         PR middle-end/44890
21638         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
21639         if base is a pointer.
21640         * tree-cfg.c (verify_expr): Update MEM_REF checking.
21641
21642 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
21643
21644         PR target/44877
21645         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
21646         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
21647         builtin mask for load/store builtins.
21648
21649 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21650
21651         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
21652         for "lock addl".
21653         * configure: Regenerate.
21654         * config/i386/i386.c (ix86_print_operand) <case ';'>:
21655         Remove TARGET_MACHO.
21656
21657 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
21658
21659         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
21660         default ISA flags.
21661         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
21662
21663 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
21664
21665         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
21666
21667 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
21668
21669         * config/picochip/picochip.md (commsTestPort): Emit more
21670         efficient sequence for tstport instruction.
21671
21672 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21673
21674         * config/i386/i386.c (ix86_veclib_handler): Make static.
21675
21676 2010-07-09  Richard Guenther  <rguenther@suse.de>
21677
21678         PR tree-optimization/44852
21679         * tree-ssa-alias.c: Include toplev.h for exact_log2.
21680         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
21681         in MEM_REF.
21682         (indirect_refs_may_alias_p): Likewise.
21683         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
21684
21685 2010-07-09  Richard Guenther  <rguenther@suse.de>
21686
21687         PR tree-optimization/44882
21688         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
21689         sets do conflict.
21690         (vectorizable_load): Likewise.
21691
21692 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
21693
21694         PR target/40657
21695         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
21696         All callers changed.
21697         Handle the case when we're called for the epilogue.
21698         (thumb_unexpanded_epilogue): Use it.
21699         (thumb1_expand_epilogue): Likewise.
21700
21701 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
21702
21703         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
21704         both ranges are range_int_cst_p with non-negative minimum,
21705         try harder to derive smaller range.
21706
21707 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21708
21709         * genrecog.c: Include diagnostic-core.h before toplev.h.
21710         * genoutput.c: Likewise.
21711         * genextract.c: Likewise.
21712         * genautomata.c: Likewise.
21713         * genemit.c: Likewise.
21714         * genpeep.c: Likewise.
21715         * genattrtab.c: Likewise.
21716         * genconditions.c: Likewise.
21717         * genpreds.c: Likewise.
21718
21719 2010-07-08  Andi Kleen  <ak@linux.intel.com>
21720
21721         * lto-section-in.c (lto_section_name): Add missing comma.
21722
21723 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
21724
21725         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
21726         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
21727         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
21728         (ia64_override_options): Rename to...
21729         (ia64_option_override): ... this one. Make static.
21730
21731 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21732
21733         PR middle-end/44843
21734         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
21735         pointed-to type of the offset in a MEM_REF to compute the alignment.
21736
21737 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
21738
21739         * final.c (final_scan_insn): Replace
21740         TARGET_UNWIND_INFO macro check by unwind_emit
21741         hook NULL check.
21742         * targhooks.c (default_unwind_emit): Removed.
21743         * targhooks.h (default_unwind_emit): Likewise.
21744         * target.def (unwind_emit): Set default value to NULL.
21745
21746         * config/i386/i386-protos.h (ix86_asm_output_function_label):
21747         New prototype.
21748         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
21749         for NULL fntype argument and allow 64-bit targets.
21750         (ix86_asm_output_function_label): New function.
21751         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
21752         (ix86_handle_fndecl_attribute): Likewise.
21753         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
21754         * doc/doc/tm.texi: Regenerated.
21755         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
21756         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
21757         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
21758         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
21759         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
21760         * config/elfos.h: Likewise.
21761         * config/i386/cygming.h: Likewise.
21762         * config/netbsd-aout.h: Likewise.
21763         * config/openbsd.h: Likewise.
21764         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
21765         by ix86_asm_output_function_label function call.
21766         * varasm.c (assemble_start_function): Use
21767         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
21768
21769 2010-07-08  Jan Hubicka  <jh@suse.cz>
21770
21771         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
21772         New function.
21773         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
21774         Declare.
21775         * ipa-cp.c (ipcp_estimate_growth): Use it.
21776         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
21777         Likewise.
21778
21779 2010-07-08  Jan Hubicka  <jh@suse.cz>
21780
21781         * tree-inline.c (declare_return_variable): Allocate annotation for new
21782         temporary.
21783
21784 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
21785
21786         PR tree-optimization/44710
21787         * tree-if-conv.c (parse_predicate): New.
21788         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
21789         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
21790
21791 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
21792
21793         * common.opt (ftree-loop-if-convert): New flag.
21794         * doc/invoke.texi (ftree-loop-if-convert): Documented.
21795         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
21796         when flag_tree_loop_if_convert is set.
21797
21798 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
21799
21800         * config/i386/i386.c: Use short syntax for function calls
21801         through function pointers.
21802         * config/i386/i386.md: Ditto.
21803
21804 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21805
21806         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
21807
21808 2010-07-08  Richard Guenther  <rguenther@suse.de>
21809
21810         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
21811         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
21812
21813 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
21814
21815         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
21816         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
21817         (loc_list_from_tree): Likewise.
21818         (output_loc_operands): Handle outputting DW_OP_const[48]u
21819         with loc->dtprel set.
21820         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
21821
21822 2010-07-08  Jan Hubicka  <jh@suse.cz>
21823
21824         * ipa.c: Include pointer-set.h
21825         (cgraph_externally_visible_p): New attribute ALIASED;
21826         when in LTO, hidden symbols are local unless they are aliased.
21827         (function_and_variable_visibility): Compute aliased nodes;
21828         handle LTO and hidden symbol on functions and vars.
21829         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
21830         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
21831
21832 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21833
21834         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
21835         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21836         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21837         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21838         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21839         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
21840         (ix86_gen_probe_stack_range): Likewise.
21841         (override_options): Set them.
21842         (ix86_target_stack_probe): New function.
21843         (ix86_compute_frame_layout): Force use of push instructions to
21844         save registers if stack checking with probes is enabled.
21845         (get_scratch_register_on_entry): New function.
21846         (release_scratch_register_on_entry): Likewise.
21847         (ix86_adjust_stack_and_probe): Likewise.
21848         (output_adjust_stack_and_probe): Likewise.
21849         (ix86_emit_probe_stack_range): Likewise.
21850         (output_probe_stack_range): Likewise.
21851         (ix86_expand_prologue): Emit stack checking code if static built-in
21852         stack checking is enabled.
21853         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
21854         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
21855         (output_adjust_stack_and_probe): Likewise.
21856         (output_probe_stack_range): Likewise.
21857         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
21858         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
21859         TARGET_STACK_PROBE.
21860         (allocate_stack_worker_64): Likewise.
21861         (allocate_stack): Likewise.
21862         (adjust_stack_and_probe): New insn.
21863         (probe_stack_range): Likewise.
21864
21865 2010-07-08  Richard Guenther  <rguenther@suse.de>
21866
21867         PR tree-optimization/44831
21868         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
21869         a MEM_REF preserving TBAA info of the original dereference.
21870         Dereference the original pointer if the address is not invariant.
21871         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
21872         at least one invariant address that we are going to dereference.
21873
21874 2010-07-08  Richard Guenther  <rguenther@suse.de>
21875
21876         PR tree-optimization/44861
21877         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
21878         information when building MEM_REFs.
21879         (vectorizable_load): Likewise.
21880         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
21881
21882 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21883
21884         * config/sol2-c.c: Do not include diagnostic-core.h.
21885
21886 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21887
21888         PR bootstrap/44768
21889         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
21890         with respect to current_function_decl. Pass decl of the function.
21891         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
21892         * ipa-inline.c (compute_inline_parameters): Pass decl to
21893         estimated_stack_frame_size.
21894
21895 2010-07-08  Richard Guenther  <rguenther@suse.de>
21896
21897         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
21898         New function.
21899         (valueize_refs): Call it.
21900
21901 2010-07-08  Richard Guenther  <rguenther@suse.de>
21902
21903         PR rtl-optimization/44838
21904         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
21905         SSA form do not use pointer equivalence.
21906
21907 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21908
21909         * dwarf2out.c (AT_linkage_name): Delete.
21910         (add_linkage_attr): New function.
21911         (add_linkage_name): Call it to emit the linkage attribute.
21912         (dwarf2out_finish): Likewise.
21913         (move_linkage_attr): Explicitly accept both attribute variants.
21914
21915 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21916
21917         * toplev.h: Do not include diagnostic-core.h.
21918         Include diagnostic-core.h in every file that includes toplev.h.
21919         * c-tree.h: Do not include toplev.h.
21920         * pretty-print.h: Update comment.
21921         * Makefile.in: Update dependencies.
21922         * alias.c: Include diagnostic-core.h in every file that includes
21923         toplev.h.
21924         * attribs.c: Likewise.
21925         * auto-inc-dec.c: Likewise.
21926         * bb-reorder.c: Likewise.
21927         * bt-load.c: Likewise.
21928         * caller-save.c: Likewise.
21929         * calls.c: Likewise.
21930         * cfg.c: Likewise.
21931         * cfganal.c: Likewise.
21932         * cfgbuild.c: Likewise.
21933         * cfgcleanup.c: Likewise.
21934         * cfghooks.c: Likewise.
21935         * cfgloop.c: Likewise.
21936         * combine.c: Likewise.
21937         * config/alpha/alpha.c: Likewise.
21938         * config/arc/arc.c: Likewise.
21939         * config/arm/arm.c: Likewise.
21940         * config/arm/pe.c: Likewise.
21941         * config/avr/avr.c: Likewise.
21942         * config/bfin/bfin.c: Likewise.
21943         * config/cris/cris.c: Likewise.
21944         * config/crx/crx.c: Likewise.
21945         * config/darwin-c.c: Likewise.
21946         * config/darwin.c: Likewise.
21947         * config/fr30/fr30.c: Likewise.
21948         * config/frv/frv.c: Likewise.
21949         * config/h8300/h8300.c: Likewise.
21950         * config/host-darwin.c: Likewise.
21951         * config/i386/i386.c: Likewise.
21952         * config/i386/netware.c: Likewise.
21953         * config/i386/nwld.c: Likewise.
21954         * config/i386/winnt-cxx.c: Likewise.
21955         * config/i386/winnt-stubs.c: Likewise.
21956         * config/i386/winnt.c: Likewise.
21957         * config/ia64/ia64-c.c: Likewise.
21958         * config/ia64/ia64.c: Likewise.
21959         * config/iq2000/iq2000.c: Likewise.
21960         * config/lm32/lm32.c: Likewise.
21961         * config/m32c/m32c-pragma.c: Likewise.
21962         * config/m32c/m32c.c: Likewise.
21963         * config/m32r/m32r.c: Likewise.
21964         * config/m68hc11/m68hc11.c: Likewise.
21965         * config/m68k/m68k.c: Likewise.
21966         * config/mcore/mcore.c: Likewise.
21967         * config/mep/mep-pragma.c: Likewise.
21968         * config/mep/mep.c: Likewise.
21969         * config/mmix/mmix.c: Likewise.
21970         * config/mn10300/mn10300.c: Likewise.
21971         * config/moxie/moxie.c: Likewise.
21972         * config/pa/pa.c: Likewise.
21973         * config/pdp11/pdp11.c: Likewise.
21974         * config/picochip/picochip.c: Likewise.
21975         * config/rs6000/rs6000-c.c: Likewise.
21976         * config/rs6000/rs6000.c: Likewise.
21977         * config/rx/rx.c: Likewise.
21978         * config/s390/s390.c: Likewise.
21979         * config/score/score.c: Likewise.
21980         * config/score/score3.c: Likewise.
21981         * config/score/score7.c: Likewise.
21982         * config/sh/sh.c: Likewise.
21983         * config/sh/symbian-base.c: Likewise.
21984         * config/sh/symbian-c.c: Likewise.
21985         * config/sh/symbian-cxx.c: Likewise.
21986         * config/sol2-c.c: Likewise.
21987         * config/sol2.c: Likewise.
21988         * config/sparc/sparc.c: Likewise.
21989         * config/spu/spu.c: Likewise.
21990         * config/stormy16/stormy16.c: Likewise.
21991         * config/v850/v850-c.c: Likewise.
21992         * config/v850/v850.c: Likewise.
21993         * config/vax/vax.c: Likewise.
21994         * config/vxworks.c: Likewise.
21995         * config/xtensa/xtensa.c: Likewise.
21996         * convert.c: Likewise.
21997         * cse.c: Likewise.
21998         * cselib.c: Likewise.
21999         * dbgcnt.c: Likewise.
22000         * dbxout.c: Likewise.
22001         * ddg.c: Likewise.
22002         * dominance.c: Likewise.
22003         * emit-rtl.c: Likewise.
22004         * explow.c: Likewise.
22005         * expmed.c: Likewise.
22006         * fixed-value.c: Likewise.
22007         * fold-const.c: Likewise.
22008         * fwprop.c: Likewise.
22009         * gcse.c: Likewise.
22010         * ggc-common.c: Likewise.
22011         * ggc-page.c: Likewise.
22012         * ggc-zone.c: Likewise.
22013         * gimple-low.c: Likewise.
22014         * gimplify.c: Likewise.
22015         * graph.c: Likewise.
22016         * haifa-sched.c: Likewise.
22017         * ifcvt.c: Likewise.
22018         * implicit-zee.c: Likewise.
22019         * integrate.c: Likewise.
22020         * ira-build.c: Likewise.
22021         * ira-color.c: Likewise.
22022         * ira-conflicts.c: Likewise.
22023         * ira-costs.c: Likewise.
22024         * ira-lives.c: Likewise.
22025         * ira.c: Likewise.
22026         * lists.c: Likewise.
22027         * loop-doloop.c: Likewise.
22028         * loop-iv.c: Likewise.
22029         * lto-opts.c: Likewise.
22030         * lto-symtab.c: Likewise.
22031         * main.c: Likewise.
22032         * modulo-sched.c: Likewise.
22033         * optabs.c: Likewise.
22034         * params.c: Likewise.
22035         * plugin.c: Likewise.
22036         * postreload-gcse.c: Likewise.
22037         * postreload.c: Likewise.
22038         * predict.c: Likewise.
22039         * profile.c: Likewise.
22040         * real.c: Likewise.
22041         * regcprop.c: Likewise.
22042         * reginfo.c: Likewise.
22043         * regmove.c: Likewise.
22044         * reorg.c: Likewise.
22045         * resource.c: Likewise.
22046         * rtl.c: Likewise.
22047         * rtlanal.c: Likewise.
22048         * sched-deps.c: Likewise.
22049         * sched-ebb.c: Likewise.
22050         * sched-rgn.c: Likewise.
22051         * sdbout.c: Likewise.
22052         * sel-sched-dump.c: Likewise.
22053         * sel-sched-ir.c: Likewise.
22054         * simplify-rtx.c: Likewise.
22055         * stmt.c: Likewise.
22056         * stor-layout.c: Likewise.
22057         * store-motion.c: Likewise.
22058         * targhooks.c: Likewise.
22059         * tree-cfg.c: Likewise.
22060         * tree-cfgcleanup.c: Likewise.
22061         * tree-dump.c: Likewise.
22062         * tree-eh.c: Likewise.
22063         * tree-inline.c: Likewise.
22064         * tree-nomudflap.c: Likewise.
22065         * tree-object-size.c: Likewise.
22066         * tree-optimize.c: Likewise.
22067         * tree-outof-ssa.c: Likewise.
22068         * tree-phinodes.c: Likewise.
22069         * tree-profile.c: Likewise.
22070         * tree-ssa-ccp.c: Likewise.
22071         * tree-ssa-coalesce.c: Likewise.
22072         * tree-ssa-live.c: Likewise.
22073         * tree-ssa-loop-niter.c: Likewise.
22074         * tree-ssa-loop-prefetch.c: Likewise.
22075         * tree-ssa-loop.c: Likewise.
22076         * tree-ssa-structalias.c: Likewise.
22077         * tree-ssa-uninit.c: Likewise.
22078         * tree-ssa.c: Likewise.
22079         * tree-vect-data-refs.c: Likewise.
22080         * tree-vect-loop-manip.c: Likewise.
22081         * tree-vect-loop.c: Likewise.
22082         * tree-vect-patterns.c: Likewise.
22083         * tree-vect-stmts.c: Likewise.
22084         * tree-vrp.c: Likewise.
22085         * varasm.c: Likewise.
22086         * vec.c: Likewise.
22087         * web.c: Likewise.
22088         * xcoffout.c: Likewise.
22089
22090 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
22091
22092         * gengtype.c (write_field_root): New function.
22093         (write_root): Use it.
22094
22095 2010-07-07  Wei Guozhi  <carrot@google.com>
22096
22097         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
22098         of lowest bits to lshift/compare): Add a missing line.
22099
22100 2010-07-07  Wei Guozhi  <carrot@google.com>
22101
22102         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
22103         of lowest bits to lshift/compare): New.
22104
22105 2010-07-07  Tom Tromey  <tromey@redhat.com>
22106
22107         * doc/tm.texi: Update.
22108         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
22109         Add @hook.
22110         * target.def (want_debug_pub_sections): New hook.
22111         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
22112         * dwarf2out.c (add_pubname_string): Check
22113         targetm.want_debug_pub_sections.
22114         (add_pubname): Likewise.
22115         (add_pubtype): Likewise.
22116
22117 2010-07-07  Jie Zhang  <jie@codesourcery.com>
22118
22119         * genautomata.c (output_automata_list_min_issue_delay_code):
22120         Correctly decompress min_issue_delay.
22121
22122 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
22123
22124         PR rtl-optimization/44404
22125         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
22126         possible, use reg_overlap_mentioned_p instead.
22127
22128 2010-07-07  Duncan Sands  <baldrick@free.fr>
22129
22130         PR middle-end/41355
22131         * tree.c (build_function_type_skip_args): Copy the original type using
22132         build_distinct_type_copy rather than copy_node.
22133
22134 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
22135
22136         PR target/44850
22137         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
22138         revision 161876.
22139         (ix86_expand_prologue): Likewise.
22140         (ix86_handle_fndecl_attribute): Likewise.
22141         (ix86_asm_declare_function_name): Likewise.
22142         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
22143         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
22144         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
22145         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
22146         * doc/extend.texi: Likewise.
22147
22148 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
22149
22150         PR target/44844
22151         * config/i386/i386.md (rdrand<mode>): Changed to expand to
22152         retry if the carry flag isn't valid.
22153         (rdrand<mode>_1): New.
22154
22155 2010-07-07  Richard Guenther  <rguenther@suse.de>
22156
22157         PR middle-end/44790
22158         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
22159         for expanding the constant offset for MEM_REFs.
22160
22161 2010-07-07  Richard Guenther  <rguenther@suse.de>
22162
22163         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
22164         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
22165         * gimple.h (is_gimple_operand): Remove.
22166         * gimple.c (is_gimple_operand): Likewise.
22167         (walk_gimple_op): Fix wi->val_only setting for calls.
22168         * tree-cfg.c (verify_gimple_call): Fix argument validation.
22169         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
22170         invalid gimple calls.
22171
22172 2010-07-06  Jan Hubicka  <jh@suse.cz>
22173
22174         * lto-cgraph.c (output_cgraph): Add missing declaration.
22175
22176 2010-07-06  Jan Hubicka  <jh@suse.cz>
22177
22178         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
22179         partition.
22180
22181 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
22182
22183         * doc/gimple.texi (GIMPLE_DEBUG): Document.
22184         * doc/rtl.texi (Debug Information): New node.
22185         (NOTE_INSN_VAR_LOCATION): Document.
22186         (debug_insn): Likewise.
22187         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
22188
22189 2010-07-07  Jan Hubicka  <jh@suse.cz>
22190
22191         With parts by Richard Guenther.
22192
22193         PR middle-end/44813
22194         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
22195         for functions passed by reference.
22196         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
22197         in memory when passed by reference.
22198         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
22199         beggining.
22200         * ipa-split.c (split_function): Cleanup way return value is passed;
22201         handle SSA DECL_BY_REFERENCE retvals.
22202         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
22203         DECL_BY_REFERENCE is set.
22204         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
22205         find_what_p_points_to): Handle RESULT_DECL.
22206         * tree-inline.c (declare_return_variable): Get new entry_block argument;
22207         when passing by reference ensure that RESULT_DECL is gimple_val.
22208         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
22209         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
22210
22211 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
22212
22213         PR rtl-optimization/44787
22214         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
22215         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
22216
22217 2010-07-06  Jan Hubicka  <jh@suse.cz>
22218
22219         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
22220         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
22221         with body can prevail.
22222         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
22223         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
22224         * cgraph.c (cgraph_get_node_or_alias): New function.
22225         * cgraph.h (cgraph_get_node_or_alias): Declare.
22226
22227 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
22228
22229         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
22230         support.
22231         (ix86_expand_prologue): Likewise.
22232         (ix86_handle_fndecl_attribute): Likewise.
22233         (ix86_asm_declare_function_name): New function for
22234         ASM_DECLARE_FUNCTION_NAME.
22235         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
22236         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
22237         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
22238         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
22239         * doc/extend.texi: Adjust documentation about ms_hook_prologue
22240         attribute.
22241
22242 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22243
22244         * config/i386/i386.md (immediate_operand): New mode attribute.
22245
22246         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
22247         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
22248         using P mode iterator.
22249         (pro_epilogue_adjust_stack_di_2): Rename from
22250         pro_epilogue_adjust_stack_rex64_2.
22251
22252         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
22253
22254 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22255
22256         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
22257         through gen_mov_insv_1 function pointer.
22258         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
22259         gen_truncxf<mode>2 through gen_truncxf function pointer.
22260         (remainder<mode>3): Ditto.
22261         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
22262         (allocate_stack): Call gen_allocate_stack_worker_64 or
22263         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
22264         function pointer.
22265         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
22266         function pointer.
22267
22268 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22269
22270         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
22271         operand constraint instead of <r><i>m.
22272
22273 2010-07-06  Richard Guenther  <rguenther@suse.de>
22274
22275         PR middle-end/44828
22276         * convert.c (convert_to_integer): Watch out for overflowing
22277         MULT_EXPR as well.
22278
22279 2010-07-05  Jan Hubicka  <jh@suse.cz>
22280
22281         * lto-streamer.c (write_symbol_vec): Rename to ...
22282         (write_symbol) ... this one; write only symbol given and when
22283         present in cache. Sanity check that what is defined is present
22284         in cgraph/varpool with body/finalized decl.
22285         (write_symbols_of_kind): Remove.
22286         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
22287         pairs to produce symtab.
22288         (produce_asm_for_decls): Update call of produce_symtab; don't do so
22289         when doing WPA streaming.
22290
22291 2010-07-05  Jan Hubicka  <jh@suse.cz>
22292
22293         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
22294         function is still available to fold into.
22295
22296 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22297
22298         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
22299         * function.h (struct_function): Change type of local_decls field
22300         to a VEC.
22301         (add_local_decl): New function.
22302         (FOR_EACH_LOCAL_DECL): New macro.
22303         * cfgexpand.c (init_vars_expansion): Adjust for new type of
22304         cfun->local_decls.
22305         (estimated_stack_frame_size): Likewise.
22306         (expand_used_vars): Likewise.
22307         * cgraphbuild.c (build_cgraph_edges): Likewise.
22308         * function.c (instantiate_decls_1): Likewise.
22309         * ipa-struct-reorg.c (build_data_structure): Likewise.
22310         * ipa-type-escape.c (analyze_function): Likewise.
22311         * lto-streamer-in.c (input_function): Likewise.
22312         * lto-streamer-out.c (output_function): Likewise.
22313         * tree-ssa-live.c (remove_unused_locals): Likewise.
22314         * tree.c (free_lang_data_in_decl): Likewise.
22315         (find_decls_types_in_node): Likewise.
22316         * omp-low.c (remove_exit_barrier): Likewise.
22317         (expand_omp_taskreg): Likewise.
22318         (list2chain): Rename to...
22319         (vec2chain): ...this.  Adjust.
22320         * cgraphunit.c (assemble_thunk): Call add_local_decl.
22321         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
22322         * gimple-low.c (record_vars_into): Likewise.
22323         * tree-inline.c (remap_decls): Likewise.
22324         (declare_return_variable): Likewise.
22325         (declare_inline_vars): Likewise.
22326         (copy_forbidden): Adjust for new type of cfun->local_decls.
22327         (add_local_variables): New function.
22328         (expand_call_inline): Call it.
22329         (tree_function_versioning): Likewise.
22330
22331 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
22332
22333         AVX Programming Reference (June, 2010)
22334         * config/i386/cpuid.h (bit_F16C): New.
22335         (bit_RDRND): Likewise.
22336         (bit_FSGSBASE): Likewise.
22337
22338         * config/i386/i386-builtin-types.def: Add
22339         "DEF_FUNCTION_TYPE (UINT16)", function types for
22340         float16 <-> float conversions and
22341         "DEF_FUNCTION_TYPE (VOID, UINT64)".
22342
22343         * config/i386/i386-c.c (ix86_target_macros_internal): Support
22344         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
22345         OPTION_MASK_ISA_F16C.
22346
22347         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
22348         (OPTION_MASK_ISA_RDRND_SET): Likewise.
22349         (OPTION_MASK_ISA_F16C_SET): Likewise.
22350         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
22351         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
22352         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
22353         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
22354         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
22355         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
22356         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
22357         (override_options): Handle them.
22358         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
22359         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
22360         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
22361         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
22362         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
22363         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
22364         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
22365         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
22366         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
22367         (bdesc_args): Likewise.
22368         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
22369         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
22370         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
22371         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
22372         Handle non-memory store.
22373
22374         * config/i386/i386.h (TARGET_FSGSBASE): New.
22375         (TARGET_RDRND): Likewise.
22376         (TARGET_F12C): Likewise.
22377
22378         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
22379         (UNSPEC_VCVTPS2PH): Likewise.
22380         (UNSPECV_RDFSBASE): Likewise.
22381         (UNSPECV_RDGSBASE): Likewise.
22382         (UNSPECV_WRFSBASE): Likewise.
22383         (UNSPECV_WRGSBASE): Likewise.
22384         (UNSPECV_RDRAND): Likewise.
22385         (rdfsbase<mode>): Likewise.
22386         (rdgsbase<mode>): Likewise.
22387         (wrfsbase<mode>): Likewise.
22388         (wrgsbase<mode>): Likewise.
22389         (rdrand<mode>): Likewise.
22390
22391         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
22392
22393         * config/i386/immintrin.h (_rdrand_u16): New.
22394         (_rdrand_u32): Likewise.
22395         (_readfsbase_u32): Likewise.
22396         (_readfsbase_u64): Likewise.
22397         (_readgsbase_u32): Likewise.
22398         (_readgsbase_u64): Likewise.
22399         (_writefsbase_u32): Likewise.
22400         (_writefsbase_u64): Likewise.
22401         (_writegsbase_u32): Likewise.
22402         (_writegsbase_u64): Likewise.
22403         (_rdrand_u64): Likewise.
22404         (_cvtsh_ss): Likewise.
22405         (_mm_cvtph_ps): Likewise.
22406         (_mm256_cvtph_ps): Likewise.
22407         (_cvtss_sh): Likewise.
22408         (_mm_cvtps_ph): Likewise.
22409         (_mm256_cvtps_ph): Likewise.
22410
22411         * config/i386/sse.md (vcvtph2ps): New.
22412         (*vcvtph2ps_load): Likewise.
22413         (vcvtph2ps256): Likewise.
22414         (vcvtps2ph): Likewise.
22415         (*vcvtps2ph): Likewise.
22416         (*vcvtps2ph_store): Likewise.
22417         (vcvtps2ph256): Likewise.
22418
22419         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
22420
22421         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
22422
22423 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
22424
22425         PR bootstrap/44512
22426         * genenums.c (main): Output include of insn-constants.h
22427         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
22428
22429 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
22430
22431         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
22432         (override_options): Initialize it.
22433         (ix86_expand_prologue): Use it.
22434
22435 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
22436
22437         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
22438
22439 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
22440
22441         * double-int.h (fit_double_type): Remove declaration.
22442         * double-int.c (fit_double_type): Remove function.
22443         * tree.h (int_fits_type_p): Adjust prototype.
22444         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
22445         instead of fit_double_type.
22446         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
22447         instead of fit_double_type and build_int_cst_wide.
22448         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
22449         instead of fit_double_type and build_int_cst_wide.
22450         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
22451         of fit_double_type.
22452
22453 2010-07-05  Jan Hubicka  <jh@suse.cz>
22454
22455         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
22456         in_other_partition.
22457         * lto-cgraph.c (referenced_from_other_partition_p,
22458         reachable_from_other_partition_p): Use in_other_partition flags.
22459         (output_node, output_varpool_node): COMDAT nodes always have private
22460         copies and thus are never used from other partition.
22461
22462 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
22463
22464         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22465         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
22466         * config/ia64/ia64.c Include reload.h.
22467         (ia64_memory_move_cost): New function.
22468         (TARGET_MEMORY_MOVE_COST): Define.
22469         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
22470         memory_move_cost.
22471
22472 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
22473
22474         PR middle-end/42505
22475         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
22476         comments about cost model.
22477         (try_add_cand_for):  Add second strategy for choosing initial set
22478         based on original IVs, controlled by ORIGINALP argument.
22479         (get_initial_solution): Add ORIGINALP argument.
22480         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
22481         (find_optimal_iv_set): Try two different strategies for choosing
22482         the IV set, and return the one with lower cost.
22483
22484 2010-07-05  Richard Guenther  <rguenther@suse.de>
22485
22486         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
22487
22488 2010-07-05  Richard Guenther  <rguenther@suse.de>
22489
22490         * tree.c (reference_alias_ptr_type): New function.
22491         * tree.h (reference_alias_ptr_type): Declare.
22492         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
22493         allow non-TARGET_MEM_REF new refs.
22494         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
22495         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
22496         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
22497         (create_mem_ref): Get alias pointer type.  Adjust calls to
22498         create_mem_ref_raw.
22499         (maybe_fold_tmr): Likewise.
22500         * tree-flow.h (create_mem_ref): Adjust prototype.
22501
22502 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
22503
22504         PR c++/44808
22505         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
22506         *from_p is VAR_DECL.
22507
22508 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22509
22510         * tree.h (build_call_list): Remove.
22511         * tree.c (build_call_list): Remove.
22512
22513 2010-07-05  Richard Guenther  <rguenther@suse.de>
22514
22515         * double-int.h (double_int_sub): Declare.
22516         * double-int.c (double_int_sub): New function.
22517         * dwarf2out.c (field_byte_offset): Use it.
22518         * fixed-value.c (do_fixed_add): Likewise.
22519         (do_fixed_multiply): Likewise.
22520         (do_fixed_divide): Likewise.
22521         * tree-predcom.c (add_ref_to_chain): Likewise.
22522         (determine_roots_comp): Likewise.
22523         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
22524
22525 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22526
22527         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
22528         implementations.
22529
22530 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
22531
22532         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
22533         * arm-modes.def (CC_NOTB): Don't define.
22534         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
22535         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
22536         (LTUGEU): New code_iterator.
22537         (cnb, optab): New corresponding code_attrs.
22538         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
22539         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
22540         using LTUGEU.
22541         (addsi3_carryin_shift_<optab>): Likewise.
22542         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
22543         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
22544         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
22545         (subsi3_compare): Renamed from subsi3_compare0_c.
22546         Change CC_NOTB to CC.
22547         (arm_subsi3_insn): Allow constants for operand 0.
22548         (compare_scc peephole for eq case): New.
22549         (compare_scc splitters): Change CC_NOTB to CC.
22550
22551 2010-07-05  Richard Guenther  <rguenther@suse.de>
22552
22553         * tree-ssa-loop-im.c (for_each_index): Do not handle
22554         ALIGN_INDIRECT_REF.
22555         (gen_lsm_tmp_name): Likewise.
22556         * tree-dump.c (dequeue_and_dump): Likewise.
22557         * tree-pretty-print.c (dump_generic_node): Likewise.
22558         (op_code_prio): Likewise.
22559         (op_symbol_code): Likewise.
22560         * tree.c (staticp): Likewise.
22561         (build1_stat): Likewise.
22562         * tree.h (INDIRECT_REF_P): Likewise.
22563         * fold-const.c (maybe_lvalue_p): Likewise.
22564         (operand_equal_p): Likewise.
22565         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
22566         (ao_ref_init_from_vn_reference): Likewise.
22567         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
22568         (find_interesting_uses_address): Likewise.
22569         * dwarf2out.c (loc_list_from_tree): Likewise.
22570         * gimplify.c (gimplify_expr): Likewise.
22571         * tree-eh.c (tree_could_trap_p): Likewise.
22572         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
22573         * cfgexpand.c (expand_debug_expr): Likewise.
22574         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
22575         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
22576         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
22577         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
22578         * tree-ssa-operands.c (get_expr_operands): Likewise.
22579         * expr.c (safe_from_p): Likewise.
22580         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
22581         * tree-vect-data-refs.c (vect_setup_realignment): Build
22582         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
22583         * tree-vect-stmts.c (vectorizable_load): Likewise.
22584         * tree.def (ALIGN_INDIRECT_REF): Remove.
22585
22586 2010-07-05  Richard Guenther  <rguenther@suse.de>
22587
22588         PR tree-optimization/44784
22589         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
22590         for inserted stmts.
22591         (find_or_generate_expression): Fix SCCVN insertion check.
22592
22593 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
22594
22595         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
22596         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
22597         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
22598         directives.
22599
22600 2010-07-05  Ira Rosen  <irar@il.ibm.com>
22601
22602         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
22603         statements that are not vectorized.
22604         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
22605         in INSIDE_COST.
22606
22607 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
22608
22609         PR bootstrap/44820
22610         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
22611
22612 2010-07-05  Richard Guenther  <rguenther@suse.de>
22613
22614         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
22615         RESULT_DECLs properly.
22616
22617 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
22618
22619         PR rtl-optimization/44695
22620         * config/i386/i386.md (extract_code): Removed.
22621         (<u>divmodqi4): Likewise.
22622         (divmodqi4): New.
22623         (udivmodqi4): Likewise.
22624         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
22625         (udivmodhiqi3): Likewise.
22626
22627 2010-07-04  Jan Hubicka  <jh@suse.cz>
22628
22629         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
22630
22631 2010-07-04  Jan Hubicka  <jh@suse.cz>
22632
22633         * cgraphunit.c (init_cgraph): Only initialize dump file if it
22634         is not already initialized.
22635
22636 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22637
22638         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
22639         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
22640         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
22641         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
22642         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
22643         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
22644         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
22645         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
22646         (sync_new_nand_optab): Redefine as macros.
22647         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
22648         Delete.
22649         (direct_optab_index): New enum.
22650         (direct_optab_d): New structure.
22651         (direct_optab): New typedef.
22652         (direct_optab_table): Declare.
22653         (direct_optab_handler, set_direct_optab_handler): New functions.
22654         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
22655         (sync_lock_release_optab): New macros.
22656         * optabs.c (direct_optab_table): New variable.
22657         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
22658         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
22659         cmpstr_optab and cmpstrn_optab.
22660         (emit_conditional_move): Likewise for movcc_optab.
22661         (can_conditionally_move_p): Likewise for movcc_gen_code.
22662         (init_insn_codes): Clear direct_optab_table.
22663         (init_optabs): Don't initialize the new "direct optabs" here.
22664         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
22665         vcond_gen_code.
22666         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
22667         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
22668         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
22669         (expand_sync_operation): Likewise other sync_*_optabs.
22670         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
22671         to sync_compare_and_swap_optab.
22672         (expand_sync_lock_test_and_set): Use direct_optab_handler for
22673         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
22674         to the names of both.
22675         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
22676         cmpstr_optab and cmpstrn_optab.
22677         (expand_builtin_lock_release): Likewise sync_lock_release.
22678         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
22679         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
22680         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
22681         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
22682         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
22683         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
22684         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
22685         (sync_lock_test_and_set, sync_lock_release): Delete.
22686         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
22687         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
22688         * genopinit.c (optabs): Use set_direct_optab_handler for the new
22689         macro optabs.
22690         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
22691         the "optab" local variable.  Use direct_optab_handler for optab and
22692         sync_compare_and_swap_optab.
22693         * reload1.c (reload_in_optab, reload_out_optab): Delete.
22694         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
22695         reload_in_optab and reload_out_optab.
22696         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
22697         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
22698         * config/pa/pa.c (pa_secondary_reload): Likewise.
22699         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
22700         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
22701         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
22702         (VMSupportsCS8_builtin): Likewise.
22703
22704 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22705
22706         * optabs.h (optab_handlers): Change type of insn_code to int.
22707         (optab_handler, set_optab_handler, convert_optab_handler)
22708         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
22709         CODE_FOR_nothing".
22710         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
22711         (init_insn_codes): Zero both the above arrays.
22712         (init_optabs): Never call init_insn_codes first time around.
22713
22714 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22715
22716         * optabs.h (optab_handler, convert_optab_handler): Turn into
22717         inline functions that return an insn code.
22718         (set_optab_handler, set_convert_optab_handler): New functions.
22719         * builtins.c: Replace optab_handler(X)->insn_code with
22720         optab_handler or set_optab_handler thoughout.  Likewise
22721         convert_optab_handler(X)->insn_code with convert_optab_handler
22722         and set_convert_optab_handler.
22723         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
22724         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
22725         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
22726         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
22727         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
22728         config/spu/spu.c: Likewise.
22729
22730 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
22731
22732         PR target/44531
22733         * config.gcc (sh*-*-*): Use regular expressions instead of
22734         the 'i' modifier for sed substitutions.
22735
22736 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
22737
22738         * gimple.c (gimple_body): Comments added.
22739
22740 2010-07-04  Richard Guenther  <rguenther@suse.de>
22741
22742         PR middle-end/44809
22743         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
22744         of an INDIRECT_REF.
22745
22746 2010-07-04  Richard Guenther  <rguenther@suse.de>
22747
22748         PR tree-optimization/44479
22749         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
22750         extra SSA name copy statements which preserves points-to
22751         information.
22752         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
22753         Copy points-to information for all pointers.  Properly handle
22754         MEM_REFs.
22755         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
22756         copy statements.
22757         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
22758         dependency.
22759
22760 2010-07-04  Richard Guenther  <rguenther@suse.de>
22761
22762         PR middle-end/44785
22763         * tree-inline.c (initialize_inlined_parameters): Do not
22764         re-use pointer-map slot over remap_type call.
22765
22766 2010-07-04  Richard Guenther  <rguenther@suse.de>
22767
22768         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
22769
22770 2010-07-04  Richard Guenther  <rguenther@suse.de>
22771
22772         PR tree-optimization/44656
22773         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
22774         again after value-replacing in the defintions lhs.
22775
22776 2010-07-04  Ira Rosen  <irar@il.ibm.com>
22777             Revital Eres  <eres@il.ibm.com>
22778
22779         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
22780         Document new arguments.
22781         * doc/tm.texi: Regenerate.
22782         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
22783         Handle unaligned store.
22784         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
22785         * target.def (builtin_vectorization_cost): Add new arguments.
22786         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
22787         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
22788         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
22789         (vect_vfa_segment_size): Fix indentation.
22790         * tree-vectorizer.h (struct _vect_peel_info): New.
22791         (struct _vect_peel_extended_info): New.
22792         (struct _loop_vec_info): Add new field for peeling hash table and a
22793         macro for its access.
22794         (VECT_MAX_COST): Define.
22795         (vect_get_load_cost): Declare.
22796         (vect_get_store_cost, vect_get_known_peeling_cost,
22797         vect_get_single_scalar_iteraion_cost): Likewise.
22798         (vect_supportable_dr_alignment): Add new argument.
22799         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
22800         field.
22801         (destroy_loop_vec_info): Free peeling hash table.
22802         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
22803         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
22804         vect_analyze_slp. Fix indentation.
22805         (vect_get_single_scalar_iteraion_cost): New function.
22806         (vect_get_known_peeling_cost): Likewise.
22807         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
22808         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
22809         statement. Move outside cost calculation inside unknown peeling case.
22810         Call vect_get_known_peeling_cost for known amount of peeling.
22811         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
22812         reference to the print message of forced alignment.
22813         (vect_verify_datarefs_alignment): Update call to
22814         vect_supportable_dr_alignment.
22815         (vect_get_data_access_cost): New function.
22816         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
22817         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
22818         vect_peeling_hash_choose_best_peeling): Likewise.
22819         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
22820         to store all the accesses in the loop and find best possible access to
22821         align using peeling for known alignment case. For unknown alignment
22822         check if stores are preferred or if peeling is worthy.
22823         (vect_find_same_alignment_drs): Analyze pairs of loads too.
22824         (vect_supportable_dr_alignment): Add new argument and check aligned
22825         accesses according to it.
22826         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
22827         (cost_for_stmt): Call vect_get_stmt_cost.
22828         (vect_model_simple_cost): Likewise.
22829         (vect_model_store_cost): Call vect_get_stmt_cost. Call
22830         vect_get_store_cost to calculate the cost of the statement.
22831         (vect_get_store_cost): New function.
22832         (vect_model_load_cost): Call vect_get_stmt_cost. Call
22833         vect_get_load_cost to calculate the cost of the statement.
22834         (vect_get_load_cost): New function.
22835         (vectorizable_store): Update call to vect_supportable_dr_alignment.
22836         (vectorizable_load): Likewise.
22837         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
22838         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
22839         arguments. Handle unaligned store.
22840         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
22841         (rs6000_builtin_support_vector_misalignment): Return true for word and
22842         double word alignments for VSX.
22843         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
22844         vect_supportable_dr_alignment and builtin_vectorization_cost.
22845
22846 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22847
22848         PR target/44597
22849         * config/pa/predicates.md (prefetch_cc_operand): Remove.
22850         (prefetch_nocc_operand): Likewise.
22851         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
22852         (prefetch_20): New insn.
22853         (prefetch_cc): Remove.
22854         (prefetch_nocc): Likewise.
22855
22856 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22857
22858         * expr.c (vector_mode_valid_p): Move to c-common.c.
22859         * expr.h (vector_mode_valid_p): Do not declare here.
22860         * system.h: Poison GCC_EXPR_H in front-ends.
22861         * Makefile.in: Update dependencies.
22862
22863 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22864
22865         PR target/44705
22866         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
22867
22868 2010-07-03  Jan Hubicka  <jh@suse.cz>
22869
22870         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
22871         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
22872         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
22873         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
22874         Likewise.
22875
22876         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
22877         Update timevars.V
22878         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
22879         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
22880         TV_IPA_LTO_DECL_OUT): New.
22881         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
22882
22883 2010-07-03  Jan Hubicka  <jh@suse.cz>
22884
22885         * ipa-inline.c (update_edge_key): Break out from ...
22886         update_callers_keys): ... here;
22887         (update_callee_keys): Update only the edges from caller to callee.
22888         (update_all_calle_keys): Do what update_calle_keys did.
22889         (decide_inlining_of_small_functions): Avoid recomputing of all
22890         callees when badness increase.
22891
22892 2010-07-03  Jie Zhang  <jie@codesourcery.com>
22893
22894         * config/arm/arm.c (arm_attr_length_move_neon): New.
22895         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
22896         * config/arm/neon.md (define_mode_attr V_slen): Remove.
22897         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
22898         to compute length attribute.
22899
22900 2010-07-03  Jie Zhang  <jie@codesourcery.com>
22901
22902         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
22903         as predicate for operand 1 and remove its constraint.
22904         * config/arm/predicates.md (vfp_register_operand): New.
22905         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
22906         (*push_fp_multi): Likewise.
22907
22908 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
22909
22910         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
22911
22912 2010-07-03  Jan Hubicka  <jh@suse.cz>
22913
22914         * config/i386/i386.c (override_options): Revert accidental commit.
22915
22916 2010-07-02  Le-Chun Wu  <lcwu@google.com>
22917
22918         PR c++/44128
22919         * doc/invoke.texi: Update documentation of -Wshadow.
22920
22921 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
22922             Julian Brown  <julian@codesourcery.com>
22923             Sandra Loosemore  <sandra@codesourcery.com>
22924
22925         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
22926         comparisons.  Adjust to take both operands.
22927         (arm_select_cc_mode): Handle DImode comparisons.
22928         (arm_gen_compare_reg): Generate a scratch register for DImode
22929         comparisons which require one.  Use xor for Thumb equality checks.
22930         (arm_const_double_by_immediates): New.
22931         (arm_print_operand): Allow 'Q' and 'R' for constants.
22932         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
22933         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
22934         arm_canonicalize_comparison.
22935         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
22936         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
22937         prototype.
22938         (arm_const_double_by_immediates): Declare.
22939         * config/arm/constraints.md (Di): New constraint.
22940         * config/arm/predicates.md (arm_immediate_di_operand)
22941         (arm_di_operand, cmpdi_operand): New.
22942         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
22943         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
22944         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
22945         (cstoredi4): Handle non-Cirrus also.
22946
22947 2010-07-02  Julian Brown  <julian@codesourcery.com>
22948             Sandra Loosemore  <sandra@codesourcery.com>
22949
22950         PR target/43703
22951         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
22952         (smax<mode>3): Disable for NEON float modes when
22953         flag_unsafe_math_optimizations is false.
22954         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
22955         (*mul<mode>3_neon)
22956         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
22957         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
22958         for NEON float modes when flag_unsafe_math_optimizations is false.
22959         (quad_halves_<code>v4sf): Only enable if
22960         flag_unsafe_math_optimizations is true.
22961         * doc/invoke.texi (ARM Options): Add note about floating point
22962         vectorization requiring -funsafe-math-optimizations.
22963
22964 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22965             Julian Brown  <julian@codesourcery.com>
22966
22967         * config/arm/neon.md (UNSPEC_VABA): Delete.
22968         (UNSPEC_VABAL): Delete.
22969         (UNSPEC_VABS): Delete.
22970         (UNSPEC_VMUL_N): Delete.
22971         (adddi3_neon): New.
22972         (subdi3_neon): New.
22973         (mul<mode>3add<mode>_neon): Make the pattern named.
22974         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
22975         (neon_vadd<mode>): Replace with define_expand, and move the remaining
22976         unspec parts...
22977         (neon_vadd<mode>_unspec): ...to this.
22978         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
22979         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
22980         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
22981         (neon_vaba<mode>): Rewrite in terms of vabd.
22982         (neon_vabal<mode>): Rewrite in terms of vabdl.
22983         (neon_vabs<mode>): Rewrite without unspec.
22984         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
22985         (*arm_subdi3): Likewise.
22986         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
22987         No_op attribute to disable assembly output checks.
22988         * config/arm/arm_neon.h: Regenerated.
22989         * doc/arm-neon-intrinsics.texi: Regenerated.
22990
22991 2010-07-02  Jan Hubicka  <jh@suse.cz>
22992
22993         * ipa-split.c (split_function): For aggregate values, set the return
22994         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
22995         *<retval> = fncall.part ().
22996         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
22997
22998 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22999
23000         * config/arm/neon.md (UNSPEC_VAND): Delete.
23001         (UNSPEC_VBIC): Delete.
23002         (UNSPEC_VCLZ): Delete.
23003         (UNSPEC_VCNT): Delete.
23004         (UNSPEC_VEOR): Delete.
23005         (UNSPEC_VORN): Delete.
23006         (UNSPEC_VORR): Delete.
23007         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
23008         core registers too.
23009         (anddi3_neon): Likewise.
23010         (orndi3_neon): Likewise.
23011         (bicdi3_neon): Likewise.
23012         (xordi3_neon): Likewise.
23013         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
23014         rid of unspec and handle unused operand.
23015         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
23016         * config/arm/predicates.md (imm_for_neon_logic_operand):
23017         Require TARGET_NEON.
23018         (imm_for_neon_inv_logic_operand): Likewise.
23019         * config/arm/arm.md (define_split for logical_binary_operator):
23020         Disable for NEON registers.
23021         (anddi3): Add new define_expand, and rename the insn.  Disable
23022         this insn for NEON, where anddi3_neon now applies.
23023         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
23024         (iordi3): As for anddi3.
23025         (xordi3): Likewise.
23026         * config/arm/neon.ml (Vand): Split DImode variants and mark them
23027         as No_op to disable testing for exact instruction match.
23028         (Vorr): Likewise.
23029         (Veor): Likewise.
23030         (Vbic): Likewise.
23031         (Vorn): Likewise.
23032         * config/arm/arm_neon.h: Regenerated.
23033         * doc/arm-neon-intrinsics.texi: Regenerated.
23034
23035 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
23036
23037         * expr.h (emit_stack_probe): Declare.
23038         * explow.c (emit_stack_probe): Make global.
23039         (anti_adjust_stack_and_probe): Fix comments.
23040         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
23041         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
23042         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
23043         * config/sparc/sparc.c: Include except.h.
23044         (sparc_emit_probe_stack_range): New function.
23045         (output_probe_stack_range): Likewise.
23046         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
23047         built-in stack checking is enabled.
23048         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
23049         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
23050         (probe_stack_range): New insn.
23051
23052 2010-07-02  Richard Guenther  <rguenther@suse.de>
23053
23054         PR target/43958
23055         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
23056         for argument alignment.
23057
23058 2010-07-02  Jan Hubicka  <jh@suse.cz>
23059
23060         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
23061         walk backwards from entry_bb to check only those basic block of header
23062         that might lead to execution of split part.
23063         (consider_split) ... here.
23064         (find_return_bb): Allow assignment in return BB.
23065         (find_retval): New.
23066         (split_function): Fix name of cloned function; take care of updating
23067         return value in return_bb containing move.
23068
23069 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
23070
23071         PR target/44771
23072         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
23073         used variable insn.
23074
23075 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
23076
23077         * implicit-zee.c (combine_reaching_defs): Fix long lines.
23078         (is_set_with_extension_DI): Delete.
23079         (struct zero_extend_info): New structure.
23080         (add_removable_zero_extend): New function.
23081         (find_removable_zero_extends): Use note_stores to find SETs.
23082         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
23083
23084 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
23085
23086         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
23087         is_miss_rate_acceptable. Pull total_positions computation
23088         out of the loops.  Early return if miss_positions exceeds
23089         the acceptable threshold.
23090         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
23091         is_miss_rate_acceptable after renaming of compute_miss_rate.
23092
23093 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
23094
23095         PR middle-end/44576
23096         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
23097         of 1000) for miss rate if the address diference is greater than or
23098         equal to the cache line size (the two reference will never hit the
23099         same cache line).
23100
23101 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
23102
23103         PR target/42835
23104         * config/arm/arm-modes.def (CC_NOTB): New mode.
23105         * config/arm/arm.c (get_arm_condition_code): Handle it.
23106         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
23107         * config/arm/arm.md (subsi3_compare0_c): New pattern.
23108         (compare_scc): Now a define_and_split.  Add a number of extra
23109         splitters before it.
23110
23111         PR target/42172
23112         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
23113         and ZERO_EXTEND.
23114         (arm_rtx_costs_1): Likewise.
23115         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
23116         * config/arm/arm.md (is_arch6): New attribute.
23117         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
23118         extendqisi2): Tighten the code somewhat, avoiding invalid
23119         RTL to occur in the expander patterns.
23120         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
23121         (thumb1_zero_extendhisi2_v6): Delete.
23122         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
23123         (thumb1_extendhisi2_v6): Delete.
23124         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
23125         (thumb1_extendqisi2_v6): Delete.
23126         (zero_extendhisi2 for register input splitter): New.
23127         (zero_extendqisi2 for register input splitter): New.
23128         (thumb1_extendhisi2 for register input splitter): New.
23129         (extendhisi2 for register input splitter): New.
23130         (extendqisi2 for register input splitter): New.
23131         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
23132         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
23133         and add support for a register alternative requiring a split.
23134         (thumb1_zero_extendqisi2): Likewise.
23135         (arm_zero_extendqisi2): Likewise.
23136         (arm_extendhisi2): Likewise.
23137         (arm_extendqisi2): Likewise.
23138
23139 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
23140
23141         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
23142         instead of an unspec.
23143         (neon_expand_vector_init): Likewise.
23144         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
23145         (UNSPEC_VDUP_LANE): Delete.
23146         (UNSPEC VDUP_N): Delete.
23147         (UNSPEC_VGET_HIGH): Delete.
23148         (UNSPEC_VGET_LANE): Delete.
23149         (UNSPEC_VGET_LOW): Delete.
23150         (UNSPEC_VMVN): Delete.
23151         (UNSPEC_VSET_LANE): Delete.
23152         (V_double_vector_mode): New.
23153         (vec_set<mode>_internal): Make code emitted match that for the
23154         corresponding intrinsics.
23155         (vec_setv2di_internal): Likewise.
23156         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
23157         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
23158         (neon_vset_lane<mode>): Combine double and quad patterns and
23159         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
23160         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
23161         (neon_vdup_n<mode>): Rewrite RTL without unspec.
23162         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
23163         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
23164         with neon_vdup_lanev2di, adjusting the pattern from the latter
23165         to be predicable for consistency.
23166         (neon_vdup_lane<mode>_internal): New.
23167         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
23168         to avoid using an unspec.
23169         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
23170         (neon_vdup_lanev2di): Turn into a define_expand.
23171         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
23172         (neon_vget_high<mode>): Replace with....
23173         (neon_vget_highv16qi): New pattern using canonical RTL.
23174         (neon_vget_highv8hi): Likewise.
23175         (neon_vget_highv4si): Likewise.
23176         (neon_vget_highv4sf): Likewise.
23177         (neon_vget_highv2di): Likewise.
23178         (neon_vget_low<mode>): Replace with....
23179         (neon_vget_lowv16qi): New pattern using canonical RTL.
23180         (neon_vget_lowv8hi): Likewise.
23181         (neon_vget_lowv4si): Likewise.
23182         (neon_vget_lowv4sf): Likewise.
23183         (neon_vget_lowv2di): Likewise.
23184
23185         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
23186         test for this emitting vmov.
23187         (Vset_lane): Likewise.
23188         (Vdup_n): Likewise.
23189         (Vmov_n): Likewise.
23190
23191         * doc/arm-neon-intrinsics.texi: Regenerated.
23192
23193 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
23194
23195         * config/arm/neon.md (vec_extractv2di): Correct error in register
23196         numbering to reconcile with neon_vget_lanev2di.
23197
23198 2010-07-02  Richard Guenther  <rguenther@suse.de>
23199
23200         * tree-ssa-structalias.c (pt_solution_set_var): New function.
23201         * tree-ssa-alias.h (pt_solution_set_var): Declare.
23202         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
23203         points-to information.
23204
23205 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
23206
23207         * config/s390/s390.c (override_options): Adopt prefetching
23208         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
23209
23210 2010-07-02  Jan Hubicka  <jh@suse.cz>
23211
23212         * df-problems.c (df_kill_notes): Do not collect dead  notes.
23213         (df_set_note): Just call add_reg_note.
23214         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
23215         df_create_unused_note): Do not deal with lists of old notes.
23216         (df_note_bb_compute): Likewise.
23217
23218 2010-07-02  Richard Guenther  <rguenther@suse.de>
23219
23220         * tree-ssa-structalias.c (find_func_aliases): Handle
23221         pointer alignment via BIT_AND_EXPR.
23222         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
23223
23224 2010-07-02  Richard Guenther  <rguenther@suse.de>
23225
23226         * tree-data-ref.c (initialize_data_dependence_relation): Handle
23227         mismatching number of dimensions properly.
23228
23229 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23230
23231         PR target/44707
23232         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
23233         (lo_sum (high ...) ...) patterns generated by earlier passes.
23234
23235 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23236
23237         * doc/install.texi (Prerequisites): Document Perl requirement on
23238         Solaris 2.
23239         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
23240
23241 2010-07-02  Richard Guenther  <rguenther@suse.de>
23242
23243         PR middle-end/44777
23244         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
23245
23246 2010-07-02  Jan Hubicka  <jh@suse.cz>
23247
23248         PR middle-end/44706
23249         * predict.c (predict_paths_for_bb): Handle case when control dependence
23250         BB has only abnormal edges.
23251
23252 2010-07-02  Richard Guenther  <rguenther@suse.de>
23253
23254         PR tree-optimization/44748
23255         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
23256         the embedded conversion in MEM_REFs.
23257
23258 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
23259
23260         * reload.c: Include toplev.h.
23261         * recog.c:  Likewise.
23262         * Makefile.in: Adjust dependencies.
23263
23264 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
23265
23266         PR debug/44694
23267         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
23268         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
23269
23270 2010-07-01  Richard Guenther  <rguenther@suse.de>
23271
23272         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
23273         types for offsets.
23274
23275 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
23276
23277         PR target/44732
23278         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
23279         Fix argument types.
23280
23281 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
23282
23283         PR target/44727
23284         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23285         Make sure operand 0 dies.
23286
23287 2010-07-01  Richard Guenther  <rguenther@suse.de>
23288
23289         PR middle-end/42834
23290         PR middle-end/44468
23291         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
23292         * doc/generic.texi (References to storage): Document MEM_REF.
23293         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
23294         (print_call_name): Likewise.
23295         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
23296         (build_simple_mem_ref_loc): New function.
23297         (mem_ref_offset): Likewise.
23298         * tree.h (build_simple_mem_ref_loc): Declare.
23299         (build_simple_mem_ref): Define.
23300         (mem_ref_offset): Declare.
23301         * fold-const.c: Include tree-flow.h.
23302         (operand_equal_p): Handle MEM_REF.
23303         (build_fold_addr_expr_with_type_loc): Likewise.
23304         (fold_comparison): Likewise.
23305         (fold_unary_loc): Fold
23306         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
23307         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
23308         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
23309         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
23310         (ptr_deref_may_alias_ref_p_1): Likewise.
23311         (ao_ref_base_alias_set): Properly differentiate base object for
23312         offset and TBAA.
23313         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
23314         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
23315         (indirect_refs_may_alias_p): Likewise.
23316         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
23317         chasing code.
23318         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
23319         (call_may_clobber_ref_p_1): Likewise.
23320         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
23321         * expr.c (expand_assignment): Handle MEM_REF.
23322         (store_expr): Handle MEM_REFs from STRING_CSTs.
23323         (store_field): If expanding a MEM_REF of a non-addressable
23324         decl use bitfield operations.
23325         (get_inner_reference): Handle MEM_REF.
23326         (expand_expr_addr_expr_1): Likewise.
23327         (expand_expr_real_1): Likewise.
23328         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
23329         * alias.c (ao_ref_from_mem): Handle MEM_REF.
23330         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
23331         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
23332         (dr_analyze_indices): Likewise.
23333         (dr_analyze_alias): Likewise.
23334         (object_address_invariant_in_loop_p): Likewise.
23335         * gimplify.c (mark_addressable): Handle MEM_REF.
23336         (gimplify_cond_expr): Build MEM_REFs.
23337         (gimplify_modify_expr_to_memcpy): Likewise.
23338         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
23339         (gimple_fold_indirect_ref): Adjust.
23340         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
23341         * tree.def (MEM_REF): New tree code.
23342         * tree-dfa.c: Include toplev.h.
23343         (get_ref_base_and_extent): Handle MEM_REF.
23344         (get_addr_base_and_unit_offset): New function.
23345         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
23346         * gimple-fold.c (may_propagate_address_into_dereference): Handle
23347         MEM_REF.
23348         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
23349         accesses if the array has just one dimension.  Remove always true
23350         parameter.  Do not require type compatibility here.
23351         (maybe_fold_offset_to_component_ref): Remove.
23352         (maybe_fold_stmt_indirect): Remove.
23353         (maybe_fold_reference): Remove INDIRECT_REF handling.
23354         Fold back to non-MEM_REF.
23355         (maybe_fold_offset_to_address): Simplify.  Deal with type
23356         mismatches here.
23357         (maybe_fold_reference): Likewise.
23358         (maybe_fold_stmt_addition): Likewise.  Also handle
23359         &ARRAY + I in addition to &ARRAY[0] + I.
23360         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
23361         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
23362         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
23363         * tree-ssa.c (useless_type_conversion_p): Make most pointer
23364         conversions useless.
23365         (warn_uninitialized_var): Handle MEM_REF.
23366         (maybe_rewrite_mem_ref_base): New function.
23367         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
23368         to SSA form.
23369         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
23370         INDIRECT_REF handling.
23371         (copy_tree_body_r): Handle MEM_REF.
23372         * gimple.c (is_gimple_addressable): Adjust.
23373         (is_gimple_address): Likewise.
23374         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
23375         invariant base are invariant.
23376         (is_gimple_min_lval): Adjust.
23377         (is_gimple_mem_ref_addr): New function.
23378         (get_base_address): Handle MEM_REF.
23379         (count_ptr_derefs): Likewise.
23380         (get_base_loadstore): Likewise.
23381         * gimple.h (is_gimple_mem_ref_addr): Declare.
23382         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
23383         * tree-cfg.c (verify_address): New function, split out from ...
23384         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
23385         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
23386         INDIRECT_REFs.
23387         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
23388         INDIRECT_REF.  Allow conversions.
23389         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
23390         a register does not change its size.
23391         (verify_types_in_gimple_reference): Verify MEM_REF.
23392         (verify_gimple_assign_single): Disallow INDIRECT_REF.
23393         Handle MEM_REF.
23394         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
23395         New.
23396         (mark_address_taken): Handle MEM_REF.
23397         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
23398         (get_asm_expr_operands): Pass opf_not_non_addressable.
23399         (get_expr_operands): Handle opf_[not_]non_addressable.
23400         Handle MEM_REF.  Remove INDIRECT_REF handling.
23401         * tree-vrp.c (check_array_ref): Handle MEM_REF.
23402         (search_for_addr_array): Likewise.
23403         (check_array_bounds): Likewise.
23404         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
23405         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
23406         (ref_always_accessed_p): Likewise.
23407         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
23408         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
23409         Handle MEM_REF.
23410         * cgraphbuild.c (mark_load): Properly check for NULL result
23411         from get_base_address.
23412         (mark_store): Likewise.
23413         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
23414         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
23415         handling for MEM_REF.
23416         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
23417         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
23418         * builtins.c (stabilize_va_list_loc): Use the function ABI
23419         valist type if we couldn't canonicalize the argument type.
23420         Always dereference with the canonical va-list type.
23421         (maybe_emit_free_warning): Handle MEM_REF.
23422         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
23423         memmove to memcpy.
23424         * builtins.c (fold_builtin_memory_op): Use ref-all types
23425         for all memcpy foldings.
23426         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
23427         (build_outer_var_ref): Likewise.
23428         (scan_omp_1_op): Likewise.
23429         (lower_rec_input_clauses): Likewise.
23430         (lower_lastprivate_clauses): Likewise.
23431         (lower_reduction_clauses): Likewise.
23432         (lower_copyprivate_clauses): Likewise.
23433         (expand_omp_atomic_pipeline): Likewise.
23434         (expand_omp_atomic_mutex): Likewise.
23435         (create_task_copyfn): Likewise.
23436         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
23437         Remove old union trick.  Initialize constant offsets.
23438         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
23439         INDIRECT_REF.  Init base_alias_set properly.
23440         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
23441         (vn_reference_fold_indirect): Adjust for MEM_REFs.
23442         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
23443         for ARRAY_REFs.
23444         (may_insert): Remove.
23445         (visit_reference_op_load): Do not test may_insert.
23446         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
23447         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
23448         a field to store the constant offset this op applies.
23449         (run_scc_vn): Adjust prototype.
23450         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
23451         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
23452         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
23453         bother about volatile qualifiers on pointers.
23454         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
23455         * tree-ssa-loop-ivopts.c
23456         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
23457         (strip_offset_1): Likewise.
23458         (find_interesting_uses_address): Replace INDIRECT_REF handling with
23459         MEM_REF handling.
23460         (get_computation_cost_at): Likewise.
23461         * ipa-pure-const.c (check_op): Handle MEM_REF.
23462         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
23463         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
23464         and constants.
23465         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
23466         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
23467         (eliminate_local_variables_1): Likewise.
23468         (create_call_for_reduction_1): Likewise.
23469         (create_loads_for_reductions): Likewise.
23470         (create_loads_and_stores_for_name): Likewise.
23471         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
23472         (ssa_accessed_in_tree): Handle MEM_REF.
23473         (ssa_accessed_in_assign_rhs): Likewise.
23474         (update_type_size): Likewise.
23475         (analyze_accesses_for_call_stmt): Likewise.
23476         (analyze_accesses_for_assign_stmt): Likewise.
23477         (transform_access_sites): Likewise.
23478         (transform_allocation_sites): Likewise.
23479         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
23480         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
23481         not handle INDIRECT_REF.
23482         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
23483         (cond_store_replacement): Likewise.
23484         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
23485         MEM_REF, no not handle INDIRECT_REFs.
23486         (insert_into_preds_of_block): Properly initialize avail.
23487         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
23488         for ARRAY_REFs.  Properly handle reference lookups that
23489         require a bit re-interpretation.
23490         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
23491         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
23492         (build_ref_for_offset_1): Remove.
23493         (build_ref_for_offset): Build MEM_REFs.
23494         (gate_intra_sra): Disable for now.
23495         (sra_ipa_modify_expr): Handle MEM_REF.
23496         (ipa_early_sra_gate): Disable for now.
23497         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
23498         MEM_REF handling.
23499         (disqualify_base_of_expr): Likewise.
23500         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
23501         MEM_REF handling.
23502         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
23503         Use mem_ref_offset.  Remove bogus folding.
23504         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
23505         (make_fancy_name_1): Add support for MEM_REF.
23506         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
23507         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
23508         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
23509         (compute_complex_ancestor_jump_func): Likewise.
23510         (ipa_analyze_virtual_call_uses): Likewise.
23511         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
23512         INDIRECT_REF folding with more generalized MEM_REF folding.
23513         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
23514         (forward_propagate_addr_into_variable_array_index): Also handle
23515         &ARRAY + I in addition to &ARRAY[0] + I.
23516         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
23517         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
23518         creates assignments with overlap.
23519         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
23520         (get_frame_field): Likewise.
23521         (get_nonlocal_debug_decl): Likewise.
23522         (convert_nonlocal_reference_op): Likewise.
23523         (struct nesting_info): Add mem_refs pointer-set.
23524         (create_nesting_tree): Allocate it.
23525         (convert_local_reference_op): Insert to be folded mem-refs.
23526         (fold_mem_refs): New function.
23527         (finalize_nesting_tree_1): Perform defered folding of mem-refs
23528         (free_nesting_tree): Free the pointer-set.
23529         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
23530         (vectorizable_load): Likewise.
23531         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
23532         (propagate_with_phi): Likewise.
23533         * tree-object-size.c (addr_object_size): Handle MEM_REFs
23534         instead of INDIRECT_REFs.
23535         (compute_object_offset): Handle MEM_REF.
23536         (plus_stmt_object_size): Handle MEM_REF.
23537         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
23538         for &MEM_REF.
23539         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
23540         (symbol_marked_for_renaming): Likewise.
23541         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
23542         (fold-const.o): Add $(TREE_FLOW_H).
23543         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
23544         (find_func_clobbers): Likewise.
23545         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
23546         (decompose_access): Likewise.
23547         (replace_field_acc): Likewise.
23548         (replace_field_access_stmt): Likewise.
23549         (insert_new_var_in_stmt): Likewise.
23550         (get_stmt_accesses): Likewise.
23551         (reorg_structs_drive): Disable.
23552         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
23553         (ix86_canonical_va_list_type): Likewise.
23554
23555 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
23556
23557         PR other/44566
23558         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
23559         * target.def (struct gcc_target): Replace enum reg_class with
23560         reg_class_t in hook argument / return types.
23561         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
23562         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
23563         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
23564         * targhooks.h (default_branch_target_register_class): Likewise.
23565         (default_ira_cover_classes, default_secondary_reload): Likewise.
23566         (default_memory_move_cost, default_register_move_cost): Likewise.
23567         * targhooks.c (default_branch_target_register_class): Likewise.
23568         (default_ira_cover_classes, default_secondary_reload): Likewise.
23569         (default_memory_move_cost, default_register_move_cost): Likewise.
23570         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
23571         * bt-load.c (branch_target_load_optimize): Likewise.
23572         * ira.c (setup_cover_and_important_classes): Likewise.
23573         * ira-costs.c (copy_cost): Likewise.
23574         * reload1.c (emit_input_reload_insns): Likewise.
23575         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
23576         * config/frv/frv.c (frv_secondary_reload): Likewise.
23577         * config/s390/s390.c (s390_secondary_reload): Likewise.
23578         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
23579         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
23580         (ix86_register_move_cost): Likewise.
23581         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
23582         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
23583         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
23584         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
23585         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
23586         (rs6000_ira_cover_classes): Likewise.
23587         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
23588         * config/picochip/picochip-protos.h (picochip_secondary_reload):
23589         Likewise.
23590         * config/pa/pa.c (pa_secondary_reload): Likewise.
23591         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
23592         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
23593         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
23594         * doc/tm.texi: Regenerate.
23595
23596 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
23597
23598         PR bootstrrap/44726
23599         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
23600         use.
23601         (build_alias_set_optimal_p): Likewise.
23602         (build_base_obj_set_for_drs): Likewise.
23603
23604 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
23605
23606         * target.def: Remove comment about licensing problems of function
23607         declarations.
23608
23609         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
23610         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
23611         * doc/tm.texi: Regenerate.
23612
23613         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
23614         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
23615
23616         * target.def (enum_va_list_p): Use DEFHOOK.
23617         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
23618         Rename ptype to ptree.
23619         * doc/tm.texi: Regenerate.
23620
23621         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
23622         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
23623         * doc/tm.texi: Regenerate.
23624
23625         * target.def (memory_move_cost): Use DEFHOOK.
23626         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
23627         Rename regclass AKA class to rclass.
23628         * doc/tm.texi: Regenerate.
23629
23630         * target.def (pragma_parse): Use DEFHOOK.
23631         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
23632         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
23633         * doc/tm.texi: Regenerate.
23634
23635         * target.def (pass_by_reference): Use DEFHOOK.
23636         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
23637         * doc/tm.texi: Regenerate.
23638
23639         * target.def (resolve_overloaded_builtin): Rename params to arglist.
23640         Use DEFHOOK.
23641         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
23642         * doc/tm.texi: Regenerate.
23643
23644         * target.def (return_pops_args): Use DEFHOOK.
23645         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
23646         Rename stack-size to size.
23647         * doc/tm.texi: Regenerate.
23648
23649         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
23650         last-sched_cycle to last_clock, cur_cycle to clock.
23651         * doc/tm.texi.in: Use @hook.
23652         * doc/tm.texi: Regenerate.
23653
23654         * target.def (print_operand, print_operand_address): Update comment.
23655         (print_operand_punct_valid_p): Likewise.
23656
23657 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23658
23659         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
23660         to rtl.h.
23661         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
23662         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
23663         * rtl-error.h: New.
23664         * regrename.c: Do not include toplev.h. Include rtl-error.h.
23665         * rtl-error.c: Likewise.
23666         * reload.c: Likewise.
23667         * recog.c:  Likewise.
23668         * sel-sched.c: Likewise.
23669         * function.c: Likewise.
23670         * reg-stack.c: Likewise.
23671         * cfgrtl.c: Likewise.
23672         * reload1.c: Likewise.
23673         * final.c: Include rtl-error.
23674         * Makefile.in: Adjust dependencies.
23675
23676 2010-06-30  Jan Hubicka  <jh@suse.cz>
23677
23678         PR middle-end/PR44706
23679         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
23680         to return the value.
23681
23682 2010-06-30  Michael Matz  <matz@suse.de>
23683
23684         PR bootstrap/44699
23685         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
23686         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
23687         a gimple reg, attach the original VDEF to the last store in the
23688         sequence.
23689
23690 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
23691
23692         PR other/44034
23693         * config/darwin.c (darwin_override_options): Use renamed
23694         targetm.asm_out.emit_unwind_label.
23695
23696 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
23697
23698         PR tree-optimization/39799
23699         * tree-inline.c (remap_ssa_name): Initialize variable only if
23700         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
23701
23702 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
23703
23704         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
23705
23706 2010-06-30  Richard Guenther  <rguenther@suse.de>
23707
23708         PR target/44722
23709         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
23710         against oscillation with reverse peephole2.
23711
23712 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
23713
23714         PR target/44721
23715         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23716         Fix last commit.
23717
23718 2010-06-30  Nick Clifton  <nickc@redhat.com>
23719
23720         * config/rx/rx-modes.def: New file.
23721         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
23722         (CC_REGNUM): Define.
23723         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
23724         register.
23725         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
23726         (SELECT_CC_MODE): Define.
23727         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
23728         (reg:CC CC_REG) instead of (cc0).
23729         (attr "cc"): Delete.
23730         (cbranchsi4): Do not split compare and branch here. Instead move
23731         it to...
23732         (cbranchsi4_<code>): ... here.  New patterns.
23733         (cmpsi): Call rx-compare_redundant to find out if it is necessary
23734         to emit the compare instruction.
23735         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
23736         cc_status flags.
23737         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
23738         FIRST_PSEUDO_REGNUM.
23739         (rx_expand_prologue, rx_expand_epilogue): Likewise.
23740         (rx_notice_update_cc): Delete.
23741         (rx_cc_modes_compatible): New function.
23742         (flags_needed_for_conditional): New function.
23743         (flags_from_mode): New function.
23744         (rx_compare_redundant): New function - scans backwards through
23745         insn list to find out if condition flags are already set correctly.
23746         (TARGET_CC_MODES_COMPATIBLE): Define.
23747         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
23748
23749         * config/rx/rx.h (BRANCH_COST): Define.
23750         (REGISTER_MOVE_COST): Define.
23751         * config/rx/predicates (rx_source_operand): Allow all constant types.
23752         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
23753         (tstsi4): New pattern.
23754         * config/rx/rx.c (rx_memory_move_cost): Define.
23755         (TARGET_MEMORY_MOVE_COST): Define.
23756
23757 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23758
23759         * tree.h (block_may_fallthru): Declare here.
23760         * tree-flow.h (block_may_fallthru): Do not declare here.
23761         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
23762         bitmap.h
23763         * Makefile.in (c-typeck.o): Update dependencies.
23764
23765 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
23766
23767         PR debug/44694
23768         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
23769         * cselib.c (cfa_base_preserved_regno): New static variable.
23770         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
23771         of REGNO (cfa_base_preserved_val->locs->loc).
23772         (cselib_preserve_cfa_base_value): Add regno argument, set
23773         cfa_base_preserved_regno to it.
23774         (cselib_invalidate_regno): Allow removal of registers other than
23775         cfa_base_preserved_regno from cfa_base_preserved_val.
23776         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
23777         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
23778         of MEM addresses, if not on LHS.
23779         (reverse_op): Don't add reverse ops for cfa_base_rtx.
23780         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
23781
23782 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
23783
23784         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
23785         static variables.
23786         (peep2_buf_position): New static function.
23787         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
23788         peephole2_optimize): Use it.
23789         (peep2_attempt, peep2_update_life): New static functions, broken out
23790         of peephole2_optimize.
23791         (peep2_fill_buffer): New static function.
23792         (peephole2_optimize): Change the main loop to try to fill the buffer
23793         with the maximum number of insns before matching them against
23794         peepholes.  Use a forward scan.  Remove special case for targets with
23795         conditional execution.
23796         * genrecog.c (change_state): Delete dead code.
23797         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23798         Rewrite so as not to expect the second insn to have had a peephole
23799         applied yet.
23800
23801 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23802
23803         * genhooks.c (emit_findices): Cast field precision to int.
23804         (emit_documentation): Likewise.
23805
23806 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
23807
23808         PR tree-optimization/43801
23809         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
23810         if old_decl was DECL_ONE_ONLY.
23811
23812         PR debug/44668
23813         * dwarf2out.c (add_accessibility_attribute): New function.
23814         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
23815         instead of adding DW_AT_accessibility manually.
23816         (gen_enumeration_type_die, gen_struct_or_union_type_die,
23817         gen_typedef_die): Use it.
23818
23819 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23820
23821         * vmsdbgout.c (full_name): Just output the file name if not native.
23822
23823 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23824
23825         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
23826         (funcnam_table): New static table.
23827         (funcnum_table): New static table.
23828         (write_rtnbeg): Write value saved in funcnum_table.
23829         (write_rtnend): Write value saved in funcnum_table.
23830         (vmsdbgout_begin_function): Save current function info in
23831         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
23832         (vmsdbgout_finish): Iterate over funcnum_table.
23833
23834 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23835
23836         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
23837         (vmsdbgout_type_decl): Declare
23838         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
23839         (FUNC_EPILOGUE_LABEL): New macro
23840         (vmsdbgout_begin_epilogue): New function.
23841         (vmsdbgout_type_decl): New function.
23842
23843 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23844
23845         * vmsdbg.h: Update copyright.
23846
23847 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23848
23849         * vmsdbg.h (DST_K_TBG): New DST constant.
23850         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
23851         (write_modbeg): Cast module_language to avoid warning.
23852         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
23853
23854 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
23855
23856         PR other/44034
23857         * target.def, doc/tm.texi.in, genhooks.c: New files.
23858         * target.h: Instead of defining individual hook members,
23859         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
23860         include target.def.
23861         * target-def.h: Instead of defining individual hook initializers,
23862         include target-hooks-def.h.
23863         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
23864         targetm.live_on_entry -> targetm.extra_live_on_entry
23865         targetm.sched.md_finish ->targetm.sched.finish
23866         targetm.sched.md_init -> targetm.sched.init
23867         targetm.sched.md_init_global -> targetm.sched.init_global
23868         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
23869         targetm.asm_out.except_table_label ->
23870           targetm.asm_out.emit_except_table_label
23871         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
23872         targetm.target_help -> targetm.help
23873         targetm.vectorize.builtin_support_vector_misalignment ->
23874           targetm.vectorize.support_vector_misalignment
23875         targetm.file_start_app_off -> targetm.asm_file_start_app_off
23876         targetm.file_start_file_directive ->
23877          targetm.asm_file_start_file_directive
23878         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
23879         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
23880         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
23881         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
23882           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
23883         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
23884           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
23885         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
23886         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
23887         * Makefile.in (TARGET_H): Depend on target.def.
23888         (TARGET_DEF_H): Depend on target-hooks-def.h.
23889         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
23890         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
23891         * doc/tm.texi: Regenerate.
23892
23893         * Makefile.in (s-tm-texi): Remove stray tab / rule.
23894
23895         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
23896         (targetm.sched.init): Likewise.
23897
23898 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23899
23900         PR bootstrap/44713
23901         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
23902         (function_arg_advance_32): Const-ify TYPE parameter.
23903         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
23904         (ix86_function_arg_advance): Change type of NAMED to bool.
23905         (function_arg_32): Const-ify CUM and TYPE parameters.
23906         (function_arg_64): Likewise.  Change type of NAMED to bool.
23907         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
23908         to bool.
23909         (ix86_function_arg): Change type of NAMED to bool.
23910         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
23911         last argument as a bool.
23912
23913 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
23914
23915         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
23916         (OVERRIDE_OPTIONS): Add note of obsolescence.
23917         Replace references with references to TARGET_OPTION_OVERRIDE.
23918         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
23919          the macro).
23920         * targhooks.c (default_target_option_override): New function.
23921         * targhooks.h (default_target_option_override): Declare.
23922         * target.h (struct gcc_target): Add override member to
23923         target_option member.
23924         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
23925         targetm.target_option.override call.
23926         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
23927         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
23928
23929 2010-06-29  Jan Hubicka  <jh@suse.cz>
23930
23931         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
23932
23933 2010-06-29  Jan Hubicka  <jh@suse.cz>
23934
23935         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
23936         unreachable.
23937         (rebuild_frequencies): New function.
23938         * predict.h (rebuild_frequencies): Declare.
23939         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
23940         entry block and edge reaching new_entry.
23941         (tree_function_versioning): When doing partial cloning, rebuild
23942         frequencies when done.
23943         * passes.c (execute_function_todo): Use rebild_frequencies.
23944
23945 2010-06-29  Richard Guenther  <rguenther@suse.de>
23946
23947         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
23948         * tree-flow.h (enum noalias_state): Remove.
23949         (struct var_ann_d): Remove noalias_state member.
23950
23951 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
23952
23953         PR target/43902
23954         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
23955         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
23956         (maddhidi4): Likewise.
23957
23958         Revert parts of the change for PR25130.
23959         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
23960         MEM_ALIAS_SET.
23961
23962 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23963
23964         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
23965         targetm.calls.function_incoming_arg, and
23966         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
23967         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
23968         * target.h (struct gcc_target): Add function_arg_advance,
23969         function_arg, and function_incoming_arg fields.
23970         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
23971         (TARGET_FUNCTION_INCOMING_ARG): Define.
23972         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
23973         and TARGET_FUNCTION_INCOMING_ARG.
23974         * targhooks.h (default_function_arg_advance): Declare.
23975         (default_function_arg, default_function_incoming_arg): Declare.
23976         * targhooks.c (default_function_arg_advance): New function.
23977         (default_function_arg, default_function_incoming_arg): New function.
23978         * config/i386/i386.c (function_arg_advance): Rename to...
23979         (ix86_function_arg_advance): ...this.  Make static.
23980         (function_arg): Rename to...
23981         (ix86_function_arg): ...this.  Make static.
23982         (TARGET_FUNCTION_ARG_ADVANCE): Define.
23983         (TARGET_FUNCTION_ARG): Define.
23984         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
23985         (FUNCTION_ARG): Delete.
23986         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
23987         (function_arg): Delete prototype.
23988
23989 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23990
23991         * reginfo.c (init_reg_sets_1): Adjust comments.
23992         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
23993         * calls.c (prepare_call_address): Likewise.
23994         (emit_call_1): Use targetm.calls.return_pops_args.
23995         (expand_call): Likewise.
23996         * function.c (assign_parms): Likewise.
23997         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
23998         * target.h (struct gcc_target) [struct calls]: Add
23999         return_pops_args field.
24000         * targhooks.h (default_return_pops_args): Declare.
24001         * targhooks.c (default_return_pops_args): Define.
24002         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
24003         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
24004         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
24005         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
24006         documentation.
24007         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
24008         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
24009         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
24010         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
24011         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
24012         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
24013         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
24014         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
24015         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
24016         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
24017         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
24018         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
24019         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
24020         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
24021         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
24022         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
24023         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
24024         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
24025         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
24026         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
24027         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
24028         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
24029         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
24030         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
24031         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
24032         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
24033         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
24034         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
24035         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
24036         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
24037         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
24038         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
24039         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
24040         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
24041         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
24042         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
24043         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
24044         * config/i386/i386.c (ix86_return_pops_args): Make static.
24045         Constify arguments.
24046         (TARGET_RETURN_POPS_ARGS): Define.
24047         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
24048         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
24049         (TARGET_RETURN_POPS_ARGS): Define.
24050         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
24051         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
24052         (TARGET_RETURN_POPS_ARGS): Define.
24053
24054 2010-06-29  Richard Guenther  <rguenther@suse.de>
24055
24056         PR middle-end/44667
24057         * tree-inline.c (initialize_inlined_parameters): Make sure
24058         to remap the inlined parameter variable substitutions types.
24059
24060 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
24061
24062         PR rtl-optimization/44659
24063         * combine.c (make_compound_operation) <SUBREG>: Do not return the
24064         result of force_to_mode if it partially re-expanded the compound.
24065
24066 2010-06-28  Jan Hubicka  <jh@suse.cz>
24067
24068         PR middle-end/44671
24069         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
24070         RESULT_DECL.
24071
24072 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
24073
24074         * double-int.h (force_fit_type_double): Remove declaration.
24075         * double-int.c (force_fit_type_double): Move to tree.c.
24076         * tree.h (force_fit_type_double): Declare.
24077         * tree.h (force_fit_type_double): Moved from double-int.c. Use
24078         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
24079         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
24080         * convert.c (convert_to_pointer): Adjust call to
24081         force_fit_type_double.
24082         * tree-vrp.c (extract_range_from_assert,
24083         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
24084         * fold-const.c: Update comment.
24085         (int_const_binop, fold_convert_const_int_from_int,
24086         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
24087         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
24088         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
24089         round_up_loc): Adjust call to force_fit_type_double.
24090
24091 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
24092
24093         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
24094
24095 2010-06-28  Martin Jambor  <mjambor@suse.cz>
24096
24097         * tree-sra.c (convert_callers): New parameter, change fndecls of
24098         recursive calls.
24099         (modify_function): Pass the old decl to convert_callers.
24100
24101 2010-06-28  Martin Jambor  <mjambor@suse.cz>
24102
24103         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
24104         ipa_check_create_node_params and ipa_initialize_node_params with
24105         checking asserts they are not necessary.
24106
24107 2010-06-28  Jan Hubicka  <jh@suse.cz>
24108
24109         PR tree-optimization/44687
24110         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
24111
24112 2010-06-28  Martin Jambor  <mjambor@suse.cz>
24113
24114         PR c++/44535
24115         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
24116         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
24117         instead of BINFO_BASE_BINFO.
24118
24119 2010-06-28  Michael Matz  <matz@suse.de>
24120
24121         PR middle-end/44592
24122         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
24123         proper VDEF chain for intermediate stores in the sequence.
24124
24125 2010-06-28  Jan Hubicka  <jh@suse.cz>
24126
24127         PR tree-optimization/44357
24128         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
24129         uninlinable functions.
24130
24131 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
24132
24133         * config.gcc (powerpc*-*-*): Handle titan.
24134         * config/rs6000/rs6000.c (titan_cost): New costs.
24135         (rs6000_override_options): Add "titan" to processor_target_table.
24136         Add Titan to branch alignment logic.
24137         Correctly set rs6000_cost for titan.
24138         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
24139         * config/rs6000/titan.md: New file.
24140         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
24141
24142 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
24143
24144         * tree-browser.c (TB_history_stack): Convert to a VEC.
24145         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
24146         (TB_history_prev): Likewise.
24147
24148 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
24149
24150         * vec.h (vec_heap_free): Add parentheses around free.
24151
24152 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
24153
24154         * system.h: Poison GCC_EXCEPT_H for front-end files.
24155
24156         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
24157         langhook.
24158         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
24159         Define to NULL by default.
24160         * except.h: Define GCC_EXCEPT_H.
24161         (doing_eh): Remove prototype.
24162         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
24163         (lang_protect_cleanup_actions): Remove.
24164         * except.c (lang_protect_cleanup_actions): Remove.
24165         (doing_eh): Remove.
24166         (gen_eh_region): Don't check doing_eh here.
24167         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
24168         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
24169         instead of lang_protect_cleanup_actions.
24170         * omp-low.c (maybe_catch_exception): Likewise.
24171         * Makefile.in: Update dependencies.
24172
24173 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
24174
24175         * cgraph.h (struct varpool_node): new used_from_object_file flag.
24176         (struct cgraph_local_info): new used_from_object_file flag.
24177         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
24178         (cgraph_clone_node): initialize used_from_object_file.
24179         (cgraph_create_virtual_clone): initialize used_from_object_file.
24180         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
24181         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
24182         when compiling with -fwhole-program.
24183         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
24184         internal resolver.
24185         * ipa.c (function_and_variable_visibility): Set externally_visible
24186         flag of varpool_node if used_from_object_file flag is set.
24187         (cgraph_externally_visible_p): check used_from_object_file flag.
24188         * doc/invoke.texi (-fwhole-program option): Change description of
24189         externally_visible attribute accordingly.
24190         * doc/extend.texi (externally_visible): Ditto.
24191
24192 2010-06-27  Jan Hubicka  <jh@suse.cz>
24193
24194         * params.def (max-inline-insns-auto): Default to 40.
24195         * doc/invoke.texi (max-inline-insns-auto): Document the change.
24196
24197 2010-06-27  Jan Hubicka  <jh@suse.cz>
24198
24199         PR middle-end/44671
24200         PR middle-end/44686
24201         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
24202         signature change.
24203         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
24204         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
24205
24206 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
24207
24208         * target.h (struct gcc_target): Add register_move_cost field.
24209         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
24210         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
24211         * targhooks.c (default_register_move_cost): New function.
24212         * targhooks.h (default_register_move_cost): Declare function.
24213         * defaults.h (REGISTER_MOVE_COST): Delete.
24214         * ira-int.h (ira_register_move_cost): Update comment.
24215         * ira.c (ira_register_move_cost): Update comment.
24216         * reload.h (register_move_cost): Declare.
24217         * reginfo.c (register_move_cost): New function.
24218         (move_cost): Update comment.
24219         (init_move_cost, memory_move_secondary_cost): Replace
24220         REGISTER_MOVE_COST with register_move_cost.
24221         * postreload.c (reload_cse_simplify_set): (Ditto.).
24222         * reload.c (find_valid_class, find_reloads): (Ditto.).
24223         * reload1.c (choose_reload_regs): (Ditto.).
24224         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
24225         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
24226         * doc/md.texi (can_create_pseudo_p): Update documentation.
24227
24228         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
24229         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
24230         * config/i386/i386.h (ix86_memory_move_cost): Make static.
24231         (TARGET_MEMORY_MOVE_COST): Define.
24232
24233         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
24234         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
24235         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
24236         (TARGET_MEMORY_MOVE_COST): Define.
24237
24238 2010-06-27  Richard Guenther  <rguenther@suse.de>
24239
24240         PR tree-optimization/44683
24241         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
24242         false edge from the inverted condition.
24243
24244 2010-06-27  Richard Guenther  <rguenther@suse.de>
24245
24246         PR middle-end/44684
24247         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
24248         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
24249         for register LHS.  Or non-store assignments.
24250
24251 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
24252
24253         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
24254         (sparc_emit_set_const64): Likewise.  Remove disabled code.
24255         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
24256         (sparc_emit_set_const64): Likewise.
24257
24258 2010-06-26  Catherine Moore  <clm@codesourcery.com>
24259
24260         * config/mips/mips.md (alu_type): New attribute.
24261         (type): Infer type from alu_type.
24262         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
24263         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
24264         *subsi3_extended, negsi2, negdi2, *low<mode>,
24265         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
24266         xor<mode>3, *nor<mode>3,
24267         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
24268         *zero_extendhi_truncqi):  Set alu_type instead of type.
24269
24270 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
24271
24272         * config/alpha/alpha.c (alpha_need_linkage): Adjust
24273         splay_tree_new_ggc call.
24274         (alpha_use_linkage): Likewise.
24275
24276 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
24277
24278         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
24279         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
24280         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
24281         (static_specs): Remove switches_need_spaces.
24282         (process_command, do_self_spec): Hardcode handling "-o" instead of
24283         checking switches_need_spaces.
24284         * system.h (SWITCHES_NEED_SPACES): Poison.
24285
24286 2010-06-26  Richard Guenther  <rguenther@suse.de>
24287
24288         PR tree-optimization/44393
24289         * tree-loop-distribution.c (generate_loops_for_partition): Fix
24290         stmt removal and VOP renaming.
24291         (generate_memset_zero): Remove redundant stmt updating.
24292         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
24293         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
24294
24295 2010-06-26  Jan Hubicka  <jh@suse.cz>
24296
24297         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
24298         edges comming from header are equivalent.
24299         (visit_bb): Handle PHIs correctly.
24300         * tree-inline.c (copy_phis_for_bb): Be able to copy
24301         PHI from entry edge.
24302         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
24303
24304 2010-06-26  Richard Guenther  <rguenther@suse.de>
24305
24306         PR middle-end/44674
24307         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
24308         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
24309
24310 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
24311
24312         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
24313         add_infile, alloc_switch): New.
24314         (process_command): Remove variable lang_n_infiles.  Process
24315         options in a single pass.  Use new functions for allocating
24316         infiles and switches arrays.  Properly skip operands of
24317         -Xpreprocessor and -Xassembler.
24318
24319 2010-06-26  Jan Hubicka  <jh@suse.cz>
24320
24321         PR middle-end/44671
24322         * cgraphunit.c (cgraph_function_versioning): Remove wrong
24323         cgraph_make_decl_local call; fix typo copying RTL data.
24324
24325 2010-06-25  DJ Delorie  <dj@redhat.com>
24326
24327         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
24328         (m32c_output_aligned_common): Likewise.
24329         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
24330         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
24331         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
24332         (m32c_register_pragmas): Register it.
24333         * config/m32c/m32c.c (m32c_get_pragma_address): New.
24334         (m32c_insert_attributes): Set #pragma address decls volatile.
24335         (pragma_entry_eq): New.
24336         (pragma_entry_hash): New.
24337         (m32c_note_pragma_address): New.
24338         (m32c_get_pragma_address): New.
24339         (m32c_output_aligned_common): New.
24340         * doc/extend.texi: Document the new pragma.
24341
24342         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
24343         also.
24344         * config/m32c/predicates.md (m32c_any_operand): Check the code
24345         instead of memory_operand so as to allow matching volatile MEMs.
24346         (m32c_nonimmediate_operand): Likewise.
24347         (mra_operand): Allow volatiles.
24348
24349 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
24350
24351         PR debug/44610
24352         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
24353         address if the offset is unknown.
24354
24355 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
24356
24357         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
24358         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
24359         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
24360         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
24361         to ia64_start_function. Invoke it.
24362         * config/ia64/ia64.c (ia64_start_function): Call new function
24363         dwarf2out_vms_debug_main_pointer.
24364
24365 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24366
24367         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
24368         statements computing the true predicate.
24369
24370 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24371
24372         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
24373         to boolean_true_node.
24374         (reset_bb_predicate): New.
24375         (predicate_bbs): Call reset_bb_predicate.
24376
24377 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24378
24379         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
24380         (tree_if_conversion): Returns true when something has been changed.
24381         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
24382         changed something.
24383
24384 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24385
24386         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
24387         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
24388         * tree-if-conv.c: Include dbgcnt.h.
24389         (tree_if_conversion): Use if_conversion_tree to count the number of
24390         if-convertible loops.
24391
24392 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
24393
24394         * common.opt (fprefetch-loop-arrays): Re-define
24395         -fprefetch-loop-arrays as a tri-state option with the initial
24396         value of -1.
24397         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
24398         pass only when flag_prefetch_loop_arrays > 0.
24399         * toplev.c (process_options): Note that, with tri-states,
24400         flag_prefetch_loop_arrays>0 means prefetching is enabled.
24401         * config/i386/i386.c (override_options): Enable prefetching at -O3
24402         for a set of CPUs that sw prefetching is helpful.
24403         (software_prefetching_beneficial_p): New.  Return TRUE if software
24404         prefetching is beneficial for the given CPU.
24405
24406 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
24407
24408         PR rtl-optimization/44326
24409         * implicit-zee.c (find_removable_zero_extends): Replace
24410         INSN_P with NONDEBUG_INSN_P.
24411
24412 2010-06-25  Martin Jambor  <mjambor@suse.cz>
24413
24414         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
24415         (struct ipa_node_params): Removed the modification_analysis_done flag.
24416         (ipa_is_param_modified): Removed.
24417         (ipa_analyze_node): Declare.
24418         (ipa_compute_jump_functions): Remove declaration.
24419         (ipa_count_arguments): Likewise.
24420         (ipa_detect_param_modifications): Likewise.
24421         (ipa_analyze_params_uses): Likewise.
24422         * ipa-prop.c (struct param_analysis_info): New type.
24423         (visit_store_addr_for_mod_analysis): Removed.
24424         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
24425         moved down in the file.
24426         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
24427         (ipa_count_arguments): Made static.
24428         (mark_modified): New function.
24429         (is_parm_modified_before_call): New function.
24430         (compute_pass_through_member_ptrs): New parameter parms_info, call
24431         is_parm_modified_before_call instead of ipa_is_param_modified.
24432         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
24433         it to compute_pass_through_member_ptrs.
24434         (ipa_compute_jump_functions): New parameter parms_info, pass it to
24435         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
24436         on the callee if it is analyzed.  Made static.
24437         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
24438         is_parm_modified_before_call instead of ipa_is_param_modified.
24439         (ipa_analyze_call_uses): New parameter parms_info, pass it to
24440         ipa_analyze_indirect_call_uses.
24441         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
24442         ipa_analyze_call_uses.
24443         (ipa_analyze_params_uses): New parameter parms_info, pass it to
24444         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
24445         (ipa_analyze_node): New function.
24446         (ipa_print_node_params): Do not dump the modified flag.
24447         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
24448         it.  Do not stream the modified parameter flag.
24449         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
24450         it.  Do not stream the modified parameter flag.
24451         * ipa-cp.c (ipcp_analyze_node): Removed.
24452         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
24453         with only a call to ipa_analyze_node.
24454         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
24455         node with only a call to ipa_analyze_node.
24456
24457 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24458
24459         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
24460
24461 2010-06-25  Jan Hubicka  <jh@suse.cz>
24462
24463         * tree-pass.h (pass_split_functions): Declare.
24464         * opts.c (decode_options): Enable function splitting at -O2
24465         * timevar.def (TV_IPA_FNSPLIT): New macro.
24466         * ipa-split.c: New file.
24467         * common.opt (-fpartial-inlining): New flag.
24468         * Makefile.in (ipa-split.o): New object file.
24469         * passes.c (init_optimization_passes): Add ipa-split.
24470         * params.def (partial-inlining-entry-probability): New parameters.
24471         * doc/invoke.texi (-fpartial-inlining): New.
24472
24473 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24474
24475         PR 44665
24476         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
24477         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
24478         (gimplify_expr): Likewise.
24479
24480 2010-06-25  Martin Jambor  <mjambor@suse.cz>
24481
24482         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
24483         statements instead of bailing out on them.
24484         (ipa_analyze_indirect_call_uses): Do not require that loads from the
24485         parameter are in the same BB as the condition.  Update comments.
24486
24487 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
24488
24489         PR middle-end/43866
24490         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
24491         true or always false, return NULL_TREE.
24492         (tree_unswitch_single_loop): Optimize conditions even when reaching
24493         max-unswitch-level parameter.  If num > 0, optimize first all conditions
24494         using entry checks, then do still reachable block discovery and consider
24495         only conditions in still reachable basic blocks in the loop.
24496
24497         PR tree-optimization/44539
24498         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
24499         the call doesn't have LHS, but has VDEF.
24500
24501 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
24502
24503         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
24504         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
24505         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
24506         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
24507         * system.h (MODIFY_TARGET_NAME): Poison.
24508
24509 2010-06-25  Alan Modra  <amodra@gmail.com>
24510
24511         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
24512         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
24513         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
24514         CMODEL_LARGE as default.
24515         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
24516         (offsettable_ok_by_alignment): Delete.
24517         (rs6000_emit_move): Remove mcmodel=medium optimization.
24518
24519 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
24520
24521         With large parts from Jim Wilson:
24522         PR target/43902
24523         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
24524         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
24525         * optabs.c (optab_for_tree_code): Likewise.
24526         (expand_widen_pattern_expr): Likewise.
24527         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
24528         out of execute_optimize_widening_mul.
24529         (convert_plusminus_to_widen): New function.
24530         (execute_optimize_widening_mul): Use the two new functions.
24531         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
24532         Remove code to generate widening multiply-accumulate.  Add support
24533         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
24534         * gimple-pretty-print.c (dump_ternary_rhs): New function.
24535         (dump_gimple_assign): Call it when appropriate.
24536         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
24537         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
24538         (expand_gimple_stmt_1): Likewise.
24539         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
24540         WIDEN_MULT_MINUS_EXPR.
24541         * tree-ssa-operands.c (get_expr_operands): Likewise.
24542         * tree-inline.c (estimate_operator_cost): Likewise.
24543         * gimple.c (extract_ops_from_tree_1): Renamed from
24544         extract_ops_from_tree.  Add new arg for a third operand; fill it.
24545         (gimple_build_assign_stat): Support operations with three operands.
24546         (gimple_build_assign_with_ops_stat): Likewise.
24547         (gimple_assign_set_rhs_from_tree): Likewise.
24548         (gimple_assign_set_rhs_with_ops_1): Renamed from
24549         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
24550         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
24551         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
24552         WIDEN_MULT_MINUS_EXPR.
24553         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
24554         (extract_ops_from_tree_1): Adjust declaration.
24555         (gimple_assign_set_rhs_with_ops_1): Likewise.
24556         (gimple_build_assign_with_ops): Pass NULL for last operand.
24557         (gimple_build_assign_with_ops3): New macro.
24558         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
24559         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
24560         functions.
24561         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
24562         (verify_gimple_assign): Call it.
24563         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
24564         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
24565         functions for dealing with three-operand statements.
24566         * tree.c (commutative_ternary_tree_code): New function.
24567         * tree.h (commutative_ternary_tree_code): Declare it.
24568         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
24569         ternary statements.
24570         (gimple_assign_nonzero_warnv_p): Likewise.
24571         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
24572         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
24573         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
24574         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
24575         (struct hashtable_expr): New member ternary in the union.
24576         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
24577         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
24578         (iterative_hash_hashable_expr): Likewise.
24579         (print_expr_hash_elt): Handle EXPR_TERNARY.
24580         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
24581         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
24582         statements.  Handle GIMPLE_TERNARY_RHS.
24583
24584 2010-06-25  Jan Hubicka  <jh@suse.cz>
24585
24586         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
24587
24588 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
24589
24590         PR c/44517
24591         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
24592         parameters are not good.
24593         (c_parser_parameter_declaration): Error unknown type name if the type
24594         name can't start declaration specifiers.
24595
24596 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
24597
24598         * gcc.c (translate_options): Don't mention +e in comment.
24599         (process_command): Don't handle +e specially.
24600
24601 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
24602
24603         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
24604
24605         * ira-build.c (merge_hard_reg_conflicts): New function.
24606         (create_cap_allocno, copy_info_to_removed_store_destinations,
24607         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
24608         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
24609         (remove_unnecessary_allocnos, remove_low_level_allocnos)
24610         copy_nifo_to_removed_store_destination): Use them.
24611         * ira-lives.c (make_hard_regno_born): New function, split out of
24612         make_regno_born.
24613         (make_allocno_born): Likewise.
24614         (make_hard_regno_dead): New function, split out of make_regno_dead.
24615         (make_allocno_dead): Likewise.
24616         (inc_register_pressure): New function, split out of set_allocno_live.
24617         (dec_register_pressure): New function, split out of clear_allocno_live.
24618         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
24619         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
24620         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
24621         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
24622         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
24623         mark_pseudo_regno_live.
24624         (process_bb_node_lives): Use mark_pseudo_regno_live,
24625         make_hard_regno_born and make_allocno_dead.
24626         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
24627         set_allocno_live, clear_allocno_live): Delete functions.
24628
24629         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
24630         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
24631         functions.
24632         (ira_flattening): Use ira_parent_allocno.
24633         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
24634         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
24635
24636         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
24637         statement.
24638
24639         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
24640         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
24641         minmax_set_iter_cond, minmax_set_iter_next,
24642         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
24643         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
24644         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
24645         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
24646         uses changed.
24647
24648         * ira-int.h (struct live_range, live_range_t): Renamed from struct
24649         ira_allocno_live_range and allocno_live_range_t; all uses changed.
24650         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
24651         All uses changed.
24652
24653 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
24654
24655         * thumb2.md (thumb2_tlobits_cbranch): Delete.
24656         (peephole2 to convert zero_extract/compare of single bit to
24657          lshift/compare): New.
24658
24659 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
24660
24661         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
24662         recursive call and call to 'int_const_binop'.
24663         (build_range_check, fold_cond_expr_with_comparison, unextend,
24664         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
24665         multiple_of_p): Adjust call to const_binop.
24666
24667 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
24668
24669         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
24670         determine size of XFmode operand.
24671         (XFmode extended DFmode push splitter): Ditto.
24672         (XFmode extended SFmode push splitter): Ditto.
24673
24674 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
24675
24676         PR target/44588
24677         * config/i386/i386.md (extract_code): New.
24678         (<u>divmodqi4): Likewise.
24679         (divmodhiqi3): Likewise.
24680         (udivmodhiqi3): Likewise.
24681         (<u>divqi3): Remvoved.
24682
24683 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
24684
24685         PR middle-end/44492
24686         * recog.h (struct recog_data): Add is_asm field.
24687         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
24688         present in constraints of inline-asm operand and memory operand
24689         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
24690         (extract_insn): Initialize recog_data.is_asm.
24691         * doc/md.texi (Constraints): Document operand side-effect rules.
24692
24693 2010-06-24  Andi Kleen  <ak@linux.intel.com>
24694
24695         * c-parser.c (c_parser_conditional_expression): Call
24696         warn_for_omitted_condop.
24697         * doc/invoke.texi: Document omitted condop warning.
24698
24699 2010-06-24  Nick Clifton<nickc@redhat.com>
24700
24701         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
24702         insn in the sequence is a jump insn before setting its label.
24703
24704 2010-06-24  Alan Modra  <amodra@gmail.com>
24705
24706         * collect2.c (main): Match exactly --version and --help.
24707
24708 2010-06-24  DJ Delorie  <dj@redhat.com>
24709
24710         * config/m32c/m32c-pragma.c: Don't include rtl.h.
24711
24712 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
24713
24714         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
24715         using X87MODEF mode iterator.
24716         (pushsf splitter): Macroize splitter using P mode iterator.
24717         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
24718         mode iterator.
24719
24720         (*movxf_internal): Rename from *movxf_integer.
24721         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
24722         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
24723         (*movdf_internal): Rename from *movdf_integer.
24724         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
24725         (*movsf_internal): Rename from *movdf_1.
24726
24727 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
24728
24729         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
24730         (const_gimple_seq_node): Removed typedefs.
24731
24732         * gimple.h (gimple_seq_node_d, gimple_seq_node)
24733         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
24734
24735 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
24736
24737         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
24738         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
24739         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
24740         and CODE_FOR_vec_extract_lo_v4df.
24741
24742         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
24743         Changed to define_insn_and_split.
24744         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
24745         (vec_extract_lo_v16hi): Likewise.
24746         (vec_extract_lo_v32qi): Likewise.
24747         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
24748         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
24749
24750 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
24751
24752         PR target/44640
24753         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
24754         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
24755         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
24756         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
24757         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
24758
24759         PR target/44640
24760         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
24761
24762         PR other/44644
24763         * df-core.c (struct df): Rename to df_d.
24764         * df.h (struct df): Likewise.
24765         * dse.h (struct df): Remove forward declaration.
24766         * recog.h (struct insn_data): Rename to:
24767         (struct_insn_data_d).  Adjusted all users.
24768
24769 2010-06-23  Arnaud Charlet  <charlet@adacore.com
24770
24771         PR ada/22220
24772         * doc/install.texi: Update requirements to build GNAT.
24773
24774 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
24775
24776         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
24777         enum type.
24778         (m68k_sched_attr_opx_type): Remove unreachable return.
24779         (m68k_sched_attr_opy_type): Likewise.
24780         (m68k_sched_attr_size): Likewise.
24781         (sched_get_opxy_mem_type): Likewise.
24782         (m68k_sched_attr_op_mem): Likewise.
24783
24784 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
24785
24786         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
24787         new statement and adjust VDEF only if necessary.  Remove superfluous
24788         call to maybe_clean_or_replace_eh_stmt.
24789         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
24790         copy the flags.
24791         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
24792         * tree-inline.c (copy_bb): ...and not there.
24793
24794 2010-06-22  Cary Coutant  <ccoutant@google.com>
24795
24796         * dwarf2out.c (is_nested_in_subprogram): New function.
24797         (should_move_die_to_comdat): Use it.
24798         (copy_ancestor_tree): Don't mark DIEs here.
24799         (copy_decls_walk): Start walk from root of newly-added tree;
24800         mark DIEs here instead.
24801
24802 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
24803
24804         * config/i386/i386.md (unit): Also check sseishft1.
24805
24806 2010-06-22  Jan Hubicka  <jh@suse.cz>
24807
24808         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
24809         enabled.
24810
24811 2010-06-22  Jan Hubicka  <jh@suse.cz>
24812
24813         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
24814         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
24815         Return true if something changed.
24816         * df.h (df_confluence_function_n): Return bool.
24817         * df-core.c (df_worklist_propagate_forward,
24818         df_worklist_propagate_backward): Track changes and ages.
24819         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
24820         track ages.
24821         * dse.c (dse_confluence_n): Return always true.
24822
24823 2010-06-22  Jan Hubicka  <jh@suse.cz>
24824
24825         * bitmap.c (bitmap_clear_bit): Micro optimize.
24826
24827 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
24828
24829         * config/i386/i386.md (SWI1248x): New mode iterator.
24830         (SWI48x): Ditto.
24831         (SWI12): Ditto.
24832         (SWI24): Ditto.
24833
24834         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
24835         SWI1248x mode iterator.
24836         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
24837         using SWI124 mode iterator.
24838         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
24839         mode iterator.
24840         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
24841         *pushdi2_prologue_rex64 using P mode iterator.
24842         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
24843         using SWI48 mode iterator.
24844         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
24845         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
24846         using SWI1248x mode iterator.
24847         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
24848         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
24849         SWI48 mode iterator.
24850         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
24851         iterator.
24852         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
24853         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
24854         SWI12 mode iterator.
24855         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
24856         SWI12 mode iterator.
24857         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
24858         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
24859         SWI24 mode iterator.
24860         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
24861         SWI48 mode iterator.
24862         (mov<mode>_insn_1): New expander.
24863         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
24864         using SWI48x mode iterator.
24865
24866         (*movoi_internal_avx): Rename from *movoi_internal.
24867         (*movti_internal_rex64): Rename from *movti_rex64.
24868         (*movti_internal_sse): Rename from *movti_sse.
24869         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
24870         (*movdi_internal): Rename from *movdi_2.
24871         (*movsi_internal): Rename from *movsi_1.
24872         (*movhi_internal): Rename from *movhi_1.
24873         (*movqi_internal): Rename from *movqi_1.
24874
24875         (insv): Update the call to gen_movsi_insv_1 for rename.
24876         * config/i386/i386.c (promote_duplicated_reg): Ditto.
24877
24878 2010-06-22  Jan Hubicka  <jh@suse.cz>
24879
24880         * passes.c (execute_function_todo): Move call of statistics_fini_pass
24881         to ...
24882         (execute_todo) ... this one.
24883
24884 2010-06-22  Alan Modra  <amodra@gmail.com>
24885
24886         PR target/44364
24887         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
24888         * caller-save.c (insert_restore, insert_save): Use non-validate
24889         form of adjust_address.
24890
24891 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24892
24893         PR target/39690
24894         * config/pa/pa.c (override_options): Disable
24895         -freorder-blocks-and-partition.
24896
24897 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
24898
24899         PR target/44615
24900         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
24901
24902         * config/i386/i386.md (type): Add sseishft1
24903
24904         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
24905         (ppro_insn_load): Likewise.
24906         (ppro_insn_store): Likewise.
24907         (ppro_insn_both): Likewise.
24908
24909         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
24910         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
24911         for type.
24912         (*vec_extractv2di_1_avx): Likewise.
24913         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
24914         type.  Remove atom_unit.
24915         (*vec_extractv2di_1_sse2): Likewise.
24916
24917 2010-06-21  DJ Delorie  <dj@redhat.com>
24918
24919         * diagnostic.h (diagnostic_classification_change_t): New.
24920         (diagnostic_context): Add history and push/pop list.
24921         (diagnostic_push_diagnostics): Declare.
24922         (diagnostic_pop_diagnostics): Declare.
24923         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
24924         from pragmas in a history chain instead of the global table.
24925         (diagnostic_push_diagnostics): New.
24926         (diagnostic_pop_diagnostics): New.
24927         (diagnostic_report_diagnostic): Scan history chain to find state
24928         of diagnostics as of the diagnostic location.
24929         * opts.c (set_option): Pass UNKNOWN_LOCATION to
24930         diagnostic_classify_diagnostic.
24931         (enable_warning_as_error): Likewise.
24932         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
24933         use in the history chain.
24934         * doc/extend.texi: Document pragma GCC diagnostic changes.
24935
24936 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
24937
24938         * dwarf2out.c (add_linkage_name): New function.  Don't add
24939         anything to DW_TAG_member DIEs.
24940         (add_name_and_src_coords_attributes): Use it.
24941         (gen_variable_die): Call it for C++ static data members if
24942         specification is DW_TAG_member.
24943
24944         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
24945         C++ char16_t and char32_t.
24946
24947         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
24948         * genattrtab.c: Include vecprim.h.
24949         (cached_attrs, cached_attr_count, attrs_seen_once,
24950         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
24951         attrs_cached_after): New variables.
24952         (find_attrs_to_cache): New function.
24953         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
24954         (write_test_expr): Add attrs_cached argument, return it too,
24955         attempt to cache non-const attributes used more than once in
24956         a single case handling.
24957         (write_attr_get): Use find_attrs_to_cache, for caching candidates
24958         emit cached_* variables.  Adjust write_attr_set callers.
24959         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
24960         to find attributes that should be cached in this block.  Adjust
24961         write_test_expr callers.
24962         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
24963         callers.
24964         (make_automaton_attrs): Adjust write_test_expr caller.
24965
24966         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
24967         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
24968         (make_automaton_attrs): If find_tune_attr returns non-NULL,
24969         write separate internal_dfa_insn_code_* and insn_default_latency_*
24970         functions for each attribute's value and emit init_sched_attrs
24971         function and function pointers.
24972         * genattr.c (const_attrs, reservations): New variables.
24973         (gen_attr): Add const attributes to const_attrs vector.
24974         (check_tune_attr, find_tune_attr): New functions.
24975         (main): Add reservations to reservations vector.  If find_tune_attr
24976         returns true, add prototype for init_sched_attrs and make
24977         internal_dfa_insn_code and insn_default_latency function pointers,
24978         otherwise define init_sched_attrs as dummy macro.
24979         * cfgexpand.c: Include insn-attr.h.
24980         (gimple_expand_cfg): Call init_sched_attrs.
24981
24982         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
24983
24984         PR target/44575
24985         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
24986         va_arg from a set of register save slots into a temporary,
24987         if the container is bigger than type size, do the copying
24988         using smaller mode or using memcpy.
24989
24990         PR bootstrap/44426
24991         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
24992         prototype.
24993         (sel_print_to_dot): Remove macro.
24994         (sel_print): Likewise.  New prototype.
24995         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
24996         (sel_print): New function.
24997
24998 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24999
25000         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
25001         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
25002
25003 2010-06-21  Nick Clifton  <nickc@redhat.com>
25004
25005         * config/rx/rx.h (PTRDIFF_TYPE): Define.
25006         (SMALL_REGISTER_CLASS): Define (to zero).
25007         (PRINT_OPERAND): Delete.
25008         (PRINT_OPERAND_ADDRESS): Delete.
25009         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
25010         (rx_print_operand_address): Delete prototype.
25011         * config/rx/rx.c (rx_print_operand): Make static.
25012         Allow %H and %L to handle CONST_DOUBLEs.
25013         (rx_print_operand_address): Make static.
25014         (rx_gen_move_template): Rename local variable 'template' to
25015         out_template.
25016         (rx_function_arg): Do not pass unknown sized objects in registers.
25017         (TARGET_PRINT_OPERAND): Define.
25018         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25019
25020 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
25021
25022         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
25023
25024 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
25025
25026         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
25027         stack-alignment for simple leaf-functions.
25028
25029 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
25030
25031         * doc/install.texi: Document bootstrap-lto.
25032
25033 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
25034
25035         PR debug/44248
25036         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
25037         (input_function): Drop them here, if VTA is disabled.
25038
25039 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
25040
25041         PR target/44546
25042         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
25043         New predicate.
25044         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
25045         ix86_swapped_fp_comparsion_operator instead of
25046         ix86_fp_comparison_operator.
25047
25048         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
25049         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
25050         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
25051         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
25052         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
25053         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
25054
25055 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
25056
25057         PR other/32998
25058         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
25059         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
25060         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
25061         (decode_cmdline_option): Update for this return value.  Set
25062         orig_option_with_args_text field.  Set arg field for unknown
25063         options.  Make static.
25064         (decode_cmdline_options_to_array): New.
25065         (prune_options): Update handling of find_opt return value.
25066         * opts.c (read_cmdline_option): Take decoded option.  Return void.
25067         (read_cmdline_options): Take decoded options.
25068         (decode_options): Add parameters for decoded options.  Use
25069         decode_cmdline_options_to_array.  Use decoded options for -O
25070         scan.  Use integral_argument for -O parameters.  Update call to
25071         read_cmdline_options.
25072         (enable_warning_as_error): Update handling of find_opt return value.
25073         * opts.h: Update comment on unknown options.
25074         (struct cl_decoded_option): Update comments on opt_index and arg.
25075         Add orig_option_with_args_text.
25076         (decode_cmdline_option): Remove.
25077         (decode_cmdline_options_to_array): Declare.
25078         (decode_options): Update prototype.
25079         * toplev.c (save_argv): Remove.
25080         (save_decoded_options, save_decoded_options_count): New.
25081         (read_integral_parameter): Remove.
25082         (print_switch_values): Use decoded options.
25083         (toplev_main): Don't set save_argv.  Update call to decode_options.
25084         * toplev.h (read_integral_parameter): Remove.
25085         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
25086
25087 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
25088
25089         PR target/44072
25090         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
25091         immediate.
25092         * constraints.md (Pw, Px): New constraints.
25093         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
25094
25095 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
25096
25097         * config/i386/sse.md (fma4modesuffixf4): Removed.
25098         (ssemodesuffixf2s): Likewise.
25099         (ssemodesuffixf4): Likewise.
25100         (ssemodesuffixf2c): Likewise.
25101         (ssescalarmodesuffix2s): Likewise.
25102         (avxmodesuffixf2c): Likewise.
25103         (ssemodesuffix): New.
25104         (ssescalarmodesuffix): Likewise.
25105         Update patterns with ssemodesuffix and ssescalarmodesuffix.
25106
25107 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
25108
25109         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
25110
25111 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
25112
25113         * stor-layout.c (debug_rli): Remove unused local variables.
25114
25115 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
25116
25117         PR rtl-optimization/40900
25118         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
25119         original expression for later reuse.
25120         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
25121         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
25122
25123 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
25124
25125         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
25126         double_int_fits_in_uhwi_p): Implement as static inline.
25127         (double_int_xor): New inline function.
25128         (double_int_lrotate, double_int_rrotate, double_int_max,
25129         double_int_umax, double_int_smax, double_int_min, double_int_umin,
25130         double_int_smin): Declare.
25131         (lrotate_double, rrotate_double): Remove declaration.
25132         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
25133         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
25134         (double_int_lrotate, double_int_rrotate, double_int_max,
25135         double_int_umax, double_int_smax, double_int_min, double_int_umin,
25136         double_int_smin): New function.
25137         * fold-const.c (int_const_binop): Clean up, use double_int_*
25138         functions.
25139         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
25140         double_int_* and immed_double_int_const functions.
25141
25142 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
25143
25144         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
25145         * function.c (types_used_by_cur_var_decl): Likewise.
25146         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
25147
25148 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
25149
25150         * tree.h (record_layout_info): Change type of pending_statics field
25151         to a VEC.
25152         * stor-layout.c (start_record_layout): Store NULL into
25153         pending_statics.
25154         (debug_rli): Call debug_vec_tree instead of debug_tree.
25155         (place_field): Likewise.
25156         (finish_record_layout): Likewise.
25157
25158 2010-06-18  Alan Modra  <amodra@gmail.com>
25159
25160         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
25161
25162 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25163
25164         PR target/43740
25165         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
25166         for SET source operand from SET destination operand.
25167
25168 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
25169
25170         PR rtl-optimization/39871
25171         * reload1.c (init_eliminable_invariants): For flag_pic, disable
25172         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
25173         (function_invariant_p): Rule out a plus of frame or arg pointer with
25174         a SYMBOL_REF.
25175         * ira.c (find_reg_equiv_invariant_const): Likewise.
25176
25177 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
25178
25179         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
25180         print_operand_address and puts to output the operand for CONST.
25181
25182 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
25183
25184         PR debug/44572
25185         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
25186         hook.
25187
25188 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25189
25190         * v850-protos.h (print_operand): Delete.
25191         (print_operand_address): Delete.
25192         * v850.h (PRINT_OPERAND): Delete.
25193         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25194         (PRINT_OPERAND_ADDRESS): Delete.
25195         * v850.c (print_operand_address): Rename to...
25196         (v850_print_operand_address): ...this.  Make static. Call
25197         v850_print_operand.
25198         (print_operand): Rename to...
25199         (v850_print_operand): ...this.  Make static.  Call
25200         v850_print_operand_address.
25201         (v850_print_operand_punct_valid_p): New function.
25202         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25203         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25204
25205 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25206
25207         * config/sh/sh-protos.h (print_operand): Delete.
25208         (print_operand_address): Delete.
25209         * config/sh/sh.h (PRINT_OPERAND): Delete.
25210         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25211         (PRINT_OPERAND_ADDRESS): Delete.
25212         * config/sh/sh.c (sh_print_operand_address): Make static.
25213         (sh_print_operand): Make static.  Call sh_print_operand_address
25214         and sh_print_operand.
25215         (sh_print_operand_punct_valid_p): New function.
25216         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25217         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25218
25219 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25220
25221         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
25222         (mcore_print_operand_address): Delete.
25223         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
25224         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25225         (PRINT_OPERAND_ADDRESS): Delete.
25226         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
25227         (mcore_print_operand): Make static.
25228         (mcore_print_operand_punct_valid_p): New function.
25229         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
25230         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25231
25232 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25233
25234         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
25235         (print_operand_address): Delete.
25236         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
25237         (PRINT_OPERAND_ADDRESS): Delete.
25238         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
25239         static.
25240         (m68hc11_print_operand): Make static.
25241         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25242
25243 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25244
25245         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
25246         (m32r_print_operand_address): Delete.
25247         * config/m32r/m32r.h (m32r_punct_chars): Delete.
25248         (PRINT_OPERAND): Delete.
25249         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25250         (PRINT_OPERAND_ADDRESS): Delete.
25251         * config/m32r/m32r.c (m32r_punct_chars): Make static.
25252         (m32r_print_operand_address): Make static.
25253         (m32r_print_operand): Make static.
25254         (m32r_print_operand_punct_valid_p): New function.
25255         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25256         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25257
25258 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25259
25260         * config/iq2000/iq2000-protos.h (print_operand): Delete.
25261         (print_operand_address): Delete.
25262         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
25263         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25264         (PRINT_OPERAND_ADDRESS): Delete.
25265         (iq2000_print_operand_punct): Delete.
25266         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
25267         (iq2000_print_operand_address): Make static.
25268         (iq2000_print_operand): Make static.
25269         (iq2000_print_operand_punct_valid_p): New function.
25270         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25271         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25272
25273 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25274
25275         * config/frv/frv-protos.h (frv_print_operand): Delete.
25276         (frv_print_operand_address): Delete.
25277         * config/frv/frv.h (PRINT_OPERAND): Delete.
25278         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25279         (PRINT_OPERAND_ADDRESS): Delete.
25280         * config/frv/frv.c (frv_print_operand_address): Make static.
25281         (frv_print_operand): Make static.
25282         (frv_print_operand_punct_valid_p): New function.
25283         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25284         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25285
25286 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25287
25288         * tree.h (vec_member): Declare.
25289         * tree.c (vec_member): Define.
25290
25291 2010-06-17  Richard Guenther  <rguenther@suse.de>
25292
25293         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
25294         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
25295
25296 2010-06-17  Richard Guenther  <rguenther@suse.de>
25297
25298         * tree-inline.c (declare_return_variable): Remove bogus code.
25299
25300 2010-06-17  Richard Guenther  <rguenther@suse.de>
25301
25302         * gimplify.c (gimplify_bind_expr): Always promote complex
25303         and vector variables to registers if possible.
25304
25305 2010-06-17  Richard Guenther  <rguenther@suse.de>
25306
25307         * expr.c (get_inner_reference): Use double_int for bit_offset
25308         calculation.
25309
25310 2010-06-16  DJ Delorie  <dj@redhat.com>
25311
25312         * common.opt (-fstrict-volatile-bitfields): new.
25313         * doc/invoke.texi: Document it.
25314         * fold-const.c (optimize_bit_field_compare): For volatile
25315         bitfields, use the field's type to determine the mode, not the
25316         field's size.
25317         * expr.c (expand_assignment): Likewise.
25318         (get_inner_reference): Likewise.
25319         (expand_expr_real_1): Likewise.
25320         * expmed.c (store_fixed_bit_field): Likewise.
25321         (extract_bit_field_1): Likewise.
25322         (extract_fixed_bit_field): Likewise.
25323
25324 2010-06-16  Richard Guenther  <rguenther@suse.de>
25325
25326         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
25327
25328 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
25329
25330         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
25331         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
25332         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
25333         * debug.c: Likewise.
25334         * sdbout.c: Likewise.
25335         * vmsdbgout.c: Likewise.
25336         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
25337         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
25338         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
25339         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
25340         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
25341         * dwarf2out.c (dw_fde_struct): New fields
25342         dw_fde_vms_{end,begin}_prologue.
25343         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
25344         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
25345         (dwarf2out_vms_end_prologue): New function.
25346         (dwarf2out_vms_begin_epilogue): New function.
25347         (dw_val_struct): New value dw_val_class_vms_delta.
25348         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
25349         begin_epilogue for VMS.
25350         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
25351         new static functions.
25352         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
25353         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
25354         static functions.
25355         (print_die): New case dw_val_class_vms_delta.
25356         (attr_checksum): Likewise.
25357         (same_dw_val_p: Likewise.
25358         (size_of_die): Likewise.
25359         (value_format): Likewise.
25360         (output_die): Likewise.
25361         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
25362         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
25363         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
25364         dwarf2out_cfi_begin_epilogue
25365         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
25366
25367 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
25368
25369         * config/cris/cris-protos.h (cris_print_operand): Delete.
25370         (cris_print_operand_address): Delete.
25371         * config/cris/cris.h (PRINT_OPERAND): Delete.
25372         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25373         (PRINT_OPERAND_ADDRESS): Delete.
25374         * config/cris/cris.c (cris_print_operand_address): Make static.
25375         (cris_print_operand): Make static.
25376         (cris_print_operand_punct_valid_p): New function.
25377         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25378         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25379
25380 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
25381
25382         * config/arm/arm-protos.h (arm_print_operand): Delete.
25383         (arm_print_operand_address): Delete.
25384         * config/arm/arm.h (PRINT_OPERAND): Delete.
25385         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25386         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
25387         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
25388         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
25389         (arm_print_operand): Make static.
25390         (arm_print_operand_punct_valid_p): New function.
25391         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25392         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25393
25394 2010-06-16  Nick Clifton  <nickc@redhat.com>
25395
25396         * config/rx/constraints.md (NEGint4): New constraint.
25397         * config/rx/rx.md (attr cc): Add set_zsc.
25398         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
25399         initialised.
25400         (cmpsf): Likewise.
25401         (call_internal): Clobber the cc0 register.
25402         (call_value_internal): Likewise.
25403         (cstoresi4): Likewise.
25404         (movsieq): Likewise.
25405         (movsine): Likewise.
25406         (addsi3): Add alternative to handle small negative constants.
25407         (sunsi3): Likewise.
25408         (addsi3): Do not set the O bit in the cc0 register.
25409         (adddi3): Likewise.
25410         (subsi3): Likewise.
25411         (subdi3): Likewise.
25412         (andsi3): Reorder alternatives to prefer shorter forms.
25413         (mulsi3): Likewise.
25414         (iorsi3): Likewise.
25415         (negsi2): Note that the cc0 flags are set.
25416         (rotlsi3): Note that only the Z and S bits are set in cc0.
25417         (lshrsi3): Likewise.
25418         (ashlsi3): Likewise.
25419         (subsf3): Use %Q for the MEM operand.
25420         (fix_truncsfsi2): Likewise.
25421         (floatsisf2): Likewise.
25422         (bitset): Remove early clobber from destination.
25423         (bitset_in_memory): Likewise.
25424         (lrintsf2): Clobber the cc0 register.
25425         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
25426         (rx_print_operand): Handle %N.
25427
25428 2010-06-16  Jan Hubicka  <jh@suse.cz>
25429
25430         * df-core.c (df_compact_blocks): Free problem_temps vector.
25431
25432 2010-06-16  Martin Jambor  <mjambor@suse.cz>
25433
25434         PR tree-optimization/43905
25435         * tree-sra.c: Include tree-inline.h.
25436         (create_abstract_origin): Removed.
25437         (modify_function): Version the call graph node instead of creating
25438         abstract origins and dealing with same_body aliases.
25439         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
25440         function is versionable.
25441         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
25442
25443 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
25444
25445         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
25446         (CHOOSE_DYNAMIC_LINKER): Update.
25447
25448 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
25449
25450         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
25451         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
25452         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
25453         *prefetch_3dnow_rex.
25454
25455 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
25456
25457         * target.h (struct asm_out):Add declare_constant_name field.
25458         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
25459         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
25460         * output.h (default_asm_declare_constant_name): Declare.
25461         (assemble_label): Update prototype.
25462         * varasm.c (assemble_constant_contents): Use
25463         targetm.asm_out.declare_constant_name target hook.
25464         (assemble_label): Add 'file' argument.
25465         (default_asm_declare_constant_name): New function.
25466         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
25467         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
25468         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
25469
25470         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
25471         * config/darwin.c (darwin_asm_declare_constant_name): New function.
25472         (machopic_output_indirection): Update assemble_label argument list.
25473         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
25474         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
25475
25476 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
25477
25478         PR middle-end/44391
25479         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
25480         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
25481
25482 2010-06-15  Richard Guenther  <rguenther@suse.de>
25483
25484         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
25485
25486 2010-06-15  Paul Brook  <paul@codesourcery.com>
25487
25488         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
25489         hard-float ABI.
25490
25491 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
25492
25493         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
25494         don't get a vector type for output.
25495
25496 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
25497
25498         PR fortran/44536
25499         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
25500         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
25501         (LANG_HOOKS_DECLS): Add it.
25502         * gimplify.c (omp_notice_variable): Call
25503         lang_hooks.decls.omp_report_decl.
25504
25505 2010-06-15  Martin Jambor  <mjambor@suse.cz>
25506
25507         PR lto/44464
25508         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
25509         on the newly dead SSA name.
25510
25511 2010-06-15  Alan Modra  <amodra@gmail.com>
25512
25513         * doc/invoke.texi: Add mcmodel to powerpc options.
25514         * configure.ac: Add HAVE_LD_LARGE_TOC test.
25515         * configure: Regenerate.
25516         * config.in: Regenerate.
25517         * config/rs6000/linux64.opt (mcmodel): New.
25518         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
25519         (TARGET_CMODEL, SET_CMODEL): Define.
25520         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
25521         select CMODEL_MEDIUM default.
25522         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
25523         (TARGET_CMODEL): Define default.
25524         * config/rs6000/rs6000.c (cmodel): New variable.
25525         (rs6000_explicit_options): Add cmodel field.
25526         (rs6000_handle_option): Handle -mcmodel.
25527         (create_TOC_reference): Add largetoc_reg param.  Generate high,
25528         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
25529         (rs6000_delegitimize_address): Recognise new toc reference rtl
25530         and minimal-toc rtl.
25531         (rs6000_legitimize_reload_address): Handle new toc references.
25532         (print_operand_address): Handle legitimate_constant_pool_address_p
25533         match before lo_sum.
25534         (rs6000_eliminate_indexed_memrefs): Tidy.
25535         (rs6000_emit_move): Tweak threshold for inlining constants.
25536         Keep rs6000_emit_allocate_stack large stack frame offsets
25537         loaded into r0 inline.
25538         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
25539         (tocrel_base, tocrel_offset): New variables.
25540         (toc_relative_expr_p): Set them here.
25541         (print_operand_address): Skip over any offset on constant pool address.
25542         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
25543         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
25544         (offsettable_ok_by_alignment): New function.
25545         (rs6000_emit_move): Address suitably aligned local symbol_refs
25546         relative to the toc pointer for -mcmodel=medium.
25547         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
25548         strict param.  Allow lo_sum version of addressing.  Verify reg
25549         used for -mminimal-toc and -mcmodel != small.  Update all callers.
25550         * config/rs6000/constraints.md: Update for above change.
25551         * config/rs6000/predicates.md: Likewise.
25552         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
25553         code.
25554         (tls_gd): Split for -mcmodel=medium/large.
25555         (tls_gd_high, tls_gd_low): New.
25556         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
25557         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
25558         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
25559         (largetoc_high, largetoc_low): New.
25560         (cmptf_internal2): Add clobber.
25561         * config/rs6000/rs6000-protos.h: Update.
25562
25563 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
25564
25565         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
25566         true if no prefetch is going to be generated for a given group.
25567         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
25568         estimate the prefetch_count.
25569         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
25570         prefetch count by considering the unroll_factor and prefetch_mod
25571         for is_loop_prefetching_profitable.
25572
25573 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
25574
25575         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
25576         anything if the argument is not a MEM.
25577
25578 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
25579
25580         PR debug/43650
25581         PR debug/44181
25582         PR debug/44247
25583         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
25584         debug stmts.
25585         (canonicalize_loop_ivs): Likewise.
25586
25587 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
25588
25589         PR debug/43656
25590         * haifa-sched.c (setup_insn_reg_pressure_info,
25591         update_register_pressure): Reject debug insns.
25592         (ready_sort): Don't setup reg pressure for debug insns.
25593         (schedule_insn): Don't update reg pressure for debug insns.
25594
25595 2010-06-14  Richard Guenther  <rguenther@suse.de>
25596
25597         * lto-streamer.c (cached_bp): Remove.
25598         (bitpack_delete): Likewise.
25599         (bitpack_create): Likewise.
25600         (bp_get_next_word): Likewise.
25601         (bp_pack_value, bp_unpack_value): Move ...
25602         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
25603         Re-implement.
25604         (struct bitpack_d): Likewise.
25605         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
25606         New inline functions.
25607         * lto-streamer-out.c (lto_output_bitpack): Remove.
25608         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
25609         (pack_value_fields): Adjust.
25610         (lto_write_tree): Likewise.
25611         (output_gimple_stmt): Likewise.
25612         (output_function): Likewise.
25613         * lto-streamer-in.c (input_gimple_stmt): Adjust.
25614         (input_function): Likewise.
25615         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
25616         (lto_input_bitpack): Remove.
25617         (lto_materialize_tree): Adjust.
25618         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
25619         * lto-cgraph.c (lto_output_edge): Adjust.
25620         (lto_output_node): Likewise.
25621         (lto_output_varpool_node): Likewise.
25622         (lto_output_ref): Likewise.
25623         (input_node): Likewise.
25624         (input_varpool_node): Likewise.
25625         (input_ref): Likewise.
25626         (input_edge): Likewise.
25627         (output_node_opt_summary): Likewise.
25628         (input_node_opt_summary): Likewise.
25629         * ipa-pure-const.c (pure_const_write_summary): Likewise.
25630         (pure_const_read_summary): Likewise.
25631         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
25632         (ipa_read_indirect_edge_info): Likewise.
25633         (ipa_write_node_info): Likewise.
25634         (ipa_read_node_info): Likewise.
25635
25636 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
25637
25638         PR target/44534
25639         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
25640         (vec_extract_lo_v16hi): Likewise.
25641         (vec_extract_lo_v32qi): Likewise.
25642
25643 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
25644
25645         PR bootstrap/44426
25646         * tree.h (build_call_expr): Don't define as vararg macro, instead
25647         add a prototype.
25648         * builtins.c (build_call_nofold): Remove.
25649         (expand_builtin_int_roundingfn, expand_builtin_pow,
25650         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
25651         expand_builtin_memset_args, expand_builtin_strcmp,
25652         expand_builtin_strncmp, expand_builtin_memory_chk): Use
25653         build_call_nofold_loc instead of build_call_nofold.
25654         (build_call_expr): New function.
25655
25656         PR tree-optimization/44508
25657         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
25658         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
25659         don't eliminate trivially dead stmts.
25660         * tree-vrp.c (vrp_finalize): Pass false as last argument
25661         to substitute_and_fold.
25662         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
25663         to substitute_and_fold.
25664         * tree-ssa-ccp.c (ccp_finalize): Likewise.
25665
25666         PR bootstrap/44509
25667         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
25668
25669 2010-06-14  Ira Rosen  <irar@il.ibm.com>
25670
25671         PR tree-optimization/44507
25672         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
25673         to build initial vector for BIT_AND_EXPR.
25674         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
25675
25676 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
25677
25678         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
25679         adjust z10prop set_attr.
25680
25681 2010-06-13  Jan Hubicka  <jh@suse.cz>
25682
25683         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
25684         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
25685         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
25686         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
25687         datastructure checks into checking asserts.
25688         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
25689         * tree-ssa-sccvn.c (VN_INFO): Likewise.
25690         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
25691         df_ref_create_structure): Likewise.
25692         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
25693         pool_free): Use gcc_checking_assert.
25694         * alias.c (get_alias_set): Likewise.
25695         * var-tracking.c (variable_htab_free, shared_hash_copy,
25696         canonicalize_values_mark, variable_merge_over_cur): Likewise.
25697         * lto-streamer.c (bp_unpack_value): Likewise.
25698
25699 2010-06-13  Richard Guenther  <rguenther@suse.de>
25700
25701         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
25702         Do not stream but initialize TYPE_CANONICAL to NULL.
25703         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
25704         * gimple.c (gimple_types_compatible_p): Disregard
25705         TYPE_STRUCTURAL_EQUALITY_P.
25706         (gimple_register_type): Use TYPE_CANONICAL as cache.
25707         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
25708         before registering common types.
25709         * config/i386/i386.c (ix86_function_arg_boundary): Do not
25710         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
25711         * tree.h (TYPE_CANONICAL): Clarify documentation.
25712
25713 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
25714
25715         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
25716         LIBCALL_VALUE): Remove macros.
25717         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
25718         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25719         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25720         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
25721         (ia64_function_value): Make static. Handle receiving the function
25722         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
25723
25724 2010-06-12  Jan Hubicka  <jh@suse.cz>
25725
25726         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
25727         at correct place.
25728
25729 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
25730
25731         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
25732
25733 2010-06-12  Jan Hubicka  <jh@suse.cz>
25734
25735         * df-core.c (df_clear_bb_info): New function.
25736         (df_set_blocks): bb_info is always allocated.
25737         (df_get_bb_info): Use block_info_elt_size.
25738         (df_set_bb_info): Likewise.
25739         (df_compact_blocks): Update for new block_info.
25740         (grow_bb_info): New function.
25741         * df-problems.c (df_grow_bb_info): Move to df-core.c
25742         (df_rd_set_bb_info): Remove.
25743         (df_rd_free_bb_info): Do not free block pool.
25744         (df_rd_alloc): Do not create pool, use check for
25745         obstack presence instead of NULL pointer for new blocks.
25746         (df_rd_free): DO not free alloc pool; clear block_info.
25747         (problem_RD): Add size of block info structure.
25748         (df_lr_set_bb_info): Remove.
25749         (df_lr_free_bb_info): Do not free block pool.
25750         (df_lr_alloc): Do not create pool, use check for
25751         obstack presence instead of NULL pointer for new blocks.
25752         (df_lr_free): DO not free alloc pool; clear block_info.
25753         (problem_LR): Add size of block info structure.
25754         (df_live_set_bb_info): Remove.
25755         (df_live_free_bb_info): Do not free block pool.
25756         (df_live_alloc): Do not create pool, use check for
25757         obstack presence instead of NULL pointer for new blocks.
25758         (df_live_free): DO not free alloc pool; clear block_info.
25759         (problem_LIVE): Add size of block info structure.
25760         (problem_CHAIN): Add size of block info structure.
25761         (df_byte_lr_set_bb_info): Remove.
25762         (df_byte_lr_free_bb_info): Do not free block pool.
25763         (df_byte_lr_alloc): Do not create pool, use check for
25764         obstack presence instead of NULL pointer for new blocks.
25765         (df_byte_lr_free): DO not free alloc pool; clear block_info.
25766         (problem_BYTE_LR): Add size of block info structure.
25767         (problem_NOTE): Add size of block info structure.
25768         (df_byte_MD_set_bb_info): Remove.
25769         (df_byte_MD_free_bb_info): Do not free block pool.
25770         (df_byte_MD_alloc): Do not create pool, use check for
25771         obstack presence instead of NULL pointer for new blocks.
25772         (df_byte_MD_free): DO not free alloc pool; clear block_info.
25773         (problem_BD): Add size of block info structure.
25774         * df-scan.c (df_scan_free_internal): Free block pool.
25775         (df_scan_set_bb_info): Remove.
25776         (df_scan_free_bb_info): Check for artificial_defs instead
25777         of bb_info being non-NULL.
25778         (df_scan_alloc): DO not create df_scan_block pool.
25779         (problem_SCAN): Set size of block info.
25780         (df_bb_refs_record): Do not allocate bb_info.
25781         * df.h (df_problem): Add block_info_elt_size.
25782         (struct dataflow): Change block_info to void *.
25783         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
25784         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
25785         in-line structures.
25786
25787 2010-06-12  Jan Hubicka  <jh@suse.cz>
25788
25789         PR tree-optimize/44485
25790         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
25791         containing use of return value of noreturn function.
25792
25793 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
25794
25795         * targhooks.c (default_function_value): Don't use
25796         FUNCTION_OUTGOING_VALUE.
25797         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
25798         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
25799
25800 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
25801
25802         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
25803         Add crtfastmath.o to extra_parts.
25804         * config/mips/crtfastmath.c: New.
25805         * config/mips/linux.h (ENDFILE_SPEC): New.
25806
25807 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
25808
25809         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
25810         old_type in parameter.
25811         (gcc_type_for_value): Update call to gcc_type_for_interval.
25812         (compute_type_for_level_1): Renamed compute_type_for_level.
25813         Update call to gcc_type_for_interval.
25814
25815 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
25816
25817         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
25818         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
25819
25820 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
25821
25822         * opts-common.c: Include options.h.
25823         (integral_argument): Move from opts.c.
25824         (decode_cmdline_option): New.  Based on read_cmdline_option.
25825         * opts.c (integral_argument): Move to opts-common.c.
25826         (read_cmdline_option): Move most contents to
25827         decode_cmdline_option.  Use %qs in diagnostics.
25828         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
25829         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
25830         decode_cmdline_option): New.
25831
25832 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25833
25834         PR target/44481
25835         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
25836         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
25837         (partiysi2_cmp): Ditto.
25838         (*partiyhi2_cmp): Ditto.
25839         (*parityqi2_cmp): Remove.
25840
25841 2010-06-11  Jan Hubicka  <jh@suse.cz>
25842
25843         * bitmap.h (bmp_iter_next_bit): New.
25844         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
25845
25846 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
25847             Eric Botcazou  <ebotcazou@adacore.com>
25848
25849         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
25850         computed cost.
25851
25852 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25853
25854         * config/i386/i386.md (unspec): New define_c_enum.
25855         (unspecv): Ditto.
25856
25857 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
25858
25859         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
25860
25861 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
25862
25863         PR middle-end/44483
25864         * tree-if-conv.c (bb_predicate_s): New struct.
25865         (bb_predicate_p): New.
25866         (bb_has_predicate): New.
25867         (bb_predicate): New.
25868         (set_bb_predicate): New.
25869         (bb_predicate_gimplified_stmts): New.
25870         (set_bb_predicate_gimplified_stmts): New.
25871         (add_bb_predicate_gimplified_stmts): New.
25872         (init_bb_predicate): New.
25873         (free_bb_predicate): New.
25874         (is_predicated): Use bb_predicate.
25875         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
25876         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
25877         before processing their successors.
25878         (clean_predicate_lists): Removed.
25879         (find_phi_replacement_condition): Use bb_predicate.
25880         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
25881         computations.
25882         (insert_gimplified_predicates): New.
25883         (combine_blocks): Call insert_gimplified_predicates.
25884         (tree_if_conversion): Call free_bb_predicate instead of
25885         clean_predicate_lists.
25886
25887 2010-10-11  Paul Brook  <paul@codesourcery.com>
25888
25889         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
25890         * config/arm/arm.c (all_architectures): Change v7e-m default to
25891         cortexm4.
25892         * config/arm/arm-cores.def: Add cortex-m4.
25893         * config/arm/arm-tune.md: Regenerate.
25894
25895 2010-06-11  Jan Hubicka  <jh@suse.cz>
25896
25897         * ipa-pure-const.c (special_builtlin_state): New function.
25898         (check_call): Use it instead of special casign BUILT_IN_RETURN.
25899         (propagate_pure_const): Use it.
25900
25901 2010-06-11  Jan Hubicka  <jh@suse.cz>
25902
25903         * df-problems.c (df_live_scratch): Convert to bitmap_head.
25904         (df_live_alloc): Initialize df_live_scratch when initializing
25905         problem_data.
25906         (df_live_transfer_function): Update uses of df_live_scratch.
25907         (df_live_free): Free problem_data; clear df_live_scratch before
25908         releasing the obstack.
25909         (df_md_free): Free problem data.
25910
25911 2010-06-11  Jan Hubicka  <jh@suse.cz>
25912
25913         * doc/invoke.texi (Wsuggest-attribute): Document.
25914         (Wmissing-noreturn): Remove.
25915         * ipa-pure-const.c (warn_function_noreturn): New function.
25916         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
25917         warn_missing_noreturn.
25918         * common.opt (Wsuggest-attribute=noreturn): New.
25919         * tree-flow.h (warn_function_noreturn): Declare.
25920         * tree-cfg.c (execute_warn_function_noreturn): Use
25921         warn_function_noreturn.
25922         (gate_warn_function_noreturn): New.
25923         (pass_warn_function_noreturn): Update.
25924
25925 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25926
25927         * c-typeck.c (handle_warn_cast_qual): Add loc
25928         parameter. Improve warning message.
25929         (build_c_cast): Pass location to handle_warn_cast_qual.
25930
25931 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25932
25933         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
25934         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
25935         insn mnemonic.
25936         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
25937
25938 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
25939
25940         Fix bootstap on mips
25941         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
25942         be naming typedefs.
25943
25944 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
25945
25946         * system.h (helper_const_non_const_cast): New inline for
25947         gcc version <= 4.0.
25948         (CONST_CAST2): For gcc version <= 4.0 use
25949         new helper to do const/non-const casting.
25950
25951 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25952
25953         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
25954         * Makefile.in (OBJS-common): Include insn-enums.o.
25955         (insn-enums.o): New rule.
25956         (simple_generated_c): Add insn-enums.c.
25957         (build/genenums.o): New rule.
25958         (genprogmd): Add "enums".
25959         * genconstants.c (print_enum_type): Declare a C string array
25960         for each enum.
25961         * genenums.c: New file.
25962         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
25963         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
25964         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
25965
25966 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25967
25968         * doc/md.texi (define_enum_attr): Document.
25969         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
25970         * read-md.h (lookup_enum_type): Declare.
25971         * read-md.c (lookup_enum_type): New function.
25972         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
25973         * genattrtab.c (attr_desc): Add an enum_name field.
25974         (evaluate_eq_attr): Take the associated attribute as argument.
25975         Get the enum prefix from the enum_name field, if defined.
25976         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
25977         (simplify_test_exp): Pass attr to evaluate_eq_attr.
25978         (add_attr_value): New function, split out from...
25979         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
25980         (write_test_expr): Pass attr to evaluate_eq_attr.
25981         (write_attr_get): Use the enum_name as the enum tag, if defined.
25982         (write_attr_valueq): Use the enum_name as a prefix, if defined.
25983         (find_attr): Initialize enum_name.
25984         (main): Handle DEFINE_ENUM_ATTR.
25985         * gensupport.c (process_rtx): Likewise.
25986         * config/mips/mips.h (mips_tune_attr): Delete.
25987         * config/mips/mips.md (cpu): Use define_attr_enum.
25988
25989 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25990
25991         * doc/md.texi (define_c_enum, define_enum): Document.
25992         * read-md.h (md_constant): Add a parent_enum field.
25993         (enum_value, enum_type): New structures.
25994         (upcase_string, traverse_enum_types): Declare.
25995         * read-md.c (enum_types): New variable.
25996         (upcase_string, add_constant): New functions.
25997         (handle_constants): Don't create the hash table here.
25998         Use add_constant.
25999         (traverse_md_constants): Don't check for a null md_constants.
26000         (decimal_string, handle_enum, traverse_enum_types): New functions.
26001         (read_md_files): Initialize md_constants and md_enums.
26002         * genconstants.c (print_md_constant): Ignore info argument.
26003         Only print constants that belong to no enum.
26004         (print_enum_type): New function.
26005         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
26006         for each defined enum type.
26007         * config/mips/mips.md (processor): New define_enum.
26008         (unspec): New define_c_enum.
26009         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
26010         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
26011         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
26012         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
26013         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
26014         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
26015         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
26016         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
26017         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
26018         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
26019         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
26020         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
26021         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
26022         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
26023         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
26024         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
26025         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
26026         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
26027         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
26028         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
26029         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
26030         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
26031         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
26032         (UNSPEC_RDDSP): Move to mips-dsp.md.
26033         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
26034         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
26035         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
26036         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
26037         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
26038         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
26039         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
26040         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
26041         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
26042         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
26043         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
26044         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
26045         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
26046         Moved to mips-dspr2.md.
26047         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
26048         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
26049         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
26050         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
26051         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
26052         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
26053         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
26054         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
26055         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
26056         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
26057         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
26058         UNSPEC_LOONGSON_PSADBH)
26059         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
26060         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
26061         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
26062         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
26063         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
26064         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
26065         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
26066         (cpu): Update comment.
26067         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
26068         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
26069         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
26070         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
26071         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
26072         UNSPEC_LOONGSON_PCMPEQ)
26073         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
26074         UNSPEC_LOONGSON_PINSR_0)
26075         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
26076         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
26077         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
26078         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
26079         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
26080         UNSPEC_LOONGSON_PSADBH)
26081         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
26082         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
26083         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
26084         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
26085         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
26086         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
26087         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
26088         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
26089         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
26090         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
26091         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
26092         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
26093         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
26094         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
26095         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
26096         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
26097         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
26098         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
26099         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
26100         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
26101         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
26102         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
26103         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
26104         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
26105         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
26106         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
26107         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
26108         (UNSPEC_RDDSP): Moved from mips.md.
26109         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
26110         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
26111         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
26112         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
26113         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
26114         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
26115         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
26116         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
26117         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
26118         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
26119         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
26120         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
26121         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
26122         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
26123         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
26124         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
26125         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
26126         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
26127         (UNSPEC_SCC): Moved from mips.md.
26128         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
26129         "processor_type" to "processor".
26130         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
26131         * config/mips/mips.h (processor_type): Delete.
26132         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
26133         "processor_type" to "processor".
26134
26135 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26136
26137         * configure.ac (tm_include_list): Add insn-constants.h.
26138         * configure: Regenerate.
26139         * Makefile.in (GTM_H): Move insn-constants.h here from...
26140         (TM_H): ...here.
26141         * mkconfig.sh: Remove special handling for insn-constants.h.
26142
26143 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26144
26145         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
26146         (BUILD_MD): ...this new variable.
26147         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
26148         that include the old contents of simple_generated_h and
26149         simple_generated_c.
26150         (simple_generated_h, simple_generated_c): Include them.  Add
26151         insn-constants.h.
26152         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
26153         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
26154         Remove these dependencies from the main rule and include
26155         insn-conditions.md in the command line only if it appears
26156         in the dependency list.
26157         (insn-constants.h, s-constants): Delete.
26158         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
26159         or gensupport.h.
26160         (build/genmddeps.o): Likewise.
26161         (genprogrtl): New variable that contains everything from genprogmd
26162         except mddeps and constants.
26163         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
26164         depend on $(BUILD_MD)
26165         (genprog): New variable.  Make these programs depend on
26166         $(BUILD_ERRORS).
26167         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
26168         (main): Use read_md_files instead of init_rtx_reader_args.
26169         * genconstants.c: As for genmddeps.c.
26170         * read-md.h (read_skip_construct): Declare.
26171         * read-md.c (read_skip_construct): New function.
26172         (handle_file): Allow a null handle_directive, skipping the
26173         construct if so.
26174         (parse_include): Update the comment accordingly.
26175
26176 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26177
26178         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
26179         * genmddeps.c: Include read-md.h.
26180         (main): Call init_rtx_reader_args instead of init_md_reader_args.
26181         * genattr.c (main): Likewise.
26182         * genattrtab.c (main): Likewise.
26183         * genautomata.c (main): Likewise.
26184         * gencodes.c (main): Likewise.
26185         * genconditions.c (main): Likewise.
26186         * genconfig.c (main): Likewise.
26187         * genconstants.c (main): Likewise.
26188         * genemit.c (main): Likewise.
26189         * genextract.c (main): Likewise.
26190         * genflags.c (main): Likewise.
26191         * genopinit.c (main): Likewise.
26192         * genoutput.c (main): Likewise.
26193         * genpeep.c (main): Likewise.
26194         * genrecog.c (main): Likewise.
26195         * genpreds.c (main): Likewise.
26196         * gensupport.h (in_fname): Move to read-md.h.
26197         (init_md_reader_args_cb): Rename to...
26198         (init_rtx_reader_args_cb): ...this and return a bool.
26199         (init_md_reader_args): Rename to...
26200         (init_rtx_reader_args): ...this and return a bool.
26201         (include_callback): Move to read-md.h.
26202         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
26203         (file_name_list, first_dir_md_include): Move to read-md.c
26204         (first_bracket_include): Delete unused variable.
26205         (last_dir_md_include): Move to read-md.c.
26206         (process_include): Delete, moving code to read-md.c:handle_include.
26207         (process_rtx): Don't handle INCLUDE.
26208         (save_string): Delete.
26209         (rtx_handle_directive): New function.
26210         (init_md_reader_args_cb): Rename to...
26211         (init_rtx_reader_args_cb): ...this and return a boolean success value.
26212         Use read_md_args.
26213         (init_md_reader_args): Rename to...
26214         (init_rtx_reader_args): ...this and return a boolean success value.
26215         * rtl.def (INCLUDE): Delete.
26216         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
26217         argument.
26218         * read-rtl.c (read_conditions): Don't gobble ')' here.
26219         (read_mapping): Likewise.
26220         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
26221         Handle top-level non-rtx constructs here rather than in read_rtx_1.
26222         Store the whole queue in *X.  Remove call to init_md_reader.
26223         (read_rtx_1): Rename to...
26224         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
26225         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
26226         here.
26227         (read_nested_rtx): New function.  Handle (nil) here rather than
26228         in read_rtx_code.
26229         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
26230         gobble ')' here.
26231         * read-md.h (directive_handler_t): New type.
26232         (in_fname, include_callback): Moved from read-md.h.
26233         (read_constants, init_md_reader): Delete.
26234         (read_md_files): Declare.
26235         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
26236         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
26237         from gensupport.c.
26238         (read_constants): Rename to...
26239         (handle_constants): ...this.  Don't gobble ')' here.
26240         (handle_include, handle_file, handle_toplevel_file)
26241         (parse_include): New functions, mostly taken from gensupport.c.
26242         (init_md_reader): Subsume into...
26243         (read_md_files): ...this new function.
26244
26245 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26246
26247         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
26248         (unread_char): Decrement read_md_lineno after putting back '\n'.
26249         * read-md.c (fatal_with_file_and_line): Push back any characters
26250         that we decide not to add to the context.
26251         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
26252         fatal_expected_char in cases where '/' ends a line (for example).
26253         (read_name): Don't increment read_md_lineno here.
26254         (read_escape): Likewise.
26255         (read_quoted_string): Likewise.
26256         (read_braced_string): Likewise.
26257
26258 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26259
26260         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
26261         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
26262         * genconstants.c: Include read-md.h.
26263         * read-rtl.c (md_constants): Move to read-md.c.
26264         (md_name): Move to read-md.h.
26265         (initialize_iterators): Use leading_string_hash instead of def_hash
26266         and leading_string_eq_p instead of def_name_eq_p.
26267         (read_name): Move to read-md.c.
26268         (def_hash, def_name_eq_p): Delete.
26269         (read_constants, traverse_md_constants): Move to read-md.c.
26270         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
26271         * read-md.h: Include hashtab.h.
26272         (md_name): Moved from read-rtl.c.
26273         (md_constant): Moved from read-md.h.
26274         (leading_string_hash, leading_string_eq_p, read_name)
26275         (read_constants, traverse_md_constants): Declare.
26276         * read-md.c (md_constants): Moved from read-rtl.c.
26277         (leading_string_hash, leading_string_eq_p): New functions.
26278         (read_name, read_constants, traverse_md_constants): Moved from
26279         read-rtl.c.
26280
26281 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26282
26283         * read-rtl.c (md_name): New structure.
26284         (read_name): Take an md_name instead of a buffer pointer.
26285         Use the "string" field instead of strcpy when expanding constants.
26286         (read_constants): Remove the tmp_char argument.  Update the calls
26287         to read_name, using two local name buffers instead of the tmp_char
26288         argument.  Merge the constant-creation code.
26289         (read_conditions): Remove the tmp_char argument.  Update the calls
26290         to read_name, using a local name buffer instead of the tmp_char
26291         argument.
26292         (read_mapping): Replace tmp_char variable with a local name buffer.
26293         Update the calls to read_name.
26294         (read_rtx_1): Likewise.  Update the calls to read_constants and
26295         read_conditions.
26296
26297 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26298
26299         * Makefile.in (build/read-md.o): Depend on errors.h.
26300         * read-md.h (error_with_line): Declare.
26301         * read-md.c: Include errors.h.
26302         (message_with_line_1): New function, extracted from...
26303         (message_with_line): ...here.
26304         (error_with_line): New function.
26305         * genattrtab.c: If a call to message_with_line is followed by
26306         "have_error = 1;", replace both statements with a call to
26307         error_with_line.
26308         * genoutput.c: Likewise.
26309         * genpreds.c: Likewise.
26310         * genrecog.c: If a call to message_with_line is followed by
26311         "error_count++;", replace both statements with a call to
26312         error_with_line.
26313         (errorcount): Delete.
26314         (main): Don't check it.
26315         * gensupport.c: If a call to message_with_line is followed by
26316         "errors = 1;", replace both statements with a call to error_with_line.
26317         (errors): Delete.
26318         (process_define_cond_exec): Check have_error instead of errors.
26319         (init_md_reader_args_cb): Likewise.  Don't set errors.
26320
26321 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26322
26323         * read-md.h (read_md_file): Declare.
26324         (read_char, unread_char): New functions.
26325         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
26326         (read_quoted_string, read_string): Remove FILE * argument.
26327         * read-md.c (read_md_file): New variable.
26328         (read_md_filename, read_md_lineno): Update comments and remove
26329         unnecessary initialization.
26330         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
26331         (read_escape, read_quoted_string, read_braced_string, read_string):
26332         Remove FILE * argument.  Update calls accordingly, using read_char
26333         and unread_char instead of getc and ungetc.
26334         * rtl.h (read_rtx): Remove FILE * argument.
26335         * read-rtl.c (iterator_group): Remove FILE * argument from
26336         "find_builtin".
26337         (iterator_traverse_data): Remove "infile" field.
26338         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
26339         (add_mapping, read_name, read_constants, read_conditions)
26340         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
26341         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
26342         Remove file arguments from all calls, using read_char and unread_char
26343         instead of getc and ungetc.
26344         * gensupport.c (process_include): Preserve read_md_file around
26345         the include.  Set read_md_file to the handle of the included file.
26346         Update call to read_rtx.
26347         (init_md_reader_args_cb): Set read_md_file to the handle of the file
26348         and remove local FILE *.  Update calls to read_rtx.
26349
26350 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26351
26352         * read-md.h (read_rtx_lineno): Rename to...
26353         (read_md_lineno): ...this.
26354         (read_rtx_filename): Rename to...
26355         (read_md_filename): ...this.
26356         (copy_rtx_ptr_loc): Rename to...
26357         (copy_md_ptr_loc): ...this.
26358         (print_rtx_ptr_loc): Rename to...
26359         (print_md_ptr_loc): ...this.
26360         * read-md.c: Likewise.  Update references after renaming.
26361         (string_obstack): Replace RTL with MD in comment.
26362         (set_rtx_ptr_loc): Rename to...
26363         (set_md_ptr_loc): ...this.
26364         (get_rtx_ptr_loc): Rename to...
26365         (get_md_ptr_loc): ...this.
26366         * genconditions.c: Update references after renaming.
26367         * genemit.c: Likewise.
26368         * genoutput.c: Likewise.
26369         * genpreds.c: Likewise.
26370         * gensupport.c: Likewise.
26371         * read-rtl.c: Likewise.
26372
26373 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26374
26375         * Makefile.in (READ_MD_H): New variable.
26376         (BUILD_RTL): Add build/read-md.o.
26377         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
26378         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
26379         (build/genattrtab.o, build/genconditions.o build/genemit.o)
26380         (build/genextract.o, build/genflags.o, build/genoutput.o)
26381         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
26382         (build/read-md.o): New rule.
26383         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
26384         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
26385         * coretypes.h: ...here.
26386         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
26387         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
26388         * genattr.c: Include read-md.h.
26389         * genattrtab.c: Likewise.
26390         * genconditions.c: Likewise.
26391         * genemit.c: Likewise.
26392         * genextract.c: Likewise.
26393         * genflags.c: Likewise.
26394         * genoutput.c: Likewise.
26395         * genpreds.c: Likewise.
26396         * genrecog.c: Likewise.
26397         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
26398         (join_c_conditions, print_c_condition, read_rtx_filename)
26399         (read_rtx_lineno): Move to read-md.h.
26400         * read-rtl.c: Include read-md.h.
26401         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
26402         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
26403         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
26404         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
26405         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
26406         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
26407         (read_braced_string, read_string): Move to read-md.c.
26408         (read_rtx): Move some initialization to init_md_reader and call
26409         init_md_reader here.
26410         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
26411         Move to read-md.h.
26412         * gensupport.c: Include read-md.h.
26413         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
26414         * read-md.h, read-md.c: New files.
26415
26416 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
26417
26418         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26419         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26420         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
26421         * config/moxie/moxie.c (moxie_function_value): Make static.
26422         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
26423         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
26424
26425 2010-06-10  Martin Jambor  <mjambor@suse.cz>
26426
26427         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
26428         * dbgcnt.def (tree_sra): New counter.
26429         * tree-sra.c: Include dbgcnt.h.
26430         (gate_intra_sra): Check tree_sra debug counter.
26431
26432 2010-06-10  Martin Jambor  <mjambor@suse.cz>
26433
26434         PR tree-optimization/44258
26435         * tree-sra.c (build_access_subtree): Return false iff there is a
26436         partial overlap.
26437         (build_access_trees): Likewise.
26438         (analyze_all_variable_accesses): Disqualify candidates if
26439         build_access_trees returns true for them.
26440
26441 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
26442
26443         PR debug/41371
26444         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
26445         tail-recurse into canonical node.  Fast-forward over
26446         non-canonical VALUEs.
26447
26448 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
26449
26450         PR boostrap/44470
26451         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
26452         (*addsi_1_zext) <TYPE_LEA>: Likewise.
26453         (add lea splitter): Likewise.
26454         (add_zext lea splitter): Likewise.
26455
26456 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
26457
26458         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
26459
26460 2010-06-10  Jan Hubicka  <jh@suse.cz>
26461
26462         * df-problems.c (df_live_problem_data): Add live_bitmaps.
26463         (df_live_alloc): Initialize problem data and live_osbtacks.
26464         (df_live_finalize): Remove obstack, problem data; do not
26465         clear all bitmaps.
26466         (df_live_top_dump, df_live_bottom_dump): Do not dump old
26467         data when not allocated.
26468         (df_live_verify_solution_start): Do not allocate problem data.
26469         (df_live_verify_solution_end): Check if out is allocated.
26470         (struct df_md_problem_data): New structure.
26471         (df_md_alloc): Allocate problem data.
26472         (df_md_free): Free problem data; do not clear bitmaps.
26473
26474 2010-06-10  Jan Beulich  <jbeulich@novell.com>
26475
26476         PR bootstrap/37304
26477         * configure.ac: Replace $() with ${} when intending to expand
26478         variables rather than invoking commands.
26479         * configure: Re-generate.
26480
26481 2010-06-10  Jan Hubicka  <jh@suse.cz>
26482
26483         PR rtl-optimization/44460
26484         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
26485         TYPE_NEEDS_CONSTRUCTING sanity check.
26486
26487 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
26488
26489         * doc/include/fdl.texi: Move to GFDL version 1.3.
26490
26491         * doc/cpp.texi: Move to GFDL version 1.3.
26492         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
26493         * doc/gccint.texi: Move to GFDL version 1.3.
26494         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
26495         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
26496         * doc/invoke.texi: Move to GFDL version 1.3.
26497
26498 2010-06-09  Jan Hubicka  <jh@suse.cz>
26499
26500         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
26501         Break out from ...
26502         (propagate) ... here; swap the order.
26503
26504 2010-06-09  Jan Hubicka  <jh@suse.cz>
26505
26506         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
26507         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
26508         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
26509         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
26510
26511 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
26512
26513         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
26514         Do not the gather memory reference in the outer loop if the step
26515         is not a constant.
26516
26517 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
26518
26519         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
26520         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
26521         8 to 4.  Minor change of the related comments.
26522
26523 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26524
26525         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
26526         the scev analysis when the variable is not used outside the loop
26527         in a close phi node: call compute_overall_effect_of_inner_loop.
26528
26529 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26530
26531         * graphite-sese-to-poly.c (single_pred_cond): Renamed
26532         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
26533         (build_sese_conditions_before): Renamed call to single_pred_cond.
26534         (build_sese_conditions_after): Same.
26535
26536 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26537
26538         * graphite-poly.h: Fix comments and indentation.
26539         * graphite-sese-to-poly.c: Same.
26540         (build_sese_conditions_before): Compute stmt and gbb only when needed.
26541         * tree-chrec.c: Fix comments and indentation.
26542         (tree-ssa-loop-niter.c): Same.
26543
26544 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
26545
26546         PR rtl-optimization/42461
26547         * dce.c (deletable_insn_p): Return true for const or pure calls again.
26548         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
26549
26550 2010-06-09  Jan Hubicka  <jh@suse.cz>
26551
26552         * bitmap.c (bitmap_and): Walk array forward.
26553         (bitmap_and_compl_into): Likewise.
26554         (bitmap_xor): Likewise.
26555         (bitmap_xor_into):  Likewise.
26556         (bitmap_equal_p): Likewise.
26557         (bitmap_intersect_p): Likewise.
26558         (bitmap_intersect_compl_p): Likewise.
26559         (bitmap_ior_and_into): Likewise.
26560         (bitmap_elt_copy): Likewise.
26561         (bitmap_and_compl): Likewise.
26562         (bitmap_elt_ior): Likewise.
26563
26564 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
26565
26566         * opts-common.c (prune_options): Ensure replacement argv array
26567         is correctly terminated by a NULL entry.
26568
26569 2010-06-09  Jan Hubicka  <jh@suse.cz>
26570
26571         * cgraph.h (varpool_first_static_initializer,
26572         varpool_next_static_initializer): Make checking only when
26573         checking enabled.
26574         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
26575         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
26576         gcc_assert to gcc_checking_assert.
26577         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
26578         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
26579         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
26580         op_iter_init_phiuse, op_iter_init_phidef,
26581         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
26582         gcc_checking_assert.
26583         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
26584         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
26585         partition_is_global, live_on_entry, live_on_exit,
26586         live_merge_and_clear): Likewise.
26587         * system.h (gcc_checking_assert): New macro.
26588         * gimple.h (set_bb_seq): Use gcc_checking_assert.
26589
26590 2010-06-09  Jason Merrill  <jason@redhat.com>
26591
26592         * Makefile.in (TAGS): Collect tags info from c-family.
26593
26594 2010-06-09  Jan Hubicka  <jh@suse.cz>
26595
26596         * gimple.h (gcc_gimple_checking_assert): New macro.
26597         (gimple_set_def_ops, gimple_set_use_ops,
26598         gimple_set_vuse, gimple_set_vdef,
26599         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
26600         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
26601         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
26602         gimple_asm_output_op, gimple_asm_output_op_ptr,
26603         gimple_asm_set_output_op, gimple_asm_clobber_op,
26604         gimple_asm_set_clobber_op, gimple_asm_label_op,
26605         gimple_asm_set_label_op, gimple_try_set_kind,
26606         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
26607         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
26608         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
26609         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
26610         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
26611         gimple_omp_for_set_initial, gimple_omp_for_final,
26612         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
26613         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
26614         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
26615         conditional with ENABLE_GIMPLE_CHECKING.
26616         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
26617
26618 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
26619
26620         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
26621         (get_computation_cost_at): Use it.
26622         (determine_use_iv_cost_condition): Likewise.
26623         (determine_iv_cost): Likewise.
26624
26625 2010-06-09  Richard Guenther  <rguenther@suse.de>
26626
26627         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
26628         replace constants.
26629
26630 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
26631
26632         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
26633
26634 2010-06-09  Martin Jambor  <mjambor@suse.cz>
26635
26636         PR tree-optimization/44423
26637         * tree-sra.c (dump_access): Dump also grp_assignment_read.
26638         (analyze_access_subtree): Pass negative allow_replacements to children
26639         if the current type is scalar.
26640
26641 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
26642
26643         PR testsuite/42843
26644         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
26645         * doc/plugins.texi (Plugin license check): Update information
26646         on type of plugin_is_GPL_compatible.
26647         * Makefile.in (PLUGINCC): Define as $(COMPILER).
26648         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
26649
26650 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
26651
26652         * config/arm/arm.c (thumb2_reorg): New function.
26653         (arm_reorg): Call it.
26654         * config/arm/thumb2.md (define_peephole2 for flag clobbering
26655         arithmetic operations): Delete.
26656
26657 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
26658
26659         PR target/44067
26660         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
26661         e500v2 target.
26662
26663 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
26664
26665         PR plugins/44459
26666         * gcc-plugin.h: Encapsulate all declarations in extern "C".
26667
26668 2010-06-08  Jan Hubicka  <jh@suse.cz>
26669
26670         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
26671         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
26672
26673 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
26674
26675         PR tree-optimization/39874
26676         PR middle-end/28685
26677         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
26678         Declare.
26679         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
26680         same_bool_result_p): New.
26681         (and_var_with_comparison, and_var_with_comparison_1,
26682         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
26683         (or_var_with_comparison, or_var_with_comparison_1,
26684         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
26685         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
26686         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
26687         of combine_comparisons.
26688         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
26689
26690 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
26691
26692         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26693         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26694         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
26695         pdp11_function_value_regno_p): New functions.
26696         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26697         TARGET_FUNCTION_VALUE_REGNO_P): Define.
26698
26699 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
26700
26701         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
26702         Thumb-2 in the MINUS case.
26703
26704 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26705
26706         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
26707
26708         * doc/gty.texi (GTY Options): Document typed GC allocation and
26709         variable_size GTY option.
26710
26711         * ggc-internal.h: New.
26712
26713         * ggc.h: Update copyright year.
26714         (digit_string): Move to stringpool.c.
26715         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
26716         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
26717         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
26718         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
26719         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
26720         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
26721         (ggc_force_collect, ggc_get_size, ggc_statistics)
26722         (ggc_print_common_statistics): Move to ggc-internal.h.
26723         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
26724         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
26725         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
26726         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
26727         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
26728         (ggc_alloc_zone_pass_stat): Remove.
26729         (ggc_internal_alloc_stat, ggc_internal_alloc)
26730         (ggc_internal_cleared_alloc_stat): New.
26731         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
26732         (ggc_internal_vec_alloc_stat)
26733         (ggc_internal_cleared_vec_alloc_stat)
26734         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
26735         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
26736         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
26737         (ggc_cleared_alloc_ptr_array_two_args): New.
26738         (htab_create_ggc, splay_tree_new_ggc): Redefine.
26739         (ggc_splay_alloc): Change the type of the first argument to
26740         enum gt_types_enum.
26741         (ggc_alloc_string): Make macro.
26742         (ggc_alloc_string_stat): New.
26743         (ggc_strdup): Redefine.
26744         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
26745         (ggc_alloc_rtvec_sized): New.
26746         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
26747         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
26748         (ggc_internal_cleared_alloc_zone_stat)
26749         (ggc_internal_zone_alloc_stat)
26750         (ggc_internal_zone_cleared_alloc_stat)
26751         (ggc_internal_zone_vec_alloc_stat)
26752         (ggc_alloc_zone_rtx_def_stat)
26753         (ggc_alloc_zone_tree_node_stat)
26754         (ggc_alloc_zone_cleared_tree_node_stat)
26755         (ggc_alloc_cleared_gimple_statement_d_stat): New.
26756
26757         * ggc-common.c: Include ggc-internal.h.
26758         (ggc_internal_cleared_alloc_stat): Rename from
26759         ggc_alloc_cleared_stat.
26760         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
26761         (ggc_calloc): Remove.
26762         (ggc_cleared_alloc_htab_ignore_args): New.
26763         (ggc_cleared_alloc_ptr_array_two_args): New.
26764         (ggc_splay_alloc): Add obj_type parameter.
26765         (init_ggc_heuristics): Formatting fixes.
26766
26767         * ggc-none.c: Update copyright year.
26768         (ggc_alloc_stat): Rename to ggc_alloc_stat.
26769         (ggc_alloc_cleared_stat): Rename to
26770         ggc_internal_cleared_alloc_stat.
26771         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
26772
26773         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
26774         Remove references to ggc_alloc in comments.
26775         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
26776         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
26777         (new_ggc_zone, destroy_ggc_zone): Remove.
26778         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
26779
26780         * ggc-zone.c: Include ggc-internal.h.  Remove references to
26781         ggc_alloc in comments.
26782         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
26783         (ggc_internal_alloc_zone_pass_stat): New.
26784         (ggc_internal_cleared_alloc_zone_stat): New.
26785         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
26786         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
26787         (new_ggc_zone, destroy_ggc_zone): Remove.
26788
26789         * stringpool.c: Update copyright year.  Include ggc-internal.h
26790         (digit_vector): Make static.
26791         (digit_string): Moved from ggc.h.
26792         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
26793         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
26794
26795         * Makefile.in (GGC_INTERNAL_H): New.
26796         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
26797         $(GGC_INTERNAL_H) to dependencies.
26798
26799         * gengtype.c: Update copyright year.
26800         (walk_type): Accept variable_size GTY option.
26801         (USED_BY_TYPED_GC_P): New macro.
26802         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
26803         whitespace at the end of strings.
26804         (get_type_specifier, variable_size_p): New functions.
26805         (alloc_quantity, alloc_zone): New enums.
26806         (write_typed_alloc_def): New function.
26807         (write_typed_struct_alloc_def): Likewise.
26808         (write_typed_typed_typedef_alloc_def): Likewise.
26809         (write_typed_alloc_defns): Likewise.
26810         (output_typename, write_splay_tree_allocator_def): Likewise.
26811         (write_splay_tree_allocators): Likewise.
26812         (main): Call write_typed_alloc_defns and
26813         write_splay_tree_allocators.
26814
26815         * lto-streamer.h (lto_file_decl_data_ptr): New.
26816
26817         * passes.c (order): Define using cgraph_node_ptr.
26818
26819         * strinpool.c (struct string_pool_data): Declare nested_ptr using
26820         ht_identifier_ptr.
26821
26822         * gimple.h (union gimple_statement_d): Likewise.
26823
26824         * rtl.h (struct rtx_def): Likewise.
26825         (struct rtvec_def): Likewise.
26826
26827         * tree.h (union tree_node): Likewise.
26828
26829         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
26830
26831         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
26832
26833         * tree-scalar-evolution.c (scev_initialize): Likewise.
26834
26835         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
26836
26837         * dwarf2asm.c (dw2_force_const_mem): Likewise.
26838
26839         * omp-low.c (lower_omp_critical): Likewise.
26840
26841         * bitmap.h (struct bitmap_head_def): Update comment to not
26842         reference ggc_alloc.
26843
26844         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
26845
26846         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
26847
26848         * ipa-prop.c (duplicate_ggc_array): Rename to
26849         duplicate_ipa_jump_func_array.  Use typed GC allocation.
26850         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
26851
26852         * gimple.c (gimple_alloc_stat): Use
26853         ggc_alloc_cleared_gimple_statement_d_stat.
26854
26855         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
26856
26857         * tree.c (make_node_stat): Use
26858         ggc_alloc_zone_cleared_tree_node_stat.
26859         (make_tree_vec_stat): Likewise.
26860         (build_vl_exp_stat): Likewise.
26861         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
26862         (make_tree_binfo_stat): Likewise.
26863         (tree_cons_stat): Likewise.
26864
26865         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
26866         (shallow_copy_rtx_stat): Likewise.
26867         (make_node_stat): Likewise.
26868
26869         * lto-symtab.c: Fix comment.
26870
26871         * tree-cfg.c (create_bb): Update comment to not reference
26872         ggc_alloc_cleared.
26873         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
26874
26875         * varpool.c (varpool_node): Use typed GC allocation.
26876         (varpool_extra_name_alias): Likewise.
26877
26878         * varasm.c (emutls_decl): Likewise.
26879         (get_unnamed_section): Likewise.
26880         (get_noswitch_section): Likewise.
26881         (get_section): Likewise.
26882         (get_block_for_section): Likewise.
26883         (build_constant_desc): Likewise.
26884         (create_constant_pool): Likewise.
26885         (force_const_mem): Likewise.
26886
26887         * tree.c (build_vl_exp_stat): Likewise.
26888         (build_real): Likewise.
26889         (build_string): Likewise.
26890         (decl_debug_expr_insert): Likewise.
26891         (decl_value_expr_insert): Likewise.
26892         (type_hash_add): Likewise.
26893         (build_omp_clause): Likewise.
26894
26895         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
26896
26897         * tree-ssa.c (init_tree_ssa): Likewise.
26898
26899         * tree-ssa-structalias.c (heapvar_insert): Likewise.
26900
26901         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
26902
26903         * tree-ssa-loop-niter.c (record_estimate): Likewise.
26904
26905         * tree-ssa-alias.c (get_ptr_info): Likewise.
26906
26907         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
26908
26909         * tree-phinodes.c (allocate_phi_node): Likewise.
26910
26911         * tree-iterator.c (tsi_link_before): Likewise.
26912         (tsi_link_after): Likewise.
26913
26914         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
26915
26916         * tree-dfa.c (create_var_ann): Likewise.
26917
26918         * tree-cfg.c (create_bb): Likewise.
26919
26920         * toplev.c (alloc_for_identifier_to_locale): Likewise.
26921         (general_init): Likewise.
26922
26923         * stringpool.c (stringpool_ggc_alloc): Likewise.
26924         (gt_pch_save_stringpool): Likewise.
26925
26926         * sese.c (if_region_set_false_region): Likewise.
26927
26928         * passes.c (do_per_function_toporder): Likewise.
26929
26930         * optabs.c (set_optab_libfunc): Likewise.
26931         (set_conv_libfunc): Likewise.
26932
26933         * lto-symtab.c (lto_symtab_register_decl): Likewise.
26934
26935         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
26936         (input_eh_region): Likewise.
26937         (input_eh_lp): Likewise.
26938         (make_new_block): Likewise.
26939         (unpack_ts_real_cst_value_fields): Likewise.
26940
26941         * lto-section-in.c (lto_new_in_decl_state): Likewise.
26942
26943         * lto-cgraph.c (input_node_opt_summary): Likewise.
26944
26945         * loop-init.c (loop_optimizer_init): Likewise.
26946
26947         * lambda.h (lambda_vector_new): Likewise.
26948
26949         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
26950
26951         * ira.c (update_equiv_regs): Likewise.
26952
26953         * ipa.c (cgraph_node_set_new): Likewise.
26954         (cgraph_node_set_add): Likewise.
26955         (varpool_node_set_new): Likewise.
26956         (varpool_node_set_add): Likewise.
26957
26958         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
26959         (duplicate_ipa_jump_func_array): Likewise.
26960         (ipa_read_node_info): Likewise.
26961
26962         * ipa-cp.c (ipcp_create_replace_map): Likewise.
26963
26964         * integrate.c (get_hard_reg_initial_val): Likewise.
26965
26966         * gimple.c (gimple_alloc_stat): Likewise.
26967         (gimple_build_omp_for): Likewise.
26968         (gimple_seq_alloc): Likewise.
26969         (gimple_copy): Likewise.
26970
26971         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
26972         (gsi_insert_after_without_update): Likewise.
26973
26974         * function.c (add_frame_space): Likewise.
26975         (insert_temp_slot_address): Likewise.
26976         (assign_stack_temp_for_type): Likewise.
26977         (allocate_struct_function): Likewise.
26978         (types_used_by_var_decl_insert): Likewise.
26979
26980         * except.c (init_eh_for_function): Likewise.
26981         (gen_eh_region): Likewise.
26982         (gen_eh_region_catch): Likewise.
26983         (gen_eh_landing_pad): Likewise.
26984         (add_call_site): Likewise.
26985
26986         * emit-rtl.c (get_mem_attrs): Likewise.
26987         (get_reg_attrs): Likewise.
26988         (start_sequence): Likewise.
26989         (init_emit): Likewise.
26990
26991         * dwarf2out.c (new_cfi): Likewise.
26992         (queue_reg_save): Likewise.
26993         (dwarf2out_frame_init): Likewise.
26994         (new_loc_descr): Likewise.
26995         (find_AT_string): Likewise.
26996         (new_die): Likewise.
26997         (add_var_loc_to_decl): Likewise.
26998         (clone_die): Likewise.
26999         (clone_as_declaration): Likewise.
27000         (break_out_comdat_types): Likewise.
27001         (new_loc_list): Likewise.
27002         (loc_descriptor): Likewise.
27003         (add_loc_descr_to_each): Likewise.
27004         (add_const_value_attribute): Likewise.
27005         (tree_add_const_value_attribute): Likewise.
27006         (add_comp_dir_attribute): Likewise.
27007         (add_name_and_src_coords_attributes): Likewise.
27008         (lookup_filename): Likewise.
27009         (store_vcall_insn): Likewise.
27010         (dwarf2out_init): Likewise.
27011
27012         * dbxout.c (dbxout_init): Likewise.
27013
27014         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
27015
27016         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
27017
27018         * config/score/score7.c (score7_output_external): Likewise.
27019
27020         * config/score/score3.c (score3_output_external): Likewise.
27021
27022         * config/s390/s390.c (s390_init_machine_status): Likewise.
27023
27024         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
27025         (rs6000_init_machine_status): Likewise.
27026         (output_toc): Likewise.
27027
27028         * config/pa/pa.c (pa_init_machine_status): Likewise.
27029         (get_deferred_plabel): Likewise.
27030
27031         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
27032
27033         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
27034
27035         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
27036
27037         * config/mep/mep.c (mep_init_machine_status): Likewise.
27038         (mep_note_pragma_flag): Likewise.
27039
27040         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
27041
27042         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
27043
27044         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
27045
27046         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
27047         (i386_pe_maybe_record_exported_symbol): Likewise.
27048
27049         * config/i386/i386.c (get_dllimport_decl): Likewise.
27050         (ix86_init_machine_status): Likewise.
27051         (assign_386_stack_local): Likewise.
27052
27053         * config/frv/frv.c (frv_init_machine_status): Likewise.
27054
27055         * config/darwin.c (machopic_indirection_name): Likewise.
27056
27057         * config/cris/cris.c (cris_init_machine_status): Likewise.
27058
27059         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
27060
27061         * config/avr/avr.c (avr_init_machine_status): Likewise.
27062
27063         * config/arm/arm.c (arm_init_machine_status): Likewise.
27064
27065         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
27066         (alpha_need_linkage): Likewise.
27067         (alpha_use_linkage): Likewise.
27068
27069         * cgraph.c (cgraph_allocate_node): Likewise.
27070         (cgraph_create_edge_1): Likewise.
27071         (cgraph_create_indirect_edge): Likewise.
27072         (cgraph_add_asm_node): Likewise.
27073
27074         * cfgrtl.c (init_rtl_bb_info): Likewise.
27075
27076         * cfgloop.c (alloc_loop): Likewise.
27077         (rescan_loop_exit): Likewise.
27078
27079         * cfg.c (init_flow): Likewise.
27080         (alloc_block): Likewise.
27081         (unchecked_make_edge): Likewise.
27082
27083         * c-parser.c (c_parse_init): Likewise.
27084         (c_parse_file): Likewise.
27085
27086         * c-decl.c (bind): Likewise.
27087         (record_inline_static): Likewise.
27088         (push_scope): Likewise.
27089         (make_label): Likewise.
27090         (lookup_label_for_goto): Likewise.
27091         (finish_struct): Likewise.
27092         (finish_enum): Likewise.
27093         (c_push_function_context): Likewise.
27094
27095         * bitmap.c (bitmap_element_allocate): Likewise.
27096         (bitmap_gc_alloc_stat): Likewise.
27097
27098         * alias.c (record_alias_subset): Likewise.
27099         (init_alias_analysis): Likewise.
27100
27101 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
27102
27103         * fold-const.c (fold_comparison): Remove redundant parenthesis.
27104         * tree-inline.c (expand_call_inline): Pass translated return value of
27105         cgraph_inline_failed_string to diagnostic function.
27106
27107 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
27108             Shujing Zhao  <pearly.zhao@oracle.com>
27109
27110         PR c/37724
27111         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
27112         implicit bad conversions is initialization.
27113         (error_init): Use gmsgid instead of msgid for argument name and change
27114         the call for error.
27115         (pedwarn_init): Use gmsgid instead of msgid for argument name and
27116         change the call for pedwarn.
27117         (warning_init): Use gmsgid instead of msgid for argument name and
27118         change the call for warning.
27119
27120 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
27121
27122         * config/mips/mips-protos.h (mips_print_operand): Delete.
27123         (mips_print_operand_address): Delete.
27124         * config/mips/mips.h (mips_print_operand_punct): Delete.
27125         (PRINT_OPERAND): Delete.
27126         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
27127         (PRINT_OPERAND_ADDRESS): Delete.
27128         * config/mips/mips.c (mips_print_operand_punct): Make static.
27129         (mips_print_operand_address): Make static.
27130         (mips_print_operand): Make static.  Call
27131         mips_print_operand_punct_valid_p.
27132         (mips_print_operand_punct_valid_p): New function.
27133         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
27134         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
27135
27136 2010-06-07  Jan Hubicka  <jh@suse.cz>
27137
27138         PR middle-end/44454
27139         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
27140         are allocated.
27141
27142 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
27143
27144         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
27145         name of RECORD.
27146
27147 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27148
27149         * doc/sourcebuild.texi (Effective-Target Keywords, Other
27150         attributes): Document gas.
27151
27152 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
27153
27154         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
27155         <TYPE_LEA>: Split instruction.
27156         <default>: Remove alternative 2 handling.
27157         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
27158         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
27159         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
27160
27161         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
27162         (ashift_zext lea splitter): Use DImode for multiplication.
27163
27164         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
27165         to generate addition.
27166
27167 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
27168
27169         * common.opt (fira-verbose): Use Var.
27170         (fpcc-struct-return): Use Init instead of VarExists.
27171         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
27172         toplev.c.
27173         * flags.h (flag_signed_char, flag_short_enums,
27174         flag_pcc_struct_return, flag_ira_verbose,
27175         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
27176         * toplev.c (flag_detailed_statistics, flag_signed_char,
27177         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
27178         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
27179         * toplev.h (flag_crossjumping, flag_if_conversion,
27180         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
27181         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
27182         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
27183         flag_cprop_registers, time_report, flag_ira_loop_pressure,
27184         flag_ira_coalesce, flag_ira_move_spills,
27185         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
27186
27187 2010-06-07  Jan Hubicka  <jh@suse.cz>
27188
27189         * df-core.c (df_analyze_problem): Do verification after allocation.
27190
27191         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
27192         (df_lr_alloc): Initialize problem data; move bitmaps to
27193         lr_bitmaps obstack.
27194         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
27195         (df_lr_verify_solution_start): Do not initialize problem data;
27196         allocate bitmaps in lr_bitmaps.
27197         (df_lr_verify_solution_end): Do not free problem data.
27198
27199 2010-06-07  Jan Hubicka  <jh@suse.cz>
27200
27201         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
27202         if caller is noreturn.
27203         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
27204         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
27205         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
27206         * ipa-pure-const.c (check_decl): Add IPA parameter.
27207         (state_from_flags): New function.
27208         (better_state, worse_state): New functions.
27209         (check_call): When in IPA mode, do not care about callees.
27210         (check_load, check_store): Update.
27211         (check_ipa_load, check_ipa_store): New.
27212         (check_stmt): When in IPA mode, use IPA checkers.
27213         (analyze_function): Use state_from_flags.
27214         (propagate): Check indirect edges and references.
27215
27216 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
27217
27218         PR rtl-optimization/44404
27219         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
27220         of count_occurrences to see if it's safe to modify mem_insn.
27221
27222 2010-06-07  Richard Guenther  <rguenther@suse.de>
27223
27224         * gimplify.c (gimplify_cleanup_point_expr): For empty body
27225         and EH-only cleanup drop the cleanup instead of inserting it
27226         unconditionally.
27227
27228 2010-06-07  Ira Rosen  <irar@il.ibm.com>
27229
27230         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
27231         documentation.
27232         * targhooks.c (default_builtin_vectorization_cost): New function.
27233         * targhooks.h (default_builtin_vectorization_cost): Declare.
27234         * target.h (enum vect_cost_for_stmt): Define.
27235         (builtin_vectorization_cost): Change argument and comment.
27236         * tree-vectorizer.h: Remove cost model macros.
27237         * tree-vect-loop.c: Include target.h.
27238         (vect_get_cost): New function.
27239         (vect_estimate_min_profitable_iters): Replace cost model macros with
27240         calls to vect_get_cost.
27241         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
27242         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
27243         default implementation.
27244         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
27245         calls to target hook builtin_vectorization_cost.
27246         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
27247         Likewise.
27248         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
27249         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
27250         implementation to return costs.
27251         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
27252         * config/spu/spu.h: Remove vectorizer cost model macros.
27253         * config/i386/i386.h: Likewise.
27254         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
27255         a call to target hook builtin_vectorization_cost.
27256
27257 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
27258
27259         PR target/44319
27260         * config/i386/i386.c (override_options): Turn zee pass on for level 2
27261         and above and defer till target is known.
27262         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
27263         turn off otherwise.
27264
27265 2010-05-25  Jan Hubicka  <jh@suse.cz>
27266
27267         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
27268         (df_compact_blocks): Likewise.
27269         * df.h (struct df): Turn hardware_regs_used,
27270         regular_block_artificial_uses, eh_block_artificial_uses,
27271         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
27272         bitmap_head.
27273         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
27274         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
27275         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
27276         df_scan_blocks, df_insn_delete, df_insn_rescan,
27277         df_insn_rescan_debug_internal, df_insn_rescan_all,
27278         df_process_deferred_rescans, df_process_deferred_rescans,
27279         df_notes_rescan, df_get_call_refs, df_get_call_refs,
27280         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
27281         df_record_entry_block_defs, df_record_exit_block_uses,
27282         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
27283         df_scan_verify): Update.
27284
27285 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
27286
27287         PR c++/44188
27288         * c-common.c (is_typedef_decl): Move this definition ...
27289         * tree.c (is_typedef_decl): ... here.
27290         (typdef_variant_p): Move definition here from cp/tree.c.
27291         * c-common.h (is_typedef_decl): Move this declaration ...
27292         * tree.h (is_typedef_decl): ... here.
27293         (typedef_variant_p): Move declaration here from cp/cp-tree.h
27294         * dwarf2out.c (is_naming_typedef_decl): New function.
27295         (gen_tagged_type_die): Split out of ...
27296         (gen_type_die_with_usage): ... this function. When an anonymous
27297         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
27298         is emitted for the typedef.
27299         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
27300         anonymous tagged types.
27301
27302 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27303
27304         PR c/20000
27305         * c-decl.c (grokdeclarator): Delete warning.
27306
27307 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
27308
27309         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
27310         newly built CALL_EXPR.
27311         * tree-profile.c (tree_profiling): Don't profile functions produced
27312         for built-in stuff.
27313
27314 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
27315
27316         PR bootstrap/44427
27317         PR bootstrap/44428
27318         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
27319         endianness-independent.
27320
27321 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
27322
27323         * c-common.c: Move to c-family/.
27324         * c-common.def: Likewise.
27325         * c-common.h: Likewise.
27326         * c-cppbuiltin.c: Likewise.
27327         * c-dump.c: Likewise.
27328         * c-format.c: Likewise.
27329         * c-format.h : Likewise.
27330         * c-gimplify.c: Likewise.
27331         * c-lex.c: Likewise.
27332         * c-omp.c: Likewise.
27333         * c.opt: Likewise.
27334         * c-opts.c: Likewise.
27335         * c-pch.c: Likewise.
27336         * c-ppoutput.c: Likewise.
27337         * c-pragma.c: Likewise.
27338         * c-pragma.h: Likewise.
27339         * c-pretty-print.c: Likewise.
27340         * c-pretty-print.h: Likewise.
27341         * c-semantics.c: Likewise.
27342         * stub-objc.c: Likewise.
27343
27344         * gengtype.c (get_file_langdir): Special-case files in c-family/.
27345         (get_output_file_with_visibility): Fix name for c-common.h.
27346         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
27347
27348         * c-tree.h: Update include path for moved files.
27349         * c-lang.c: Likewise.
27350         * c-lang.h: Likewise.
27351         * c-parser.c: Likewise.
27352         * c-convert.c: Likewise.
27353         * c-decl.c: Likewise.
27354         * c-objc-common.c: Likewise.
27355         * configure.ac: Make sure c-family/ exists in the build directory.
27356         * configure: Regenerate.
27357         * Makefile.in: Update paths for moved files.  Regroup files per
27358         location and update dependencies.  Move generated_files down after
27359         ALL_GTFILES_H.
27360
27361         * config/spu/spu-c.c: Update paths for moved files.
27362         * config/mep/mep-pragma.c: Likewise.
27363         * config/darwin-c.c: Likewise.
27364         * config/i386/msformat-c.c: Likewise.
27365         * config/i386/i386-c.c: Likewise.
27366         * config/avr/avr-c.c: Likewise.
27367         * config/sol2-c.c: Likewise.
27368         * config/ia64/ia64-c.c: Likewise.
27369         * config/rs6000/rs6000-c.c: Likewise.
27370         * config/arm/arm.c: Likewise.
27371         * config/arm/arm-c.c: Likewise.
27372         * config/h8300/h8300.c: Likewise.
27373         * config/v850/v850-c.c: Likewise.
27374
27375         * config/t-darwin: Fix dependencies for moved files.
27376         * config/t-sol2: Fix dependencies for moved files.
27377         * config/mep/t-mep: Fix dependencies for moved files.
27378         * config/ia64/t-ia64: Fix dependencies for moved files.
27379         * config/rs6000/t-rs6000: Fix dependencies for moved files.
27380         * config/v850/t-v850: Fix dependencies for moved files.
27381         * config/v850/t-v850e: Fix dependencies for moved files.
27382
27383         * config/m32c/m32c-pragma.c
27384
27385         * po/exgettext: Look in c-family/ also.
27386
27387 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
27388
27389         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
27390         (mark_control_dependent_edges_necessary): Call it instead of marking
27391         the last statement manually.
27392         (propagate_necessity): Likewise.
27393
27394 2010-06-05  Jan Hubicka  <jh@suse.cz>
27395
27396         * basic-block.h (compute_dominance_frontiers): Updated.
27397         (compute_idf): Likewise.
27398
27399         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
27400         for dominance frontiers.
27401         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
27402         (insert_updated_phi_nodes_for): Likewise.
27403         (update_ssa): Likewise.
27404         * cfganal.c (compute_dominance_frontiers_1): Likewise.
27405         (compute_dominance_frontiers): Likewise.
27406         (compute_idf): Likewise.
27407         * df-problems.c (df_md_local_compute): Likewise.
27408
27409 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
27410
27411         * target.h (struct gcc_target): Add memory_move_cost field.
27412         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
27413         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
27414         * targhooks.c (default_memory_move_cost): New function.
27415         * targhooks.h (default_memory_move_cost): Declare function.
27416         * reload.h (memory_move_cost): Declare.
27417         (memory_move_secondary_cost): Change type of 'in' argument to bool.
27418         * reginfo.c (memory_move_cost): New function.
27419         (memory_move_secondary_cost): Change type of 'in' argument to bool.
27420         * ira.h (ira_memory_move_cost): Update comment.
27421         * ira.c (ira_memory_move_cost): Update comment.
27422         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
27423         with memory_move_cost.
27424         * postreload.c (reload_cse_simplify_set): (Ditto.).
27425         * reload1.c (choose_reload_regs): (Ditto.).
27426         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
27427         (MEMORY_MOVE_COST):  Revise documentation.
27428
27429         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
27430         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
27431         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
27432         type of 'in' argument to bool.
27433         (TARGET_MEMORY_MOVE_COST): Define.
27434
27435 2010-06-05  Jan Hubicka  <jh@suse.cz>
27436
27437         * ipa-pure-const.c (propagate): Fix typo in handling of functions
27438         that cannot return.  Be more careful when merging the results with
27439         previously known ones.
27440
27441 2010-06-05  Matthias Klose  <doko@ubuntu.com>
27442
27443         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
27444         function to add the -iplugindir option.
27445         (find_plugindir_spec_function): Add new declaration and function.
27446         (static_spec_func): Use it for "find-plugindir".
27447
27448 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
27449
27450         PR c++/44361
27451         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
27452         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
27453         statement expression.
27454
27455 2010-06-05  Jan Hubicka  <jh@suse.cz>
27456
27457         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
27458         (df_rd_problem_data): Convert sparse_invalidated_by_call,
27459         dense_invalidated_by_call to bitmap head.
27460         (df_rd_alloc, df_rd_bb_local_compute_process_def,
27461         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
27462         df_rd_start_dump, df_lr_verify_transfer_functions,
27463         df_live_verify_transfer_functions, df_chain_create_bb,
27464         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
27465         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
27466         df_simulate_one_insn_forwards, df_md_alloc,
27467         df_md_bb_local_compute_process_def,
27468         df_md_bb_local_compute_process_def, df_md_local_compute,
27469         df_md_transfer_function df_md_free): Update.
27470
27471 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
27472
27473         PR c/44322
27474         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
27475         target type for ADDR_EXPR; require no changes to qualifiers except
27476         for function types.
27477         * c-tree.h (c_build_type_variant): Remove.
27478
27479 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
27480
27481         * genautomata.c (get_excl_set): Do work per element, not per char.
27482         (check_presence_pattern_sets): Similar.
27483         (check_absence_pattern_sets): Similar.
27484
27485 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
27486
27487         * genautomata.c (curr_state_pass_num): Delete.
27488         (min_issue_delay_pass_states): Delete.
27489         (min_issue_delay): Delete.
27490         (initiate_min_issue_delay_pass_states): Delete.
27491         (output_min_issue_delay_table): Compute min_issue_delay_vect
27492         using a breadth-first search variant.
27493         (output_tables): Don't call initiate_min_issue_delay_pass_states.
27494
27495 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
27496
27497         PR boostrap/44421
27498         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
27499         (df_byte_lr_bb_local_compute): Likewise.
27500
27501 2010-06-03  Jason Merrill  <jason@redhat.com>
27502
27503         Implement noexcept operator (5.3.7)
27504         * c-common.c (c_common_reswords): Add noexcept.
27505         * c-common.h (enum rid): Add RID_NOEXCEPT.
27506
27507 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
27508
27509         * config/darwin-driver.c (darwin_default_min_version): Use
27510         GCC-specific formats in diagnostics.
27511         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
27512         diagnostics.
27513         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
27514         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
27515         eval_spec_function, handle_braces, process_brace_body, main,
27516         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
27517         getenv_spec_function, compare_version_strings,
27518         version_compare_spec_function): Use GCC-specific formats in
27519         diagnostics.
27520
27521 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27522
27523         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
27524         that operand 0 and operand 1 are equal.
27525         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
27526         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
27527         and operand 1 are equal.
27528         <default>: Ditto.  Remove ??? comment.
27529         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
27530         and operand 1 are equal.
27531         <default>: Ditto.  Remove ??? comment.
27532         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
27533         are equal.
27534         (*add<mode>_4) <default>: Ditto.
27535         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
27536
27537 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
27538
27539         * config/i386/i386-protos.h (ix86_print_operand): Declare.
27540         * config/i386/i386.c (ix86_print_operand): Make non-static.
27541         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
27542         * output.h (output_operand): Declare.
27543         * final.c (output_operand): Make non-static.
27544
27545 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
27546
27547         PR rtl-optimization/44013
27548         * sched-deps.c (add_dependence_list_and_free): Don't free lists
27549         when processing debug insns.
27550
27551         PR debug/41371
27552         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
27553         recursing.  Check that recursion is bounded.  Rename inner var
27554         to avoid hiding incoming argument.
27555
27556 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27557
27558         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
27559         operands[2] == 255.
27560         (*addqi_3): Ditto.
27561         (*addqi_4): Ditto.
27562         (*addqi_5): Ditto.
27563         (*addqi_ext_1_rex64): Ditto.
27564         (*addqi_ext_1): Ditto.
27565
27566         (*addqi_4): Check for incdec_operand in QImode.
27567
27568         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
27569         using SWI mode iterator.
27570         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
27571         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
27572         mode iterator.
27573         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
27574         using SWI mode iterator.
27575
27576 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27577
27578         PR c/25880
27579         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
27580         * c-format.c (gcc_diag_flag_specs): Add hash.
27581         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
27582         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
27583         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
27584         pp_c_cv_qualifiers. Handle qualifiers spelling here.
27585         (pp_c_type_qualifier_list): Call the function above.
27586         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
27587         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
27588         (WARN_FOR_QUALIFIERS): New macro.
27589         (convert_for_assignment): Use it.
27590
27591 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
27592
27593         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
27594
27595 2010-06-04  Jan Hubicka  <jh@suse.cz>
27596
27597         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
27598         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
27599         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
27600         DF_BYTE_LR_OUT): Update for embedded bitmaps.
27601         * fwprop.c (single_def_use_enter_block): Likewise.
27602         * ddg.c (create_ddg_dep_from_intra_loop_link,
27603         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
27604         * loop-iv.c (latch_dominating_def): Likewise.
27605         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
27606         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
27607         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
27608         df_rd_transfer_function, df_rd_top_dump,
27609         df_rd_bottom_dump): Update.
27610         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
27611         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
27612         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
27613         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
27614         df_lr_verify_solution_start, df_lr_verify_solution_end,
27615         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
27616         df_live_free_bb_info, df_live_alloc, df_live_reset,
27617         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
27618         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
27619         df_live_verify_solution_start, df_live_verify_solution_end,
27620         df_live_verify_transfer_functions, df_chain_create_bb,
27621         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
27622         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
27623         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
27624         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
27625         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
27626         df_byte_lr_transfer_function, df_byte_lr_top_dump,
27627         df_byte_lr_bottom_dump, df_create_unused_note,
27628         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
27629         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
27630         df_md_transfer_function, df_md_init, df_md_confluence_0,
27631         df_md_confluence_n,
27632         df_md_top_dump, df_md_bottom_dump): Update.
27633         (struct df_lr_problem_data): Embedd bitmap headers.
27634
27635 2010-06-04  Jan Hubicka  <jh@suse.cz>
27636
27637         * dce.c (dce_process_block): Do not re-scan already marked
27638         instructions.
27639
27640 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
27641
27642         PR rtl-optimization/39871
27643         PR rtl-optimization/40615
27644         PR rtl-optimization/42500
27645         PR rtl-optimization/42502
27646         * ira.c (init_reg_equiv_memory_loc: New function.
27647         (ira): Call it twice.
27648         * reload.h (calculate_elim_costs_all_insns): Declare.
27649         * ira-costs.c: Include "reload.h".
27650         (regno_equiv_gains): New static variable.
27651         (init_costs): Allocate it.
27652         (finish_costs): Free it.
27653         (ira_costs): Call calculate_elim_costs_all_insns.
27654         (find_costs_and_classes): Take estimated elimination costs
27655         into account.
27656         (ira_adjust_equiv_reg_cost): New function.
27657         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
27658         * reload1.c (init_eliminable_invariants, free_reg_equiv,
27659         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
27660         (elim_bb): New static variable.
27661         (reload): Move code out of here into init_eliminable_invariants and
27662         free_reg_equiv.  Call them.
27663         (calculate_elim_costs_all_insns): New function.
27664         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
27665         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
27666         but call note_reg_elim_costly if we turned a valid memory address
27667         into an invalid one.
27668         * Makefile.in (ira-costs.o): Depend on reload.h.
27669
27670 2010-06-04  Julian Brown  <julian@codesourcery.com>
27671
27672         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
27673         for pool ranges.
27674
27675 2010-06-04  Richard Guenther  <rguenther@suse.de>
27676
27677         PR lto/41584
27678         * cgraph.h (struct varpool_node): Add lto_file_data field.
27679         * lto-cgraph.c (input_varpool_node): Initialize it.
27680
27681 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27682
27683         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
27684         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
27685         predicate in "type" attribute calculation.
27686         (*addsi_1_zext): Ditto.
27687         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
27688         (*addsi_2_zext): Ditto.
27689         (*add<mode>_3): Ditto.
27690         (*addsi_3_zext): Ditto.
27691         (*add<mode>_5): Ditto.
27692
27693 2010-06-03  Jan Hubicka  <jh@suse.cz>
27694
27695         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
27696         of bitmap_bit_p.
27697         * cfganal.c (compute_dominance_frontiers_1): Likewise.
27698
27699 2010-06-03  Jan Hubicka  <jh@suse.cz>
27700
27701         * df-problems.c (df_create_unused_note, df_note_bb_compute):
27702         micro-optimize the checks when to add new note.
27703
27704 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
27705
27706         * final.c (output_asm_insn): Call
27707         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
27708         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
27709         (output_address): Call targetm.asm_out.print_operand_address.
27710         Update comments.
27711         * target.h (struct gcc_target): Add print_operand,
27712         print_operand_address, and print_operand_punct_valid_p fields.
27713         * targhooks.h (default_print_operand): Declare.
27714         (default_print_operand_address): Declare.
27715         (default_print_operand_punct_valid_p): Declare.
27716         * targhooks.c (default_print_operand): Define.
27717         (default_print_operand_address): Define.
27718         (default_print_operand_punct_valid_p): Define.
27719         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
27720         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
27721         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
27722         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
27723         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
27724         * vmsdbgout.c (addr_const_to_string): Update comment.
27725         * config/i386/i386.c (print_operand): Rename to...
27726         (ix86_print_operand): ...this.  Make static.
27727         (print_operand_address): Rename to...
27728         (ix86_print_operand_address): ...this.  Make static.  Call
27729         ix86_print_operand instead of PRINT_OPERAND.
27730         (ix86_print_operand_punct_valid_p): New function.
27731         (TARGET_PRINT_OPERAND): Define.
27732         (TARGET_PRINT_OPERAND_ADDRESS): Define.
27733         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
27734         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
27735         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
27736         (PRINT_OPERAND): Delete.
27737         (PRINT_OPERAND_ADDRESS): Delete.
27738         * config/i386/i386-protos.h (print_operand): Delete prototype.
27739         (print_operand_address): Delete prototype.
27740
27741 2010-06-03  Richard Guenther  <rguenther@suse.de>
27742
27743         PR tree-optimization/44403
27744         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
27745         Preserve pointer qualifiers.
27746         (vect_create_data_ref_ptr): Likewise.
27747
27748 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
27749
27750         PR c++/44294
27751         * defaults.h (MAX_FIXED_MODE_SIZE): New.
27752
27753         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
27754
27755 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
27756
27757         PR debug/44375
27758         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
27759         return false if merging the bbs would lead to goto_locus
27760         location being lost from the IL.
27761
27762 2010-06-03  Jan Hubicka  <jh@suse.cz>
27763             Jakub Jelinek  <jakub@redhat.com>
27764
27765         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
27766         set->regs[i] is NULL or has just one entry.
27767
27768 2010-06-03  Jan Hubicka  <jh@suse.cz>
27769
27770         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
27771         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
27772
27773 2010-06-03  Paul Brook  <paul@codesourcery.com>
27774
27775         * config/arm/arm.c (FL_TUNE): Define.
27776         (arm_default_cpu, arm_cpu_select): Remove.
27777         (all_cores): Populate core field.
27778         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
27779         (arm_find_cpu): New function.
27780         (arm_handle_option): Lookup cpu/architecture names.
27781         (arm_override_options): Cleanup mcpu/march/mtune handling.
27782         (arm_file_start): Ditto.
27783
27784 2010-06-03  Alan Modra  <amodra@gmail.com>
27785
27786         PR target/44169
27787         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
27788         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
27789         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
27790         (rs6000_emit_load_toc_table): Likewise.
27791
27792 2010-06-02  Jan Hubicka  <jh@suse.cz>
27793
27794         * passes.c (init_optimization_passes): Put ipa reference
27795         after ipa pure-const.
27796
27797 2010-06-02  Jan Hubicka  <jh@suse.cz>
27798
27799         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
27800         calls_read_all and calls_write_all.
27801         (get_reference_optimization_summary): Fix formatting.
27802         (is_proper_for_analysis): Check that decl is not readonly.
27803         (propagate_bits): Check CONST/PURE/noreturn flags.
27804         (ipa_init): Move all_module_statics to optimization_summary_obstack.
27805         (analyze_function): Ignore indirect edges.
27806         (copy_global_bitmap): For all module statics, do nothing.
27807         (generate_summary): Do not print calls_read_all/calls_write_all.
27808         (read_write_all_from_decl): Take node as argument; check
27809         cgraph_node_cannot_return.
27810         (propagate): Reorganize read_all/write_all computation;
27811         check indirect edges; check ecf flags; use all_module_statics
27812         in the results; do not free all_module_statics.
27813         (stream_out_bitmap): Handle all_module_statics.
27814         (ipa_reference_write_optimization_summary): Likewise; use
27815         varpool/cgraph encoders to get boundaries.
27816         (ipa_reference_read_optimization_summary): Read in all_module_statics;
27817         use it when possible.
27818
27819 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
27820
27821         PR target/44218
27822         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
27823         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
27824
27825         * doc/extend.texi (powerpc builtins): Document vec_recip,
27826         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
27827
27828         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
27829         (rs6000_emit_swrsqrt): Ditto.
27830         (rs6000_emit_swdivsf): Delete.
27831         (rs6000_emit_swdivdf): Ditto.
27832         (rs6000_emit_swrsqrtsf): Ditto.
27833
27834         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
27835         describe the reciprocal estimate support for each type.
27836         (recip_options): Map -mrecip=<opt> into option bits.
27837         (gen_2arg_fn_t): New typedef for binary rtx gen function.
27838         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
27839         reciprocal estimate instructions.
27840         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
27841         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
27842         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
27843         cost information if -mdebug=cost or -mdebug=reg.
27844         (rs6000_override_options): Set -mrecip-precision for power6, and
27845         power7 machines.  If -mvsx or -mdfp, enable various options that
27846         came in previous instruction set ISAs, unless the option was
27847         explicitly disabled by the command line option.  Parse
27848         -mrecip=<opt> options.
27849         (rs6000_builtin_vectorized_function): Add support for vectorizing
27850         the reciprocal estimate builtins and expansions.
27851         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
27852         (bdesc_2arg): Add reciprocal estimate builtins.
27853         (bdesc_1arg): Add reciprocal square root estimate builtins.
27854         (rs6000_expand_builtin): Rewrite to use a switch statement,
27855         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
27856         (rs6000_init_builtins): Create declarations for reciprocal
27857         estimate builtins.
27858         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
27859         sized, prefer traditional floating point registers, if integer
27860         vector types, prefer altivec registers.  Don't actually look at
27861         the memory address any more.
27862         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
27863         builtins.
27864         (rs6000_load_constant_and_splat): New helper function to load up
27865         the constant for reciprocal estimate instructions.
27866         (rs6000_emit_madd): New helper function for generating
27867         multiply/add type instructions, based on the current switches.
27868         (rs6000_emit_msub): Ditto.
27869         (rs6000_emit_mnsub): Ditto.
27870         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
27871         replace a divide with a reciprocal estimate and fixup, adding
27872         support for machines with high precision and vectors.
27873         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
27874         low precision machines.
27875         (rs6000_emit_swdiv): New common function to be called to replace a
27876         division with reciprocal estimate and fixup.
27877         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
27878         for double and vector types.  Add support for high precision machines.
27879
27880         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
27881         the reciprocal estimate instructions can be generated.
27882         (TARGET_FRE): Ditto.
27883         (TARGET_FRSQRTES): Ditto.
27884         (TARGET_FRSQRTE): Ditto.
27885         (RS6000_RECIP_*): New macros for reciprocal estimate support.
27886
27887         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
27888         square root estimate on vectors.
27889         (re<mode>2): New insn for reciprocal division estimate on vectors.
27890
27891         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
27892         New builtin.
27893         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
27894         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
27895         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
27896         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
27897         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
27898         (RS6000_BUILTIN_RSQRT): Ditto.
27899         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
27900         floating point builtin.
27901
27902         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
27903         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
27904         __RECIP_PRECISION__ based on the command line switches.
27905         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
27906
27907         * config/rs6000/rs6000.opt (-mrecip): Document add support for
27908         replacing division instructions with reciprocal estimate and fixup.
27909         (-mrecip=<opt>): New option.
27910         (-mrecip-precision): Ditto.
27911
27912         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
27913         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
27914         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
27915         precision scalar.
27916
27917         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
27918         (UNSPEC_VREFP): Ditto.
27919         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
27920         conterparts with regard to support of -mno-fused-madd and -ffast-math.
27921         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
27922         reciprocal estimate instructions to be generated.
27923         (altivec_vrefp): Ditto.
27924
27925         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
27926         estimate support.
27927         (rreg): New mode attribute for reciprocal estimate support.
27928         (recip<mode>3): New insn for division using reciprocal estimate
27929         and fixup builtins.
27930         (divide define_split): New define_split to convert floating point
27931         division to use reciprocal estimate if the user used the
27932         appropriate options and the split is run when we can add new
27933         pseudo registers for the fixup.
27934         (rsqrt<mode>2): New insn for reciprocal square root support.
27935         (recipsf3): Move into recip<mode>3.
27936         (recipdf3): Ditto.
27937         (fres): Use TARGET_FRES.
27938         (rsqrtsf2): Move into rsqrt<mode>2.
27939         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
27940         (copysignsf3): Add support for VSX.
27941         (fred): Use TARGET_FRE.
27942         (fred_fpr): Ditto.
27943         (rsqrtdf_internal1): New function for frsqrte instruciton.
27944
27945         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
27946         (vec_rsqrt): Ditto.
27947
27948 2010-06-03  Richard Guenther  <rguenther@suse.de>
27949
27950         PR middle-end/44291
27951         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
27952         (set_user_assembler_libfunc): Likewise.
27953
27954 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
27955
27956         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
27957         defaults.h.
27958         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
27959         to defaults.h
27960         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
27961         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
27962         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
27963         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
27964         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
27965         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
27966         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
27967         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
27968         * defaults.h: Updated for above mentioned changes.
27969
27970 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
27971
27972         * c-common.c: Remove header include of tm_p.h.
27973         * Makefile.in (c-common.o): Remove TM_P_H dependency.
27974
27975 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
27976
27977         * tree.h (struct tree_decl_map): New type.
27978         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
27979         (tree_decl_map_hash): New prototype.
27980         (debug_expr_for_decl, value_expr_for_decl): Change into
27981         tree_decl_map hashtab from tree_map.
27982         (init_ttree): Adjust initialization.
27983         (tree_decl_map_hash): New function.
27984         (decl_debug_expr_lookup, decl_debug_expr_insert,
27985         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
27986
27987 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27988
27989         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
27990         linker emulations.
27991         * configure: Regenerate.
27992         * config.in: Regenerate.
27993
27994         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
27995         (X86_64_EMULATION): Define.
27996         (TARGET_LD_EMULATION): Use them.
27997
27998         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
27999         (SPARC64_EMULATION): Define.
28000         (LINK_ARCH_SPEC): Use them.
28001
28002 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
28003
28004         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
28005         smallest_mode_for_size for computing the precision types of new
28006         graphite IVs.  Do not call lang_hooks.types.type_for_size.
28007
28008 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
28009
28010         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
28011         information.
28012         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
28013
28014 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
28015
28016         PR middle-end/44363
28017         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
28018         return false instead.
28019
28020 2010-06-02  Jan Hubicka  <jh@suse.cz>
28021
28022         PR middle-end/44295
28023         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
28024         create new cgraph node to check callee.
28025
28026 2010-06-02  Richard Guenther  <rguenther@suse.de>
28027
28028         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
28029
28030 2010-06-02  Richard Guenther  <rguenther@suse.de>
28031
28032         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
28033         (lto_wrapper_cleanup): ... this.  Do not exit.
28034         (fatal): Adjust.  Exit here.
28035         (fatal_perror): Likewise.
28036         (fatal_signal): New function.
28037         (main): Set up signal handlers to cleanup temporary files.
28038         * Makefile.in (lto-wrapper.o): Adjust dependencies.
28039
28040 2010-06-02  Richard Guenther  <rguenther@suse.de>
28041
28042         PR tree-optimization/44377
28043         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
28044
28045 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28046
28047         * config/s390/2097.md (z10_fhex): Remove insn reservation.
28048         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
28049         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
28050         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
28051         instruction.
28052         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
28053
28054 2010-06-02  Jan Hubicka  <jh@suse.cz>
28055
28056         * bitmap.c (bitmap_descriptor): Add search_iter.
28057         (bitmap_find_bit): Increment it.
28058         (print_statistics): Print it.
28059
28060 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
28061
28062         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
28063         instead of gimple_build_call_vec.  Delete unnecessary local variable.
28064
28065 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
28066
28067         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
28068         change from yesterday.
28069
28070 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
28071
28072         * c-ada-spec.c: Clean up redundant includes.
28073
28074 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
28075
28076         * gimplify.c: Do not include except.h and optabs.h.
28077         (gimplify_body): Do not initialize RTL profiling.
28078         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
28079         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
28080         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
28081         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
28082         langhooks.h.
28083
28084         * tree-pretty-print.h: Include pretty-print.h.
28085         * gimple-pretty-print.h: Include pretty-print.h.
28086
28087         * tree-pretty-print.c: Do not include diagnostic.h.
28088         * tree-vrp.c: Likewise.
28089         * tree-tailcall.c: Likewise
28090         * tree-scalar-evolution.c: Likewise
28091         * tree-ssa-dse.c: Likewise
28092         * tree-chrec.c: Likewise
28093         * tree-ssa-sccvn.c: Likewise
28094         * tree-ssa-copyrename.c: Likewise
28095         * tree-nomudflap.c: Likewise
28096         * tree-call-cdce.c: Likewise
28097         * tree-stdarg.c: Likewise
28098         * tree-ssa-math-opts.c: Likewise
28099         * tree-nrv.c: Likewise
28100         * tree-ssa-sink.c: Likewise
28101         * tree-browser.c: Likewise
28102         * tree-ssa-loop-ivcanon.c: Likewise
28103         * tree-ssa-loop.c: Likewise
28104         * tree-parloops.c: Likewise
28105         * tree-ssa-address.c: Likewise
28106         * tree-ssa-ifcombine.c: Likewise
28107         * tree-if-conv.c: Likewise
28108         * tree-data-ref.c: Likewise
28109         * tree-affine.c: Likewise
28110         * tree-ssa-phiopt.c: Likewise
28111         * tree-ssa-coalesce.c: Likewise
28112         * tree-ssa-pre.c: Likewise
28113         * tree-ssa-live.c: Likewise
28114         * tree-predcom.c: Likewise
28115         * tree-ssa-forwprop.c: Likewise
28116         * tree-ssa-dce.c: Likewise
28117         * tree-ssa-ter.c: Likewise
28118         * tree-ssa-loop-prefetch.c: Likewise
28119         * tree-optimize.c: Likewise
28120         * tree-ssa-phiprop.c: Likewise
28121         * tree-object-size.c: Likewise
28122         * tree-outof-ssa.c: Likewise
28123         * tree-ssa-structalias.c: Likewise
28124         * tree-switch-conversion.c: Likewise
28125         * tree-ssa-reassoc.c: Likewise
28126         * tree-ssa-operands.c: Likewise
28127         * tree-vectorizer.c: Likewise
28128         * tree-vect-data-refs.c: Likewise
28129         * tree-vect-generic.c: Likewise
28130         * tree-vect-stmts.c: Likewise
28131         * tree-vect-patterns.c: Likewise
28132         * tree-vect-slp.c: Likewise
28133         * tree-vect-loop.c: Likewise
28134         * tree-ssa-loop-ivopts.c: Likewise
28135         * tree-ssa-loop-im.c: Likewise
28136         * tree-ssa-loop-niter.c: Likewise
28137         * tree-ssa-loop-unswitch.c: Likewise
28138         * tree-ssa-loop-manip.c: Likewise
28139         * tree-ssa-loop-ch.c: Likewise
28140         * tree-dump.c: Likewise
28141         * tree-complex.c: Likewise
28142
28143         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
28144         * tree-ssa-uninit.c: Likewise
28145         * tree-ssa-threadupdate.c: Likewise
28146         * tree-ssa-uncprop.c: Likewise
28147         * tree-ssa-ccp.c: Likewise
28148         * tree-ssa-dom.c: Likewise
28149         * tree-ssa-propagate.c: Likewise
28150         * tree-ssa-alias.c: Likewise
28151         * tree-dfa.c: Likewise
28152         * tree-cfgcleanup.c: Likewise
28153         * tree-sra.c: Likewise
28154         * tree-ssa-copy.c: Likewise
28155         * tree-ssa.c: Likewise
28156         * tree-profile.c: Likewise
28157         * tree-cfg.c: Likewise
28158         * tree-ssa-threadedge.c: Likewise
28159         * tree-vect-loop-manip.c: Likewise
28160
28161         * tree-inline.c: Do not include diagnostic.h and expr.h.
28162         Include rtl.h.
28163         (copy_decl_for_dup_finish): Do not use NULL_RTX.
28164
28165         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
28166         * tree-loop-distribution.c: Likewise.
28167
28168 2010-06-01  Jan Hubicka  <jh@suse.cz>
28169
28170         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
28171
28172 2010-06-01  Jan Hubicka  <jh@suse.cz>
28173
28174         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
28175         remove return value.
28176         (split_bbs_on_noreturn_calls) .... here.
28177         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
28178         * tree-flow.h (fixup_noreturn_call): New.
28179
28180 2010-06-01  Jan Hubicka  <jh@suse.cz>
28181
28182         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
28183
28184 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
28185
28186         * tree.h (build_nt_call_list): Delete.
28187         * tree.c (build_nt_call_list): Delete.
28188
28189 2010-06-01  Jan Hubicka  <jh@suse.cz>
28190
28191         * fwprop.c: Make emit-rtl.h include last.
28192         * rtlanal.c: Include emit-rtl.h.
28193         * genautomata.c: Output emit-rtl include into insn-automata.c
28194         * df-scan.c: Include emit-rtl.h.
28195         * haifa-sched.c: Indlude emit-rtl.h.
28196         * mode-switching.c: Indlude emit-rtl.h.
28197         * graph.c: Indlude emit-rtl.h.
28198         * sel-sched.c: Include emit-rtl.h.
28199         * sel-sched-ir.c: Include emit-rtl.h.
28200         * ira-build.c: Include emit-rtl.h.
28201         * emit-rtl.c (first_insn, last_insn): Remove defines.
28202         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
28203         Move to emit-rtl.h.
28204         (set_new_first_and_last_insn, get_last_insn_anywhere,
28205         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
28206         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
28207         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
28208         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
28209         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
28210         Use accessor functions.
28211         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
28212          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
28213         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
28214         mem_expr_equal_p): Move here from rtl.h.
28215         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
28216         Move here from emit-rtl.c; make inline.
28217         * cfglayout.h: Include emit-rtl.h.
28218         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
28219          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
28220         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
28221         mem_expr_equal_p, get_insns, set_first-insn,
28222         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
28223         * reg-stack.c: Include emit-rtl.h.
28224         * dce.c: Likewise.
28225
28226 2010-06-01  Jan Hubicka  <jh@suse.cz>
28227
28228         * cgraph.h (tree_function_versioning): Update prototype.
28229         (cgraph_function_versioning): Update prototype.
28230         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
28231         bitmap.
28232         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
28233         (cgraph_materialize_clone, save_inline_function_body): Update use of
28234         tree_function_versioning.
28235         * tree-inline.c (copy_bb): Look for previous copied block to link
28236         after; fix debug output.
28237         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
28238         (copy_body): Likewise.
28239         (expand_call_inline): Update use of copy_body.
28240         (tree_function_versioning): Update use of copy body; accept
28241         blocks_to_copy and new_entry.
28242
28243 2010-06-01  Jan Hubicka  <jh@suse.cz>
28244
28245         * gegenrtl.c: Remove unnecesary prototypes.
28246         (gendecl): Remove.
28247         (gendef): Produce static inline.
28248         (gencode): Remove.
28249         (main): Do not decode parameters; generate header only.
28250         * Makefile.in (genrtl.c): Remove.
28251
28252 2010-06-01  Jan Hubicka  <jh@suse.cz>
28253
28254         * tree-switch-conversion.c (build_one_array): Make it readonly.
28255
28256 2010-06-01  Richard Guenther  <rguenther@suse.de>
28257
28258         * optabs.c (init_optabs): Guard all accesses to reinit.
28259         * ipa-pure-const.c (propagate): Fix another typo.
28260         * opts.c (common_handle_option): Split assignment to bool.
28261         * c-opts.c (c_common_handle_option): Likewise.
28262
28263 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
28264             Matthew Gingell  <gingell@adacore.com>
28265
28266         * doc/invoke.texi: Mention -fdump-ada-spec.
28267         * tree-dump.c (dump_files): Add ada-spec.
28268         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
28269         * tree-pass.h (tree_dump_index): Add TDI_ada.
28270         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
28271         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
28272         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
28273         * c-decl.c: Include c-ada-spec.h.
28274         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
28275         functions.
28276         (c_write_global_declarations): Add handling of -fdump-ada-spec.
28277         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
28278         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
28279         * c-ada-spec.h, c-ada-spec.c: New files.
28280
28281 2010-06-01  Richard Guenther  <rguenther@suse.de>
28282
28283         PR lto/43853
28284         * ipa-pure-const.c (get_function_state): Hand back varying state
28285         if we do not have one.
28286         (has_function_state): New function.
28287         (duplicate_node_data): Adjust.
28288         (remove_node_data): Likewise.
28289         (pure_const_write_summary): Likewise.
28290         (propagate): Likewise.  Fix typo.
28291
28292 2010-06-01  Jan Hubicka  <jh@suse.cz>
28293
28294         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
28295         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
28296         (execute_all_ipa_transforms): Do not play with the states.
28297
28298 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
28299
28300         * config/arm/t-linux-androideabi: New.
28301         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
28302
28303 2010-06-01  Jan Hubicka  <jh@suse.cz>
28304
28305         * tree-inline.c (estimate_num_insns): For stdarg functions look
28306         into call statement to count cost of argument passing.
28307
28308 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
28309
28310         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
28311         argument for fprintf.
28312         (ix86_output_addr_diff_elt): Likewise.
28313         (x86_function_profiler): Likewise.
28314         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
28315         (LPREFIX): Likewise.
28316         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
28317
28318 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
28319
28320         PR target/44338
28321         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
28322         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
28323         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
28324         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
28325         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
28326         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
28327         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
28328         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
28329         TARGET_FUSED_MADD.
28330
28331 2010-05-31  Jan Hubicka  <jh@suse.cz>
28332
28333         * tree.h (tree_range_check_failed): Declare noreturn.
28334
28335 2010-05-31  Jan Hubicka  <jh@suse.cz>
28336
28337         * gimple.c (gimple_call_builtin_p): New function.
28338         * gimple.h (gimple_call_builtin_p): Declare.
28339         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
28340         to exit.
28341         (execute_warn_function_return): BUILT_IN_RETURN is return.
28342         (split_critical_edges): Return edges are not critical.
28343         (is_ctrl_altering_stmt): Builtin_in_return is altering.
28344         (gimple_verify_flow_info): Handle built_in_return.
28345         (execute_warn_function_return): Handle built_in_return.
28346         * ipa-pure-const.c (check_call): Ignore builtin_return.
28347
28348 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
28349
28350         PR middle-end/44337
28351         * expr.c (expand_assignment): Don't store anything for out-of-bounds
28352         array accesses with non-MEM.
28353
28354         PR tree-optimization/44182
28355         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
28356         newly needs to end a bb is followed by debug stmts, instead return
28357         true from the function at the end.
28358         (maybe_move_debug_stmts_to_successors): New function.
28359         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
28360
28361 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
28362
28363         PR target/44161
28364         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
28365
28366 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
28367
28368         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
28369         for nested functions in non-optimized compilation.
28370
28371 2010-05-31  Richard Guenther  <rguenther@suse.de>
28372
28373         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
28374
28375 2010-05-30  Jan Hubicka  <jh@suse.cz>
28376
28377         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
28378
28379 2010-05-30  Richard Guenther  <rguenther@suse.de>
28380
28381         PR lto/42975
28382         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
28383         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
28384         no longer needed.
28385
28386 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
28387
28388         * config/darwin.c (output_objc_section_asm_op): Add comment.
28389         (name_needs_quotes): Add '_' to list of valid comment chars.
28390         (machopic_output_function_base_name): Remove unneeded quotes.
28391         (darwin_encode_section_info): Adjust asm whitespace.
28392         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
28393         (ASM_OUTPUT_LOCAL): Ditto.
28394         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
28395         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
28396         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
28397
28398 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
28399
28400         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
28401         RS6000_OUTPUT_BASENAME unconditionally.
28402         (rs6000_output_function_epilogue): Likewise.
28403
28404 2010-05-30  Jan Hubicka  <jh@suse.cz>
28405
28406         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
28407         nodes.
28408
28409 2010-05-30  Richard Guenther  <rguenther@suse.de>
28410
28411         * tree-cfg.c (verify_gimple_assign_single): Implement
28412         verification for COND_EXPR rhs.
28413
28414 2010-05-30  Jan Hubicka  <jh@suse.cz>
28415
28416         * cgraph.h (cgraph_dump_file): Declare.
28417         * cgraphunit.c (cgraph_dump_file): Export.
28418         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
28419
28420 2010-05-30  Jan Hubicka  <jh@suse.cz>
28421
28422         * dwarf2out.c (reference_to_unused,
28423         premark_types_used_by_global_vars_helper): Avoid creation of new
28424         varpool nodes.
28425
28426 2010-05-30  Jan Hubicka  <jh@suse.cz>
28427
28428         * cgraph.h (cgraph_node_cannot_return,
28429         cgraph_edge_cannot_lead_to_return): New functions.
28430         * cgraph.c (cgraph_node_cannot_return,
28431         cgraph_edge_cannot_lead_to_return): Use them.
28432         * ipa-pure-const.c (pure_const_names): New static var.
28433         (check_call): Handle calls not leading to return.
28434         (pure_const_read_summary): Dump info read.
28435         (propagate): Dump info about propagation process; ignore side effects
28436         of functions not leading to exit; fix handling of pure functions.
28437
28438 2010-05-30  Jan Hubicka  <jh@suse.cz>
28439
28440         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
28441         for tail call epilogues.
28442
28443 2010-05-30  Jan Hubicka  <jh@suse.cz>
28444
28445         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
28446         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
28447         dump files.
28448
28449 2010-05-29  Jan Hubicka  <jh@suse.cz>
28450
28451         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
28452         node; remove references in node we no longer keep in cgrpah but need
28453         body of.
28454
28455 2010-05-29  Jan Hubicka  <jh@suse.cz>
28456
28457         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
28458
28459 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28460
28461         PR target/44165
28462         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
28463
28464 2010-05-29  Jan Hubicka  <jh@suse.cz>
28465
28466         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
28467         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
28468         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
28469         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
28470         debug_names_replaced_by, debug_update_ssa): Likewise.
28471         * sbitmap.c (debug_sbitmap): Likewise.
28472         * genrecog.c (debug_decision, debug_decision_list): Likewise.
28473         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
28474         debug_tree_chain): Likewise.
28475         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
28476         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
28477         * optabs.c (debug_optab_libfuncs): Likewise.
28478         (verify_loop_closed_ssa): Likewise.
28479         * value-prof.c (verify_histograms): Likewise.
28480         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
28481         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
28482         * cfghooks.c (verify_flow_info): Likewise.
28483         * fold-const.c (debug_fold_checksum): Likewise.
28484         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
28485         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
28486         Likewise.
28487         * omega.c (debug_omega_problem): Likewise.
28488         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
28489         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
28490         * dominance.c (verify_dominators, debug_dominance_info,
28491         debug_dominance_tree): Likewise.
28492         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
28493         * df_regno_debug, df_ref_debug,
28494         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
28495         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
28496         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
28497         * sel-sched.c (debug_state): Likewise.
28498         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
28499         Likewise.
28500         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
28501         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
28502         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
28503         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
28504         Likewise.
28505         * c-pretty-print.c (debug_c_tree): Likewise.
28506         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
28507         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
28508         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
28509         * ebitmap.c (debug_ebitmap): Likewise.
28510         * function.c (debug_find_var_in_block_tree): Likewise.
28511         * print-rtl.c (debug_rtx): Likewise.
28512         (debug_rtx_count): Likewise.
28513         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
28514         * stor-layout.c (debug_rli): Likewise.
28515         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
28516         * tree-data-ref.c (debug_data_references,
28517         debug_data_dependence_relations, debug_data_reference,
28518         debug_data_dependence_relation, debug_rdg_vertex,
28519         debug_rdg_component, debug_rdg): Likewise.
28520         * tree-affine.c (debug_aff): Likewise.
28521         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
28522         Likewise.
28523         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
28524         * emit-rtl.c (verify_rtl_sharing): Likewise.
28525         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
28526         debug_value_expressions): Likewise.
28527         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
28528         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
28529         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
28530         * cfglayout.c (verify_insn_chain): Likewise.
28531         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
28532         debug_clast_stmt, debug_generated_program): Likewise.
28533         * ggc-page.c (debug_print_page_list): Likewise.
28534         * tree-ssa-ter.c (debug_ter): Likewise.
28535         * graphite-dependences.c (debug_pddr): Likewise.
28536         * sched-deps.c (debug_ds): Likewise.
28537         * tree-ssa.c (verify_ssa): Likewise.
28538         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
28539         debug_scattering_functions, debug_iteration_domains, debug_pdr,
28540         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
28541         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
28542         * tree-inline.c (debug_find_tree): Likewise.
28543         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
28544         debug_ppl_powerset_matrix): Likewise.
28545         * var-tracking.c (debug_dv): Likewise.
28546         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
28547         * cfgloop.c (verify_loop_structure): Likewise.
28548         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
28549         * c-common.c (verify_sequence_points): Likewise.
28550         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
28551         debug_candidates, debug_rgn_dependencies): Likewise.
28552         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
28553         * debug_constraint_graph, debug_solution_for_var,
28554         debug_sa_points_to_info): Likewise.
28555         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
28556         Likewie.
28557         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
28558         debug_loops, debug_loop, debug_loop_num): Likewise.
28559         * passes.c (debug_pass): Likewise.
28560         (dump_properties): Likewise; add cfglayout property.
28561         (debug_properties): Likewise.
28562         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
28563         * varpool.c (debug_varpool): Likewise.
28564         * regcprop.c (debug_value_data): Likewise.
28565         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
28566         debug_immediate_uses_for): Likewise.
28567
28568 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
28569
28570         PR bootstrap/44315
28571         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
28572         Filter out insn-flags.h.
28573
28574 2010-05-29  Jan Hubicka  <jh@suse.cz>
28575
28576         * cgraph.h (struct varpool_node_set_def,
28577         struct cgraph_node_set_def): Remove unused AUX pointer.
28578         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
28579         VEC_empty macro.
28580
28581 2010-05-29  Jan Hubicka  <jh@suse.cz>
28582
28583         PR middle-end/44324
28584         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
28585
28586 2010-05-29  Richard Guenther  <rguenther@suse.de>
28587
28588         * lto-streamer.c (cached_bp): New global variable.
28589         (bitpack_create): Return the cached bitpack, if available.
28590         (bitpack_delete): Clear and cache the bitpack, if appropriate.
28591         (bp_pack_value): Remove redundant asserts.
28592
28593 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
28594
28595         PR middle-end/44306
28596         * tree-if-conv.c (is_true_predicate): New.
28597         (is_predicated): Use is_true_predicate.
28598         (add_to_predicate_list): Same.  Do not use unshare_expr.
28599         (add_to_dst_predicate_list): Same.
28600
28601 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
28602
28603         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
28604         field on edges.
28605         (predicate_bbs): Same.
28606         (clean_predicate_lists): Same.
28607         (find_phi_replacement_condition): Do not AND the predicate from
28608         edge->aux.
28609
28610 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
28611
28612         PR bootstrap/44315
28613         * Makefile.in (build/gencondmd.o): Add a missing `\'.
28614
28615 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28616
28617         PR target/44261
28618         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
28619         (negdf2): Adjust expander pattern and use negdf2_slow.
28620         (negsf2): Likewise.
28621
28622 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
28623
28624         * basic-block.h (struct control_flow_graph): Move last_label_uid field
28625         up.
28626         * df.h (struct df_base_ref): Move regno field up.
28627         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
28628         * expr.h (struct separate_ops): Move location field up.
28629         * optabs.h (struct optab_d): Move libcall_basename field down.
28630         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
28631         * config/i386/i386.h (struct machine_function): Convert call_abi field
28632         into a bitfield.  Move cfa field to the end of the structure.
28633
28634 2010-05-29  Jan Hubicka  <jh@suse.cz>
28635
28636         * varpool.c (varpool_get_node): Fix lookup.
28637
28638 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28639
28640         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
28641         RTL specific prototypes with #ifdef RTX_CODE.
28642         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
28643         * config/spu/t-spu-elf: Fix dependencies.
28644
28645         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
28646
28647 2010-05-29  Mike Stump  <mikestump@comcast.net>
28648
28649         PR bootstrap/44315
28650         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
28651         TM_H when building to avoid dependency loops.
28652
28653 2010-05-29  Jan Hubicka  <jh@suse.cz>
28654
28655         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
28656         refs and body; not the whole node for masters of materialized clones.
28657
28658 2010-05-29  Mike Stump  <mikestump@comcast.net>
28659
28660         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
28661
28662 2010-05-29  Jan Hubicka  <jh@suse.cz>
28663
28664         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
28665         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
28666         use of clone_function_name.
28667         * cgraph.h (cgraph_create_virtual_clone,
28668         cgraph_function_versioning): update prototypes.
28669         (clone_function_name): Declare.
28670         * ipa-cp.c (ipcp_insert_stage): Update call of
28671         cgraph_create_virtual_clone.
28672         * omp-low.c (create_omp_child_function_name): Use
28673         cgraph_create_virtual_clone.
28674         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
28675         (cgraph_function_versioning): Take SUFFIX argument; produce new name
28676         and make decl local.
28677
28678 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28679
28680         * vec.h: Include statistics.h
28681         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
28682         with VEC_H.
28683
28684 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28685
28686         * c-lex.c: Do not include c-tree.h.
28687         * c-pretty-print.c: Likewise.
28688         * c-opts.c: Likewise.
28689         * c-gimplify.c: Likewise.
28690         * c-common.c: Likewise.
28691         * c-dump.c: Likewise.  Include c-common.h.
28692
28693 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28694
28695         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
28696         before including diagnostic-core.h.
28697         (c_cpp_error): New prototype moved from c-tree.h.
28698         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
28699         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
28700         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
28701         (c_cpp_error): Prototype moved to c-common.h.
28702         * Makefile.in: Update dependency for C_COMMON_H.
28703
28704 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28705
28706         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
28707         * c-common.c (c_register_addr_space): Remove here.
28708         * c-decl.c (c_register_addr_space): Re-add here.
28709
28710 2010-05-28  Mike Stump  <mikestump@comcast.net>
28711
28712         * config/darwin-c.c: Remove c-tree.h include.
28713
28714 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28715
28716         * gcc.c: Include diagnostic.h.
28717         (error_count): Remove.  All users changed to use errorcount.
28718         (programname): Remove.  All users changed to use progname.
28719         (fancy_abort, internal_error, fatal_error, error, warning, inform,
28720         fnotice): Remove.
28721         (execute): Don't include "Internal error" and bug reporting
28722         information in argument of internal_error call.
28723         (process_command): Don't increment error_count after calling
28724         perror_with_name.
28725         (input_filename): Rename to gcc_input_filename.  All users
28726         changed.
28727         (main): Call diagnostic_initialize.  Register delete_temp_files
28728         with atexit.  Use seen_error to test for errors.
28729         * gcc.h: Include diagnostic-core.h.
28730         (fatal_error, error, warning): Remove.
28731         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
28732         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
28733         (gcc.o): Update dependencies.
28734
28735 2010-05-28  Jeff Law  <law@redhat.com>
28736
28737         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
28738         functions.
28739         * ira.h (ira_bad_reload_regno): Declare
28740         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
28741
28742         * ira-color.c (update_curr_costs): Free updated hard reg costs.
28743         (ira_reassign_conflict_allocnos): Remove bogus asserts.
28744         (allocno_reload_assign): Likewise.
28745
28746 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
28747
28748         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
28749         build1_stat.
28750
28751 2010-05-28  Richard Guenther  <rguenther@suse.de>
28752
28753         PR lto/44312
28754         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
28755         Stream fixed-point constants mode.
28756         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
28757         and TYPE_PRECISION.
28758         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
28759         Stream fixed-point constants mode.
28760         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
28761         and TYPE_PRECISION.
28762
28763 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28764
28765         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
28766         only place it was called from.
28767         (number_of_latch_executions): Do not return chrec_dont_know when the
28768         may_be_zero is a runtime condition: instead, return a COND_EXPR
28769         including the may_be_zero condition.
28770         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
28771         of nb_iterations.
28772         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
28773         COND_EXPRs.
28774
28775 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28776
28777         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
28778         generate COND_EXPRs for degenerate_phi_result.
28779
28780 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28781
28782         PR middle-end/44293
28783         * tree-if-conv.c (if_convertible_loop_p): Check the
28784         if-convertibility of phi nodes in non predicated BBs.
28785
28786 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28787
28788         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
28789
28790 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28791
28792         PR driver/15303
28793         * gcc.c (inform, warning, inform): New functions.
28794         (fatal_ice): Rename to internal_error; change cmsgid parameter to
28795         gmsgid.  All callers changed.
28796         (notice): Rename to fnotice; add parameter fp.  All callers changed.
28797         (fatal_error): Rename to fatal_signal.  All users changed.
28798         (fatal): Rename to fatal_error; change cmsgid parameter to
28799         gmsgid.  All callers changed.
28800         (process_command): Use warning instead of error for warnings.
28801         (end_going_arg): Don't use _() around argument of error.
28802         (do_spec_1): Use inform for message from %n specs.  Use warning
28803         instead of error for warnings.
28804         (main): Use inform for comparison messages.  Use warning for
28805         message about unused linker input.
28806         (error): Increment error_count.  Print "error: ".
28807         * gcc.h (fatal): Change to fatal_error.
28808         (warning): Declare.
28809         * config/darwin-driver.c (darwin_default_min_version): Use warning
28810         instead of fprintf for warnings.
28811         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
28812
28813 2010-05-28  Julian Brown  <julian@codesourcery.com>
28814
28815         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
28816         (*thumb2_addsi3_compare0_scratch): New.
28817         * config/arm/constraints.md (Pv): New.
28818         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
28819         for ARM mode only.
28820         (*addsi3_compare0_scratch): Likewise.
28821
28822 2010-05-28  Jan Hubicka  <jh@suse.cz>
28823
28824         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
28825         check.
28826         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
28827         only on local statics.
28828
28829 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
28830
28831         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
28832
28833 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
28834
28835         PR bootstrap/44314
28836         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
28837         (OPTION_GLIBC): Define.
28838
28839 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
28840
28841         PR debug/41048
28842         * dwarf2out.c (double_int_type_size_in_bits): New function.
28843         (round_up_to_align): Change first argument and return value to
28844         double_int.
28845         (field_byte_offset): Work internally on double_ints.
28846
28847         PR target/43636
28848         * builtins.c (expand_movstr): Use a temporary pseudo instead
28849         of target even when target is not NULL and not const0_rtx, but
28850         fails movstr predicate.
28851         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
28852
28853 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28854
28855         * final.c (rest_of_clean_state): Use %m in errors instead of
28856         strerror (errno).
28857         * gengtype.c (read_input_list, close_output_files): Use xstrerror
28858         instead of strerror.
28859         * toplev.c (process_options): Use %m in errors instead of strerror
28860         (errno).
28861         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
28862         (errno).
28863
28864 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
28865
28866         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
28867         (ix86_canonical_va_list_type): Make static.  Add declaration.
28868         (ix86_enum_va_list): Make static.  Reindent.
28869         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
28870         (ix86_canonical_va_list_type): Ditto.
28871         (ix86_enum_va_list): Ditto.
28872
28873 2010-05-28  Richard Guenther  <rguenther@suse.de>
28874
28875         * lto-wrapper.c (run_gcc): With -save-temps generate a
28876         user-visible ltrans filename.  Fixup ltrans unit numbering.
28877
28878 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
28879
28880         * c-common.c (c_common_nodes_and_builtins): Replace use
28881         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
28882         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
28883         to ix86_enum_va_list.
28884         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
28885         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
28886         (TARGET_ENUM_VA_LIST_P): Add hook description.
28887         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
28888         * target.h (gcc_target): Add enum_va_list hook.
28889
28890         PR bootstrap/44299
28891         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
28892         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
28893         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
28894
28895 2010-05-28  Alan Modra  <amodra@gmail.com>
28896
28897         PR target/44266
28898         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
28899         emit_library_call machinery to set up __tls_get_addr calls.
28900
28901 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28902
28903         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
28904
28905 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
28906
28907         Revert fix for PR c++/44188
28908         * c-common.c (is_typedef_decl): Revert the moving of  this
28909         definition ...
28910         * tree.c (is_typedef_decl): ... here.
28911         (typdef_variant_p): Revert the moving of this  definition
28912         here from cp/tree.c.
28913         * c-common.h (is_typedef_decl): Revert the moving of this
28914         declaration ...
28915         * tree.h (is_typedef_decl): ... here.
28916         (typedef_variant_p): Revert the moving of this  declaration here
28917         from cp/cp-tree.h
28918         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
28919         (gen_tagged_type_die): Revert the splitting out of ...
28920         (gen_type_die_with_usage): ... this function. Revert the anonymous
28921         tagged type handling.
28922         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
28923         typedefs naming anonymous tagged types.
28924
28925 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
28926
28927         * config/rs6000/rs6000-modes.def (PSImode): Delete.
28928
28929 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
28930
28931         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
28932         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
28933         throughout.
28934         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
28935         "xer" to "ca".
28936         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
28937         XER_REGS to CA_REGS throughout.
28938         * config/rs6000/rs6000.h: Same.
28939         (ADDITIONAL_REGISTER_NAMES): Add "xer".
28940         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
28941         that mode_iterator "P" is the size for arithmetic carries as well.
28942         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
28943
28944 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
28945
28946         PR bootstrap/44255
28947         * combine.c (struct rtx_subst_pair): Define unconditionally.
28948         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
28949         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
28950         Call make_compound_operation on pair->to.
28951         (propagate_for_debug): Don't call make_compound_operation here.
28952         Always use simplify_replace_fn_rtx.
28953
28954 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
28955
28956         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
28957         * config/xtensa/xtensa.c (override_options): Check
28958           TARGET_FORCE_NO_PIC and set flag_pic.
28959         * config/xtensa/xtensa.opt: Document -mforce-no-pic
28960
28961 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
28962
28963         PR bootstrap/44299
28964         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
28965         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
28966
28967 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
28968
28969         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
28970         toplev.h.
28971         * diagnostic.c: Don't include toplev.h.
28972         (progname): Define.  Moved from toplev.c.
28973         (seen_error): New function.
28974         * diagnostic.h: Include diagnostic-core.h.
28975         (diagnostic_t, emit_diagnostic): Don't declare here.
28976         * toplev.c (progname): Move to toplev.c.
28977         (emit_debug_global_declarations, compile_file, finalize,
28978         do_compile, toplev_main): Use seen_error.
28979         * toplev.h: Include diagnostic-core.h.
28980         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
28981         internal_error, warning, warning_at, error, error_n, error_at,
28982         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
28983         verbatim, fnotice, progname): Move to diagnostic-core.h.
28984         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
28985         (expand_builtin_expect): Use seen_error.
28986         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
28987         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
28988         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
28989         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
28990         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
28991         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
28992         errorcount for errors.
28993         * c-opts.c (c_common_finish): Use seen_error.
28994         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
28995         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
28996         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
28997         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
28998         (get_coverage_counts): Use seen_error.
28999         * dwarf2out.c (dwarf2out_finish): Use seen_error.
29000         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
29001         gimplify_body): Use seen_error.
29002         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
29003         * ipa-pure-const.c (gate_pure_const): Use seen_error.
29004         * ipa-reference.c (gate_reference): Use seen_error.
29005         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
29006         * lambda-code.c: Include diagnostic-core.h instead of
29007         diagnostic.h.
29008         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
29009         * lto-compress.c: Include diagnostic-core.h instead of
29010         diagnostic.h.
29011         * lto-section-in.c: Include diagnostic-core.h instead of
29012         diagnostic.h.
29013         * lto-streamer-out.c: Include diagnostic-core.h instead of
29014         diagnostic.h.
29015         * lto-streamer.c: Include diagnostic-core.h instead of
29016         diagnostic.h.
29017         (gate_lto_out): Use seen_error.
29018         * matrix-reorg.c: Include diagnostic-core.h instead of
29019         diagnostic.h.
29020         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
29021         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
29022         (gate_expand_omp, lower_omp_1): Use seen_error.
29023         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
29024         (rest_of_decl_compilation, rest_of_type_compilation,
29025         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
29026         * tree-cfg.c (label_to_block_fn): Use seen_error.
29027         * tree-inline.c (optimize_inline_calls): Use seen_error.
29028         * tree-mudflap.c (mudflap_finish_file): Use
29029         seen_error.
29030         * tree-optimize.c (gate_all_optimizations,
29031         gate_all_early_local_passes, gate_all_early_optimizations): Use
29032         seen_error.
29033         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
29034         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
29035         (varpool_remove_unreferenced_decls,
29036         varpool_assemble_pending_decls): Use seen_error.
29037         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
29038         (TOPLEV_H, DIAGNOSTIC_H): Update.
29039         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
29040         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
29041         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
29042         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
29043         coverage.o, lambda-code.o): Update dependencies.
29044
29045 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
29046
29047         PR c++/44188
29048         * c-common.c (is_typedef_decl): Move this definition ...
29049         * tree.c (is_typedef_decl): ... here.
29050         (typdef_variant_p): Move definition here from cp/tree.c.
29051         * c-common.h (is_typedef_decl): Move this declaration ...
29052         * tree.h (is_typedef_decl): ... here.
29053         (typedef_variant_p): Move declaration here from cp/cp-tree.h
29054         * dwarf2out.c (is_naming_typedef_decl): New function.
29055         (gen_tagged_type_die): Split out of ...
29056         (gen_type_die_with_usage): ... this function. When an anonymous
29057         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
29058         is emitted for the typedef.
29059         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
29060         anonymous tagged types.
29061
29062 2010-05-27  Jason Merrill  <jason@redhat.com>
29063
29064         * print-tree.c (debug_vec_tree): New fn.
29065         (print_vec_tree): New fn.
29066         * tree.h: Declare them.
29067         * gdbinit.in (pvt): New command.
29068
29069         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
29070
29071         * gdbinit.in (pdd): New command.
29072
29073 2010-05-27  Jan Hubicka  <jh@suse.cz>
29074
29075         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
29076         (update_caller_keys): Return early if there are no callers;
29077         only update fibheap when decresing the key.
29078         (update_callee_keys): Avoid recursion.
29079         (decide_inlining_of_small_functions): When badness does not match;
29080         re-insert into fibheap.
29081
29082 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
29083
29084         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
29085         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
29086         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
29087         (ALL_HOST_OBJS): Now a union of the above two.
29088         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
29089         all files in ALL_HOST_FRONTEND_OBJS.
29090         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
29091
29092         * c-common.c: Pretend to be a backend file by undefining
29093         IN_GCC_FRONTEND (still need rtl.h here).
29094
29095 2010-05-27  Jan Hubicka  <jh@suse.cz>
29096
29097         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
29098         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
29099
29100 2010-05-27  Jan Hubicka  <jh@suse.cz>
29101
29102         * sched-ebb.c: Rename struct deps to struct deps_desc.
29103         * ddg.c: Likewise.
29104         * sel-sched-ir.c: Likewise.
29105         * sched-deps.c: Likewise.
29106         * sched-int.h: Likewise.
29107         * sched-rgn.c: Likewise.
29108
29109 2010-05-27  Jon Beniston  <jon@beniston.com>
29110
29111         PR 43726
29112         * config/lm32/lm32.h: Remove definition of
29113         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
29114
29115 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
29116
29117         PR lto/44230
29118         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
29119
29120 2010-05-27  Richard Guenther  <rguenther@suse.de>
29121
29122         PR tree-optimization/44284
29123         * tree-vect-stmts.c (vectorizable_assignment): Handle
29124         sign-changing conversions as simple copy.
29125
29126 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
29127
29128         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
29129         Bionic C library.
29130         (__gthread_active_p): Check for pthread_create if compiling against
29131         Bionic C library.
29132
29133 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
29134
29135         Support compilation for Android platform.  Reimplement -mandroid.
29136
29137         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
29138         (*android*): Set ANDROID_DEFAULT.
29139         (arm*-*-linux*): Include linux-android.h.
29140         (arm*-*-eabi*): Don't include previous -mandroid implementation.
29141         * config/arm/eabi.h: Remove, move Android-specific parts ...
29142         * config/linux-android.h: ... here.  New file.
29143         * config/arm/eabi.opt: Rename to ...
29144         * config/linux-android.opt: ... this.
29145         (mandroid): Allow -mno-android option.  Initialize based on
29146         ANDROID_DEFAULT.
29147         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
29148         Move logic to corresponding LINUX_TARGET_* macros.
29149         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
29150         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
29151         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
29152         Android definitions.
29153         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
29154         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
29155         Document.
29156
29157 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
29158
29159         Add support for Bionic C library
29160
29161         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
29162         macro.
29163         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
29164         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
29165
29166         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
29167         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
29168         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
29169         to support multiple C libraries.  Handle Bionic.
29170         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
29171         (BIONIC_DYNAMIC_LINKER64): Define.
29172         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
29173         Update.
29174         (TARGET_HAS_SINCOS): Enable for Bionic.
29175
29176         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
29177         the last option specified on command line take effect.
29178         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
29179         (mbionic): New.
29180         (mglibc, muclibc): Update.
29181
29182         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
29183         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
29184         DEFAULT_LIBC.
29185
29186         * doc/invoke.texi (-mglibc, -muclibc): Update.
29187         (-mbionic): Document.
29188
29189 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29190
29191         * c-common.h (c_register_addr_space): Add prototype.
29192         (ADDR_SPACE_KEYWORD): Remove.
29193         * c-common.c (c_register_addr_space): New function.
29194         (c_addr_space_name): Reimplement.
29195         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
29196
29197         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
29198         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
29199
29200         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
29201         Remove TARGET_ADDR_SPACE_KEYWORDS.
29202
29203 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
29204
29205         * input.c: New file.
29206         * input.h (main_input_filename): Move declaration to toplev.h.
29207         * toplev.c (input_location, line_table): Move to input.c
29208         * toplev.h (main_input_filename): Move declaration from input.h.
29209         * tree.c (expand_location): Move to input.c.
29210         * Makefile.in (OBJS-common): Add input.o.
29211         (input.o): Add dependencies.
29212
29213 2010-05-27  Richard Guenther  <rguenther@suse.de>
29214
29215         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
29216         for non-existant files.
29217         (fork_execute): Mark args_name file as deleted.
29218
29219 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
29220
29221         PR bootstrp/44287
29222         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
29223         (narrow_signed_type): Likewise.
29224
29225 2010-05-26  Jan Hubicka  <jh@suse.cz>
29226
29227         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
29228         edge only when checking is enabled; check using former_clone_of;
29229         check inline clones too.
29230         (cgraph_materialize_clone): Record former_clone_of pointer.
29231         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
29232         combining redirections; dump args_to_skip bitmap
29233         (cgraph_materialize_all_clones): Do no redirection here.
29234         * ipa-inline.c (inline_transform): Do redirection here.
29235         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
29236         cheking only).
29237
29238 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29239
29240         * config/avr/avr-c.c: Do not include regs.h.
29241         Include cpplib.h for cpp_define and tree.h for c-common.h.
29242         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
29243         * config/avr/t-avr: Fix dependencies for avr-c.o.
29244
29245 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29246
29247         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
29248         string instead of SYMBOL_REF rtx.
29249         * rtl.h (set_stack_check_libfunc): Move prototype from here...
29250         * libfuncs.h: ...to here.  Adjust for explow.c change.
29251
29252 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
29253
29254         * pretty-print.c: Don't include ggc.h.
29255         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
29256         (identifier_to_locale): Use them for allocation.
29257         * pretty-print.h (identifier_to_locale_alloc,
29258         identifier_to_locale_free): Declare.
29259         * toplev.c (alloc_for_identifier_to_locale): New.
29260         (general_init): Set identifier_to_locale_alloc and
29261         identifier_to_locale_free.
29262         * Makefile.in (pretty-print.o): Update dependencies.
29263
29264 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
29265
29266         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
29267         pointer types if they have different alignment or mode.
29268
29269 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
29270
29271         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
29272         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
29273         * config/sparc/sparc-protos.h (function_value): Remove declaration.
29274         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
29275         sparc_function_value_regno_p): New functions.
29276         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
29277         TARGET_FUNCTION_VALUE_REGNO_P): Define.
29278         (function_value): Rename to...
29279         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
29280         argument to 'outgoing'.
29281         (function_arg_record_value, function_arg_union_value,
29282         function_arg_vector_value): Update comment.
29283
29284 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
29285
29286         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
29287         (fde_needed_for_eh_p): New predicate.
29288         (output_call_frame_info): Use it throughout to decide whether FDEs
29289         are needed for EH purpose.
29290         (dwarf2out_begin_prologue): Reorder assignments.
29291
29292 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29293
29294         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
29295         special case loop->header.
29296         (is_predicated): New.
29297         (if_convertible_loop_p): Call it.
29298
29299 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29300
29301         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
29302         iterator in parameter.  Do not generate code during the analysis.
29303         (tree_if_convert_cond_stmt): Removed.
29304         (tree_if_convert_stmt): Removed.
29305         (predicate_bbs): New.
29306         (if_convertible_loop_p): Call predicate_bbs.
29307         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
29308         now contains all the analysis part.
29309
29310 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29311
29312         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
29313         statements in the analysis part.
29314         (tree_if_convert_stmt): Update comment.
29315         (remove_conditions_and_labels): New.
29316         (combine_blocks): Call remove_conditions_and_labels.
29317         (tree_if_conversion): Update comment.
29318
29319 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29320
29321         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
29322         than 2 predecessors or more than 2 successors.
29323
29324 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29325
29326         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
29327         of loops in which the data dependence analysis fails.
29328
29329 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29330
29331         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
29332         CDI_POST_DOMINATORS.
29333         (tree_if_conversion): Same.
29334
29335 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29336
29337         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
29338
29339 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29340
29341         * tree-if-conv.c: Update copyright years.  Fix comments.
29342         Fix indentation.
29343
29344 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
29345
29346         * builtin-types.def (BT_INT128): New primitive type.
29347         (BT_UINT128): Likewise.
29348         * c-common.c (c_common_r): Add __int128 keyword.
29349         (c_common_type_for_size): Handle __int128.
29350         (c_common_type_for_mode): Likewise.
29351         (c_common_signed_or_unsigned_type): Likewise.
29352         (c_common_nodes_and_builtins): Add builtin type
29353         if target supports 128-bit integer scalar.
29354         * c-common.h (enum rid): Add RID_INT128.
29355         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
29356         if target supports 128-bit integer scalar.
29357         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
29358         (finish_declspecs): Likewise.
29359         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
29360         (c_token_starts_declspecs): Likewise.
29361         (c_parser_declspecs): Likewise.
29362         (c_parser_attributes): Likewise.
29363         (c_parser_objc_selector): Likewise.
29364         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
29365         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
29366         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
29367         * tree.c (make_or_reuse_type): Likewise.
29368         (make_unsigned_type): Likewise.
29369         (build_common_tree_nodes_2): Likewise.
29370         * tree.h (enum integer_type_kind): Add itk_int128 and
29371         itk_unsigned_int128.
29372         (int128_integer_type_node): New define.
29373         (int128_unsigned_type_node): New define.
29374         * doc/extend.texi: Add documentation about __int128 type.
29375
29376 2010-05-26  Richard Guenther  <rguenther@suse.de>
29377
29378         * tree-ssa-sccvn.c (copy_nary): Adjust.
29379         (copy_phis): Rename to ...
29380         (copy_phi): ... this.  Adjust.
29381         (copy_references): Rename to ...
29382         (copy_reference): ... this.  Adjust.
29383         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
29384         result into the valid table.
29385
29386 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29387
29388         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
29389         insn-config.h, insn-codes.h, recog.h, and optabs.h.
29390
29391 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29392
29393         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
29394
29395 2010-05-26  Richard Guenther  <rguenther@suse.de>
29396
29397         * opts.c (common_handle_option): Handle OPT_Ofast.
29398
29399 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
29400
29401         * diagnostic.c: Don't include opts.h.
29402         (permissive_error_option): Define.
29403         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
29404         for classify_diagnostic.  Don't use memset for
29405         classify_diagnostic.  Initialize new and recently added fields.
29406         (diagnostic_classify_diagnostic): Use context->n_opts instead of
29407         N_OPTS.
29408         (diagnostic_report_diagnostic): Pass context parameter to
29409         diagnostic_report_warnings_p.  Use option_enabled and option_name
29410         hooks from context.
29411         (emit_diagnostic): Use permissive_error_option.
29412         (permerror): Likewise.
29413         * diagnostic.h: Don't include options.h.
29414         (struct diagnostic_context): Add n_opts, opt_permissive,
29415         inhibit_warnings, warn_system_headers, option_enabled and
29416         option_name fields.  Change classify_diagnostic to a pointer.
29417         * opts-diagnostic.h: New file.
29418         * opts.c: Include opts-diagnostic.h.
29419         (common_handle_option): Set global_dc fields for -Wfatal-errors,
29420         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
29421         (option_name): New function.
29422         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
29423         (c_common_handle_option): Set global_dc->permissive for
29424         -fpermissive.
29425         * c-common.c (c_cpp_error): Save and restore
29426         global_dc->warn_system_headers, not variable warn_system_headers.
29427         * toplev.c: Include opts-diagnostic.h.
29428         (general_init): Update call to diagnostic_initialize.  Set
29429         global_dc->show_column, global_dc->option_enabled and
29430         global_dc->option_name.
29431         (process_options): Don't set global_dc fields here.
29432         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
29433         (diagnostic.o, opts.o, toplev.o): Update dependencies.
29434
29435 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
29436
29437         * config/picochip/picochip.md (movsi): Split a movsi from a
29438         const after reload.
29439
29440 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29441
29442         * ggc-zone.c: Update copyright year.
29443         (poison_region): Mark memory for Valgrind as undefined before
29444         memset () call and inaccessible afterwards.
29445         (ggc_pch_total_size): Change type of i to int.
29446
29447 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29448
29449         * ggc-common.c (ggc_free_overhead): Allow empty slot.
29450
29451 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29452
29453         * ggc-common.c: Update copyright year.
29454         (ggc_rlimit_bound): Remove prototype.  Compile only if
29455         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
29456         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
29457         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
29458         (ggc_min_heapsize_heuristic): Likewise.
29459
29460 2010-05-26  Richard Guenther  <rguenther@suse.de>
29461
29462         PR rtl-optimization/44164
29463         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
29464         no-common access-path disambiguation.
29465         (indirect_ref_may_alias_decl_p): Adjust.
29466         (indirect_refs_may_alias_p): Likewise.
29467         (refs_may_alias_p_1): Likewise.
29468
29469 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29470
29471         * c-typeck.c: Do not include expr.h.
29472
29473 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29474
29475         * rtl.h (decl_default_tls_model): Move prototype from here...
29476         * output.h: ...to here.
29477         * c-decl.c: Do not include rtl.h.
29478         * c-pragma.c: Likewise.
29479         * c-parser.c: Likewise.
29480         * c-gimplify.c: Likewise.  And also not hard-reg-set.
29481         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
29482         FIXME note for it.  Add a FIXME note for expr.h.
29483         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
29484         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
29485         defined.
29486
29487 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
29488
29489         PR target/44199
29490         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
29491         or total_size is larger than red zone size for non-V4 ABI, emit a
29492         stack_tie resp. frame_tie insn before stack pointer restore.
29493         * config/rs6000/rs6000.md (frame_tie): New insn.
29494
29495 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
29496
29497         * function.h (struct function): Add can_throw_non_call_exceptions bit.
29498         * lto-streamer-in.c (input_function): Stream it in.
29499         * lto-streamer-out.c (output_function): Stream it out.
29500         * function.c (allocate_struct_function): Set it.
29501         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
29502         for flag_non_call_exceptions.
29503         * cfgbuild.c (control_flow_insn_p): Likewise.
29504         (make_edges): Likewise.
29505         * cfgexpand.c (expand_stack_alignment): Likewise.
29506         * combine.c (distribute_notes): Likewise.
29507         * cse.c (cse_extended_basic_block): Likewise.
29508         * except.c (insn_could_throw_p): Likewise.
29509         * gcse.c (simple_mem): Likewise.
29510         * ipa-pure-const.c (check_call): Likewise.
29511         (check_stmt ): Likewise.
29512         * lower-subreg.c (lower-subreg.c): Likewise.
29513         * optabs.c (emit_libcall_block): Likewise.
29514         (prepare_cmp_insn): Likewise.
29515         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
29516         * postreload.c (rest_of_handle_postreload): Likewise.
29517         * reload1.c (reload_as_needed): Likewise.
29518         (emit_input_reload_insns): Likewise.
29519         (emit_output_reload_insns): Likewise.
29520         (fixup_abnormal_edges): Likewise.
29521         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
29522         * store-motion.c (find_moveable_store): Likewise.
29523         * tree-eh.c (stmt_could_throw_p): Likewise.
29524         (tree_could_throw_p): Likewise.
29525         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
29526         * config/arm/arm.c (arm_expand_prologue): Likewise.
29527         (thumb1_expand_prologue): Likewise.
29528         * config/rx/rx.md (cbranchsf4): Likewise.
29529         (cmpsf): Likewise.
29530         * config/s390/s390.c (s390_emit_prologue): Likewise.
29531         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
29532         (inline_forbidden_into_p): New predicate.
29533         (expand_call_inline): Use it to forbid inlining.
29534         (tree_can_inline_p): Likewise.
29535
29536 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29537
29538         * config/i386/i386-c.c: Do not include rtl.h.
29539         * config/i386/t-i386: Update dependencies.
29540
29541 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29542
29543         * attribs.c: Do not include rtl.h.
29544         * Makefile.in: Update dependencies.
29545
29546 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
29547
29548         * double-int.h (double_int_and): New.
29549         * combine.c (try_combine): Clean up, use double_int_* and
29550         immed_double_int_const functions.
29551
29552 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29553
29554         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
29555         stderr to /dev/null instead of grep -q.
29556         * configure: Regenerate.
29557
29558 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29559
29560         * Makefile.in (EXCEPT_H): Fix typo.
29561
29562 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
29563
29564         * ira-build.c (update_conflict_hard_reg_costs): New.
29565         (ira_build): Call update_conflict_hard_reg_costs.
29566
29567 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
29568
29569         PR debug/41371
29570         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
29571         ENABLE_CHECKING.
29572         (intersect_loc_chains): Walk the s2var's loc_chain together
29573         with s1node chain as long as the locations are equal, don't
29574         call find_loc_in_1pdv in that case.
29575
29576         PR debug/42801
29577         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
29578         (copy_bind_expr): ... instead of here.
29579         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
29580         if the block hasn't been remapped.
29581         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
29582         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
29583
29584 2010-05-25  Richard Guenther  <rguenther@suse.de>
29585
29586         PR middle-end/44069
29587         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
29588         out-of-bounds array accesses.
29589
29590 2010-05-25  Richard Guenther  <rguenther@suse.de>
29591
29592         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
29593         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
29594         (run_gcc): Re-organize to make cleanup easier.
29595
29596 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29597
29598         * config/s390/s390.c (optimization_options): Fix and move the
29599         flag_prefetch_loop_arrays override ...
29600         (override_options): ... here.
29601
29602 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
29603
29604         * diagnostic.c: Don't include plugin.h.
29605         (diagnostic_report_diagnostic): Don't handle plugins specially
29606         here.  Pass context to internal_error callback.
29607         * diagnostic.h (struct diagnostic_context): Add context parameter
29608         to internal_error callback.
29609         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
29610         * plugin.h (struct diagnostic_context): Declare.
29611         (warn_if_plugins, plugins_internal_error_function): Declare.
29612         * toplev.c (general_init): Set global_dc->internal_error.
29613         * Makefile.in (diagnostic.o): Update dependencies.
29614
29615 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
29616
29617         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
29618         * config/rs6000/t-darwin64: New.
29619         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
29620         build crt2.
29621
29622 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
29623
29624         PR 44203
29625         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
29626         match the original (and intended) behaviour before r159557.  This
29627         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
29628         in two ways.
29629
29630 2010-05-25  Richard Guenther  <rguenther@suse.de>
29631
29632         * doc/invoke.texi: Document -Ofast.
29633         * target.h (struct gcc_target): Add handle_ofast.
29634         * target-def.h (TARGET_HANDLE_OFAST): Add.
29635         (TARGET_INITIALIZER): Adjust.
29636         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
29637         * common.opt (Ofast): Add.
29638
29639 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
29640
29641         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
29642         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
29643
29644 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
29645
29646         PR target/43610
29647         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
29648         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
29649         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
29650         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
29651
29652 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
29653
29654         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
29655         DW_OP_minus with negated offset instead of DW_OP_plus.
29656         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
29657
29658 2010-05-25  Wei Guozhi  <carrot@google.com>
29659
29660         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
29661         tst instruction and a new alternative.
29662         * config/arm/constraints.md (Pu): New constraint.
29663
29664 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
29665
29666         * function.c (assign_stack_local_1): Initialize variable
29667         to avoid warning when bootstrapping at -O3.
29668
29669 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
29670
29671         * configure.ac (all_lang_makefiles): Remove everything related to it.
29672         * configure: Regenerate.
29673         * Makefile.in: Fix reference to ada Make-lang.in.
29674         Remove support for LANG_MAKEFILES.
29675
29676 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
29677             Sandra Loosemore  <sandra@codesourcery.com>
29678
29679         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
29680         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
29681         description.  Add arm_neon_fp16_ok.
29682         (Add Options): Add arm_neon and arm_neon_fp16.
29683
29684 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
29685
29686         * diagnostic.c: Don't include flags.h.
29687         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
29688         context parameters.  Check flags in the context passed as a parameter.
29689         (diagnostic_build_prefix): Add context parameter.  Check
29690         show_column flag in context.
29691         (diagnostic_action_after_output): Check fatal_errors flag in context.
29692         (diagnostic_report_current_module): Check show_column flag in context.
29693         (default_diagnostic_starter): Update call to
29694         diagnostic_build_prefix.
29695         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
29696         (emit_diagnostic): Pass context to permissive_error_kind.
29697         (permerror): Pass context to permissive_error_kind.
29698         * diagnostic.h (struct diagnostic_context): Add show_column,
29699         pedantic_errors, permissive and fatal_errors fields.
29700         (diagnostic_build_prefix): Update prototype.
29701         * langhooks.c
29702         * toplev.c (process_options): Set flags in global_dc from
29703         flag_show_column, flag_pedantic_errors, flag_permissive,
29704         flag_fatal_errors.
29705         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
29706         to diagnostic_build_prefix.
29707         * Makefile.in (diagnostic.o): Update dependencies.
29708
29709 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
29710
29711         * config/i386/ia32intrin.h (__crc32q): Define only if
29712         __SSE4_2__ is defined.
29713
29714 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
29715
29716         PR target/44132
29717         PR middle-end/43602
29718         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
29719         DECL_VISIBILITY_SPECIFIED.
29720         (emutls_decl): Set DECL_PRESERVE_P and copy
29721         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
29722         (emutls_finalize_control_var): New callback.
29723         (emutls_finish): Finalize emutls control variables.
29724         * toplev.c (compile_file): Move the call to emutls_finish ()
29725         before varpool_assemble_pending_decls ().
29726
29727 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
29728
29729         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
29730         added to the preprocessor condition.
29731
29732 2010-05-24  Paul Brook  <paul@codesourcery.com>
29733
29734         * gengtype-lex.l: Add HARD_REG_SET.
29735         * expr.c (expand_expr_real_1): Record writes to hard registers.
29736         * function.c (rtl_data): Add asm_clobbers.
29737         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
29738         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
29739         Use crtl->asm_clobbers.
29740
29741 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29742
29743         * doc/makefile.texi (Makefile): Mention stages 'profile'
29744         and 'feedback' for profiledbootstrap.
29745
29746 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
29747
29748         PR target/44245
29749         * config/i386/i386.c (def_builtin): Properly check
29750         OPTION_MASK_ISA_64BIT.
29751
29752 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
29753
29754         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
29755         typedefs with different but compatible types.  Allow duplicate
29756         typedefs with the same type except for pedantic non-C1X, but give
29757         warning for variably modified types.
29758         * c-typeck.c (tagged_types_tu_compatible_p,
29759         function_types_compatible_p, type_lists_compatible_p,
29760         comptypes_internal): Add parameter different_types_p; set
29761         *different_types_p for different but compatible types.  All
29762         callers changed.
29763         (comptypes_check_different_types): New.
29764         * c-tree.h (comptypes_check_different_types): Declare.
29765
29766 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
29767
29768         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
29769         * jump.c: Include basic-block.h.
29770         * profile.c: Likewise.
29771         * tree-profile.c: Likewise.
29772         * coverage.c: Likewise.
29773         * basic-block.h (optimize_function_for_size_p): Move to function.h.
29774         (optimize_function_for_speed_p): Likewise.
29775         * function.h (optimize_function_for_size_p,
29776         optimize_function_for_speed_p): Moved here from basic-block.h.
29777         * Makefile.in: Update dependencies.
29778
29779 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29780
29781         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
29782         before calling make; allow override through $MAKE.
29783         * doc/invoke.texi (Optimize Options): Document override.
29784
29785 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
29786
29787         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
29788         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29789         (rs6000_mode_dependent_address_ptr): Make static.
29790         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29791         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
29792         Remove.
29793
29794 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
29795
29796         PR target/43869
29797         * config/i386/i386.c: Make sure that the correct regparm is passed.
29798
29799 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
29800
29801         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
29802         * sbitmap.c: ...to here to internalize sbitmap element access.
29803         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
29804         Explain why basic-block.h is included.
29805         * function.h: Include tm.h for CUMULATIVE_ARGS.
29806         * Makefile.in: Update dependencies.
29807
29808 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
29809
29810         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
29811         New core types.
29812         * sbitmap.h (struct sbitmap_def): Do not typedef here.
29813         * sbitmap.c: Include sbitmap.h.
29814         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
29815         hard-reg-set.h.  Split everything related to regsets out from here...
29816         * regset.h: ...to here.  New file.
29817         * df.h: Include regset.h and sbitmap.h.
29818         * tree-flow.h: Likewise.
29819         * cfgloop.h: Likewise.
29820         * except.h: Do not include sbitmap.h.  Include hashtab.h.
29821         * cgraph.h: Include vec.h and function.h.
29822         * reload.h (struct insn_chain): Change types of live_throughout
29823         and dead_or_set from regset_head to bitmap_head.
29824         (compute_use_by_pseudos): Be defined also if regset.h is not included.
29825         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
29826         spilled_regs from regset_head to bitmap_head to avoid dependency
29827         in regset.h.
29828         * sel-sched-ir.h: Include regset.h.
29829         * reload.c: Include df.h before reload.h.
29830         * caller-save.c: Likewise.
29831         * reload1.c: Likewise.
29832         * ira.c: Likewise.
29833         (mark_elimination): Update type of r to bitmap, consistent with
29834         DF_LR_IN.
29835         * dominance.c: Include bitmap.h.
29836         * modulo-sched.c: Include df.h.
29837         * cfganal.c: Include bitmap.h and sbitmap.h.
29838         * cfgbuild.c: Include sbitmap.h.
29839         * lcm.c: Include sbitmap.h.
29840         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
29841         * domwalk.c: Include sbitmap.h, exclude ggc.h.
29842         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
29843         * cselib.c: Include bitmap.h.
29844         * tree-optimize.c: Include regset.h.
29845         * stmt.c: Include bitmap.h.
29846         * Makefile.in: Update dependencies.
29847
29848 2010-05-22  Jan Hubicka  <jh@suse.cz>
29849
29850         * cgraph.h (struct varpool_node): Add same_comdat_group.
29851         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
29852         pointer.
29853         (output_varpool): Update call of lto_output_varpool_node.
29854         (input_varpool): Read same_comdat_group pointer.
29855         (input_varpool_1): Fixup same_comdat_group pointer.
29856         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
29857         group is needed, all are.
29858         * varpool.c (varpool_remove_node): Remove node from same comdat group
29859         linklist too.
29860         (varpool_analyze_pending_decls): Walk same comdat groups.
29861
29862 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
29863
29864         * rtl.h (union rtunion_def): Remove rt_bit member.
29865         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
29866         * print-rtl (print_rtx): Do not print the member.
29867         * gengtype.c (adjust_field_rtx_def): Do not handle it.
29868         * gengenrtl.c (type_from_format): Likewise.
29869         (accessor_from_format): Likewise.
29870
29871 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
29872
29873         * dbgcnt.c: Include toplev.h instead of errors.h.
29874         * ira-emit.c: Don't include errors.h.
29875         * ira.c: Include toplev.h instead of errors.h.
29876         * lto-compress.c: Include toplev.h instead of errors.h.
29877         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
29878         ira.o, dbgcnt.o): Update dependencies.
29879
29880 2010-05-22  Richard Guenther  <rguenther@suse.de>
29881
29882         * gimple.c (gimple_types_compatible_p): Check type qualifications
29883         before merging pointer to complete and pointer to incomplete type.
29884         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
29885         we use our own resolution algorithm.  The gold linker plugin
29886         doesn't do the job we want it to do here.
29887
29888 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
29889
29890         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29891         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29892         (sparc_mode_dependent_address_p): New function.
29893
29894 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
29895
29896         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
29897
29898         * timevar.c: Do not include any core headers.
29899         (timevar_print): De-i18n-ize.
29900         (print_time): Likewise.
29901         * timevar.h (timevar_push, timevar_pop): Make inline functions.
29902
29903 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
29904
29905         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
29906         langhooks-def.h.
29907         (diagnostic_initialize): Initialize x_data not last_function.
29908         (diagnostic_report_current_function): Move to tree-diagnostic.c.
29909         (default_diagnostic_starter): Call
29910         diagnostic_report_current_module not
29911         diagnostic_report_current_function.
29912         (diagnostic_report_diagnostic): Initialize x_data not
29913         abstract_origin.
29914         (verbatim): Likewise.
29915         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
29916         x_data.
29917         (struct diagnostic_context): Change last_function to x_data.
29918         (diagnostic_auxiliary_data): Replace with
29919         diagnostic_context_auxiliary_data and
29920         diagnostic_info_auxiliary_data.
29921         (diagnostic_last_function_changed, diagnostic_set_last_function,
29922         diagnostic_report_current_function): Move to tree-diagnostic.h.
29923         (print_declaration, dump_generic_node, print_generic_stmt,
29924         print_generic_stmt_indented, print_generic_expr,
29925         print_generic_decl, debug_c_tree, dump_omp_clauses,
29926         print_call_name, debug_generic_expr, debug_generic_stmt,
29927         debug_tree_chain, default_tree_printer): Move to
29928         tree-pretty-print.h.
29929         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
29930         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
29931         gimple-pretty-print.h.
29932         * pretty-print.c: Don't include tree.h
29933         (pp_base_format): Don't handle %K here.
29934         (pp_base_tree_identifier): Move to tree-pretty-print.c.
29935         * pretty-print.h (text_info): Change abstract_origin to x_data.
29936         (pp_tree_identifier, pp_unsupported_tree,
29937         pp_base_tree_identifier): Move to tree-pretty-print.h.
29938         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
29939         tree-pretty-print.h: New files.
29940         * tree-pretty-print.c: Include tree-pretty-print.h.
29941         (percent_K_format): New.  Moved from pretty-print.c.
29942         (pp_base_tree_identifier): Move from pretty-print.c.
29943         * c-objc-common.c: Include tree-pretty-print.h.
29944         (c_tree_printer): Handle %K here.
29945         * langhooks.c: Include tree-diagnostic.h.
29946         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
29947         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
29948         (default_tree_printer): Handle %K using percent_K_format.
29949         (general_init): Use default_tree_diagnostic_starter.
29950         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
29951         (free_lang_data): Use default_tree_diagnostic_starter.
29952         * c-pretty-print.c: Include tree-pretty-print.h.
29953         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29954         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29955         * dwarf2out.c: Include tree-pretty-print.h.
29956         * except.c: Include tree-pretty-print.h.
29957         * gimple-pretty-print.c: Include tree-pretty-print.h and
29958         gimple-pretty-print.h.
29959         * gimplify.c: Include tree-pretty-print.h.
29960         * graphite-poly.c: Include tree-pretty-print.h and
29961         gimple-pretty-print.h.
29962         * ipa-cp.c: Include tree-pretty-print.h.
29963         * ipa-inline.c: Include gimple-pretty-print.h.
29964         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29965         * ipa-pure-const.c: Include gimple-pretty-print.h.
29966         * ipa-struct-reorg.c: Include tree-pretty-print.h and
29967         gimple-pretty-print.h.
29968         * ipa-type-escape.c: Include tree-pretty-print.h.
29969         * print-rtl.c: Include tree-pretty-print.h.
29970         * print-tree.c: Include gimple-pretty-print.h.
29971         * sese.c: Include tree-pretty-print.h.
29972         * tree-affine.c: Include tree-pretty-print.h.
29973         * tree-browser.c: Include tree-pretty-print.h.
29974         * tree-call-cdce.c: Include gimple-pretty-print.h.
29975         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29976         * tree-chrec.c: Include tree-pretty-print.h.
29977         * tree-data-ref.c: Include tree-pretty-print.h and
29978         gimple-pretty-print.h.
29979         * tree-dfa.c: Include tree-pretty-print.h.
29980         * tree-if-conv.c: Include tree-pretty-print.h and
29981         gimple-pretty-print.h.
29982         * tree-inline.c: Include tree-pretty-print.h.
29983         * tree-into-ssa.c: Include tree-pretty-print.h and
29984         gimple-pretty-print.h.
29985         * tree-nrv.c: Include tree-pretty-print.h.
29986         * tree-object-size.c: Include tree-pretty-print.h and
29987         gimple-pretty-print.h.
29988         * tree-outof-ssa.c: Include tree-pretty-print.h and
29989         gimple-pretty-print.h.
29990         * tree-parloops.c: Include tree-pretty-print.h and
29991         gimple-pretty-print.h.
29992         * tree-predcom.c: Include tree-pretty-print.h and
29993         gimple-pretty-print.h.
29994         * tree-scalar-evolution.c: Include tree-pretty-print.h and
29995         gimple-pretty-print.h.
29996         * tree-sra.c: Include tree-pretty-print.h.
29997         * tree-ssa-address.c: Include tree-pretty-print.h.
29998         * tree-ssa-alias.c: Include tree-pretty-print.h.
29999         * tree-ssa-ccp.c: Include tree-pretty-print.h and
30000         gimple-pretty-print.h.
30001         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
30002         * tree-ssa-copy.c: Include tree-pretty-print.h and
30003         gimple-pretty-print.h.
30004         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
30005         * tree-ssa-dce.c: Include tree-pretty-print.h and
30006         gimple-pretty-print.h.
30007         * tree-ssa-dom.c: Include tree-pretty-print.h and
30008         gimple-pretty-print.h.
30009         * tree-ssa-dse.c: Include gimple-pretty-print.h.
30010         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
30011         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
30012         * tree-ssa-live.c: Include tree-pretty-print.h and
30013         gimple-pretty-print.h.
30014         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
30015         gimple-pretty-print.h.
30016         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
30017         gimple-pretty-print.h.
30018         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
30019         gimple-pretty-print.h.
30020         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
30021         gimple-pretty-print.h.
30022         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
30023         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
30024         * tree-ssa-operands.c: Include tree-pretty-print.h and
30025         gimple-pretty-print.h.
30026         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
30027         gimple-pretty-print.h.
30028         * tree-ssa-pre.c: Include tree-pretty-print.h and
30029         gimple-pretty-print.h.
30030         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
30031         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
30032         gimple-pretty-print.h.
30033         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
30034         gimple-pretty-print.h.
30035         * tree-ssa-sink.c: Include gimple-pretty-print.h.
30036         * tree-ssa-ter.c: Include tree-pretty-print.h and
30037         gimple-pretty-print.h.
30038         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
30039         * tree-ssa.c: Include tree-pretty-print.h and
30040         gimple-pretty-print.h.
30041         * tree-stdarg.c: Include gimple-pretty-print.h.
30042         * tree-switch-conversion.c: Include gimple-pretty-print.h.
30043         * tree-tailcall.c: Include tree-pretty-print.h and
30044         gimple-pretty-print.h.
30045         * tree-vect-data-refs.c: Include tree-pretty-print.h and
30046         gimple-pretty-print.h.
30047         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
30048         gimple-pretty-print.h.
30049         * tree-vect-loop.c: Include tree-pretty-print.h and
30050         gimple-pretty-print.h.
30051         * tree-vect-patterns.c: Include gimple-pretty-print.h.
30052         * tree-vect-slp.c: Include tree-pretty-print.h and
30053         gimple-pretty-print.h.
30054         * tree-vect-stmts.c: Include tree-pretty-print.h and
30055         gimple-pretty-print.h.
30056         * tree-vectorizer.c: Include tree-pretty-print.h.
30057         * tree-vrp.c: Include tree-pretty-print.h and
30058         gimple-pretty-print.h.
30059         * value-prof.c: Include tree-pretty-print.h and
30060         gimple-pretty-print.h.
30061         * var-tracking.c: Include tree-pretty-print.h.
30062         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
30063         (tree-diagnostic.o): New dependencies.
30064         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
30065         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
30066         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
30067         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
30068         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
30069         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
30070         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
30071         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
30072         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
30073         tree-ssa-address.o, tree-ssa-loop-niter.o,
30074         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
30075         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
30076         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
30077         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
30078         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
30079         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
30080         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
30081         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
30082         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
30083         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
30084         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
30085         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
30086         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
30087         tree-switch-conversion.o, var-tracking.o, value-prof.o,
30088         cfgexpand.o, pretty-print.o): Update dependencies.
30089
30090 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
30091
30092         * tree-ssa-structalias.c: Remove tm_p.h from include.
30093
30094 2010-05-21  Jeff Law  <law@redhat.com>
30095
30096         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
30097
30098 2010-05-21  Jason Merrill  <jason@redhat.com>
30099
30100         * tree-eh.c (cleanup_is_dead_in): New.
30101         (lower_try_finally): Don't generate a dead cleanup region.
30102         (lower_cleanup): Likewise.
30103
30104 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
30105
30106         PR debug/44223
30107         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
30108         unchain each use from the cyclic next_regno_use chain first.
30109
30110 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
30111
30112         * real: Do not include gmp.h, mpfr.h, and mpc.h.
30113         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
30114         (real_value_negate, real_value_abs): New prototypes.
30115         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
30116         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
30117         new include file for interface between MPFR and REAL_VALUE_TYPE.
30118         * real.c: Include realmpfr.h.
30119         (real_arithmetic2): Remove legacy function.
30120         (real_value_negate): New.
30121         (real_value_abs): New.
30122         (mfpr_from_real, real_from_mpfr): Move from here...
30123         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
30124         * builtins.c: Include realmpfr.h.
30125         * fold-const.c: Include realmpfr.h.
30126         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
30127         (fold_negate_const): Likewise.
30128         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
30129         * toplev.c: Include realmpfr.h.
30130         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
30131         and real_value_negate.
30132         * fixed-value.c (check_real_for_fixed_mode): Likewise.
30133         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
30134         (vfp3_const_double_index): Likewise.
30135         (arm_print_operand): Likewise.
30136         * Makefile.in: Update dependencies.
30137
30138 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30139
30140         * config/s390/s390.c (override_options): Increase the default
30141         of max-completely-peel-times.
30142
30143 2010-05-21  Julian Brown  <julian@codesourcery.com>
30144             Mark Mitchell  <mark@codesourcery.com>
30145
30146         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
30147         sibling calls for Thumb-1.
30148         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
30149         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
30150         Thumb-2.
30151         (*call_insn, *call_value_insn): Don't use for Thumb-2.
30152         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
30153         for Thumb-2.
30154         (return): New expander.
30155         (*arm_return): New name for ARM return insn.
30156         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
30157
30158 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
30159
30160         * config.gcc (sparc64-*-rtems*): New target.
30161
30162 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
30163
30164         * tree.c (build_function_decl_skip_args): Fix grammar.
30165         (build_function_type_list_1): Fix typos, adjust formatting.
30166
30167 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
30168
30169         * tree.h: Include real.h and fixed-value.h as basic datatypes.
30170         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
30171         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
30172         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
30173         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
30174         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
30175         tree-pretty-print.c, tree-loop-distribution.c,
30176         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
30177         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
30178         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
30179         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
30180         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
30181         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
30182         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
30183         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
30184         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
30185         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
30186         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
30187         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
30188         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
30189         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
30190         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
30191         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
30192         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
30193         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
30194         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
30195         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
30196         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
30197         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
30198         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
30199         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
30200         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
30201         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
30202         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
30203         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
30204         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
30205         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
30206         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
30207         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
30208         config/score/score7.c, config/score/score.c, config/arm/arm.c,
30209         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
30210         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
30211         config/bfin/bfin.c: Clean up redundant includes.
30212         * Makefile.in: Update accordingly.
30213
30214 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
30215
30216         PR middle-end/44204
30217         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
30218         statement has no arguments.
30219
30220 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
30221
30222         PR/44139
30223         * varasm.c (emutls_decl): Merge attributes to new decl.
30224
30225 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
30226
30227         PR middle-end/44101
30228         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
30229         around the uniquized constructor if its type requires a conversion.
30230
30231 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
30232
30233         PR debug/44205
30234         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
30235         at -O0 goto_locus of any of the incoming edges differs from
30236         goto_locus of outgoing edge, or gimple_location of any of the
30237         labels differs.
30238
30239 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
30240
30241         * ira.c (ira_non_ordered_class_hard_regs): Define.
30242         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
30243         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
30244         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
30245         cost of unaligned hard regs when allocating multi-reg pseudos.
30246
30247 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
30248
30249         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
30250         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
30251         for TARGET_NO_FLOAT.
30252         * config/mips/mips.c (mips_file_start): Expand conditional expression
30253         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
30254         (mips_override_options): Move -mno-float override -msoft-float and
30255         -mhard-float.
30256         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
30257         Condition(TARGET_SUPPORTS_NO_FLOAT).
30258         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
30259         __mips_no_float here.
30260         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
30261         (TARGET_SUPPORTS_NO_FLOAT): Define.
30262         * config/mips/sdemtk.opt: Delete.
30263
30264 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
30265
30266         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
30267
30268 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
30269
30270         PR target/43733
30271         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
30272         * configure: Regenerate.
30273         * config.in: Regenerate.
30274         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
30275         instead of sahf only for 64bit targets.
30276
30277 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
30278
30279         PR debug/44178
30280         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
30281         setup_ref_regs for DEBUG_INSNs.
30282
30283 2010-05-20  Jan Hubicka  <jh@suse.cz>
30284
30285         PR middle-end/44197
30286         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
30287
30288 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
30289
30290         PR bootstrap/43870
30291         * df-scan.c (df_ref_compare): Stabilize sort.
30292
30293 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
30294
30295         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
30296         argument.  Don't use DW_OP_piece if offset is non-zero,
30297         put offset into second DW_OP_bit_piece argument.
30298         (dw_sra_loc_expr): Adjust callers.  For memory expressions
30299         compute offset.
30300
30301 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
30302
30303         PR target/44202
30304         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
30305         settings for 16-bit-constant "addo" alternative.
30306
30307 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
30308
30309         * config/mips/mips-dsp.md (add<DSPV:mode>3,
30310         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
30311
30312         PR target/43764
30313         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
30314         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
30315         Use it.
30316
30317 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
30318
30319         * diagnostic.c (FLOAT, FFS): Don't undefine.
30320         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
30321         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
30322         include ordering.
30323
30324 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
30325
30326         * combine.c (propagate_for_debug): Call make_compound_operation
30327         on the source value.
30328         (try_combine): When implementing a split chosen by find_split_point,
30329         either copy i2src or set it to null.  Assert that i2src is not null
30330         before substituting into CALL_INSN_FUNCTION_USAGE.
30331
30332 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
30333
30334         * double-int.h (double_int_ior): New function.
30335         * tree.h (build_int_cst_wide_type): Remove.
30336         * tree.c (build_int_cst_wide_type): Remove.
30337         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
30338         of build_int_cst_wide_type.
30339         * stor-layout.c (set_sizetype): (Ditto.).
30340         * dojump.c (do_jump): Use build_int_cstu instead of
30341         build_int_cst_wide_type.
30342
30343 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
30344
30345         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
30346         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
30347         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
30348         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
30349         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
30350         propagate the 'data' argument to copy_tree_r.
30351         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
30352         Propagate 'data' argument to walk_tree.
30353         (copy_if_shared): New function.
30354         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
30355         (unmark_visited): New function.
30356         (unshare_body): Call copy_if_shared instead of doing it manually.
30357         (unvisit_body): Call unmark_visited instead of doing it manually.
30358
30359 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
30360
30361         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
30362         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
30363         * hooks.c: Likewise.
30364         * target-def.h (TARGET_FOLD_BUILTIN): Define to
30365         hook_tree_tree_int_treep_bool_null.
30366         * target.h (struct gcc_target): Update signature of fold_builtin
30367         field.
30368         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
30369         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
30370         instead of the call expression.
30371         (fold_builtin_call_array): Pass n and argarray directly.
30372         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
30373         consing a list.
30374         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
30375         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
30376         `i' and use it in place of `arity'.
30377         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
30378         Dereference `args' directly.
30379         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
30380
30381 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30382
30383         * doc/sourcebuild.texi (Effective-Target Keywords): Document
30384         3dnow, sse3, sse2.
30385         (Directives): Document optional dg-require-effective-target
30386         selector.
30387
30388 2010-05-19  Richard Guenther  <rguenther@suse.de>
30389
30390         PR lto/44196
30391         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
30392
30393 2010-05-19  Richard Guenther  <rguenther@suse.de>
30394
30395         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
30396         * common.opt (fwhopr=): New.
30397         * opts.c (common_handle_option): Handle OPT_fwhopr.
30398         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
30399         * collect2.c (main): Match -fwhopr*.
30400         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
30401         Execute ltrans stage in parallel when jobs is bigger than 1.
30402
30403 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30404
30405         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
30406         pentiumpro on Solaris 8/x86 with Sun as.
30407         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
30408         hidden alias bug.
30409         (gcc_cv_as_ix86_quad): Check for .quad directive.
30410         * configure: Regenerate.
30411         * config.in: Regenerate.
30412         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
30413
30414 2010-05-19  Martin Jambor  <mjambor@suse.cz>
30415
30416         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
30417         also for indirect edges.  Actual printing moved...
30418         (ipa_print_node_jump_functions_for_edge): ...here.
30419         (ipa_compute_jump_functions): Renamed to
30420         ipa_compute_jump_functions_for_edge and made static.
30421         (ipa_compute_jump_functions): New function.
30422         (make_edge_direct_to_target): Check if the number of arguments on
30423         the newly direct edge is the same as the number of parametrs of
30424         the callee.
30425         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
30426         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
30427         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
30428         analysis functions unconditionally, call the new
30429         ipa_analyze_params_uses on the node instead of every edge.
30430
30431 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
30432
30433         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
30434         to tree.
30435         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
30436         also checks for a constant int vs.  non-constant but
30437         loop-invariant steps.
30438         (find_or_create_group): Change the sort algorithm to only consider
30439         steps that are constant ints.
30440         (idx_analyze_ref): Adopt code to handle a tree instead of a
30441         HOST_WIDE_INT for step.
30442         (gather_memory_references_ref): Handle tree instead of int and be
30443         prepared to see a NULL_TREE.
30444         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
30445         prefetches if the step cannot be calculated at compile time.
30446         (issue_prefetch_ref): Issue prefetches for non-constant but
30447         loop-invariant steps.
30448
30449 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30450
30451         Revert:
30452         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30453
30454         * tree.h (build_call_list): Remove.
30455         * tree.c (build_call_list): Remove.
30456
30457 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30458
30459         * tree.h (build_call_list): Remove.
30460         * tree.c (build_call_list): Remove.
30461
30462 2010-05-18  Jan Hubicka  <jh@suse.cz>
30463
30464         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
30465
30466 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
30467
30468         PR rtl-optimization/43332
30469         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
30470
30471 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
30472
30473         * tree.h (build_int_cstu): Implement as static inline.
30474         * tree.c (build_int_cstu): Remove function.
30475         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
30476         sign extended.
30477
30478 2010-05-18  Richard Guenther  <rguenther@suse.de>
30479
30480         PR lto/44143
30481         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
30482         (debug): Initialize from -save-temps.
30483         (collect_execute): Print command-line when verbose.
30484         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
30485         for ltrans invocation.  Produce -dumpbase flag again.
30486         (process_args): Remove.
30487         (main): Simplify.
30488         * collect2.c (maybe_run_lto_and_relink): Only pass object
30489         files to lto-wrapper.
30490         * gcc.c (LINK_COMMAND_SPEC): Likewise.
30491
30492 2010-05-18  Jan Hubicka  <jh@suse.cz>
30493
30494         * opts.c (decode_options): Do not disable whopr at ipa_cp.
30495         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
30496
30497 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
30498
30499         PR lto/44184
30500         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
30501         in a GIMPLE_ASM.
30502         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
30503         in a GIMPLE_ASM.
30504
30505 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
30506
30507         PR debug/41371
30508         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
30509         rtx_equal_p inline.
30510
30511 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
30512
30513         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
30514         lto-macho as lto_binary_reader.
30515
30516         * darwin.c (darwin_asm_named_section): Do not add assembler comment
30517         after .section directive; just print it before the directive instead.
30518
30519 2010-05-17  Jan Hubicka  <jh@suse.cz>
30520
30521         * cgraph.c (cgraph_create_virtual_clone): Only check
30522         versionable_function_p when not in wpa and checking is enabled.
30523         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
30524         there are no more functions to materialize.
30525
30526 2010-05-17  Jan Hubicka  <jh@suse.cz>
30527
30528         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
30529         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
30530         New functions.
30531         (output_cgraph): Call output_cgraph_opt_summary.
30532         (input_cgrpah): Call input_cgraph_opt_summary.
30533         (output_cgraph_opt_summary_p, output_node_opt_summary,
30534         input_node_opt_summary, input_cgraph_opt_section): New functions.
30535         * lto-section-in.c (lto_section_name): Add cgraphopt.
30536         * tree-inline.c (tree_function_versioning): Handle parm_num.
30537         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
30538         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
30539
30540 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
30541
30542         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
30543         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
30544         the insn to prefetch ratio heuristic to loops with known trip count.
30545
30546 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
30547
30548         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
30549         (schedule_prefetches): Do not generate a prefetch if the unroll factor
30550         is far from what is required by the prefetch.
30551
30552 2010-05-17  Jan Hubicka  <jh@suse.cz>
30553
30554         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
30555         (ipcp_estimate_growth): Likewise.
30556         (ipcp_const_param_count): Likewise.
30557         (ipcp_insert_stage): Likewise.
30558         * ipa-prop.c (visit_load_for_mod_analysis): New function.
30559         (visit_store_addr_for_mod_analysis): Set used flag.
30560         (ipa_detect_param_modifications): Set used flag for SSE params;
30561         update use of walk_stmt_load_store_addr_ops.
30562         (ipa_print_node_params): Print used flag.
30563         (ipa_write_node_info): Stream used flag.
30564         (ipa_read_node_info): Likewise.
30565         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
30566         (ipa_is_param_used): New function.
30567         (lto_ipa_fixup_call_notes): Remove unused declaration.
30568
30569 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30570
30571         PR target/44074
30572         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
30573         * configure: Regenerate.
30574         * config.in: Regenerate.
30575         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
30576         !HAVE_AS_IX86_REP_LOCK_PREFIX.
30577         Don't emit whitespace.
30578         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
30579         (*rep_movsi): Likewise.
30580         (*rep_movsi_rex64): Likewise.
30581         (*rep_movqi): Likewise.
30582         (*rep_movqi_rex64): Likewise.
30583         (*rep_stosdi_rex64): Likewise.
30584         (*rep_stossi): Likewise.
30585         (*rep_stossi_rex64): Likewise.
30586         (*rep_stosqi): Likewise.
30587         (*rep_stosqi_rex64): Likewise.
30588         (*cmpstrnqi_nz_1): Use {%;} after repz.
30589         (*cmpstrnqi_nz_rex_1): Likewise.
30590         (*cmpstrnqi_1): Likewise.
30591         (*cmpstrnqi_rex_1): Likewise.
30592         (*strlenqi_1): Use {%;} after repnz.
30593         (*strlenqi_rex_1): Likewise.
30594         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
30595         (*sync_compare_and_swap<mode>): Likewise.
30596         (sync_double_compare_and_swap<mode>): Likewise.
30597         (*sync_double_compare_and_swapdi_pic): Likewise.
30598         (sync_old_add<mode>): Likewise.
30599         (sync_add<mode>): Likewise.
30600         (sync_sub<mode>): Likewise.
30601         (sync_<code><mode>): Likewise.
30602
30603 2010-05-17  Martin Jambor  <mjambor@suse.cz>
30604
30605         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
30606         otr_token and polymorphic.
30607         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
30608         (cgraph_clone_edge): Copy the above fields.
30609         * tree.c (get_binfo_at_offset): New function.
30610         * tree.h (get_binfo_at_offset): Declare.
30611         * ipa-prop.h (enum jump_func_type): Added known_type jump function
30612         type, reordered items, updated comments.
30613         (union jump_func_value): Added base_type field, reordered fields.
30614         (enum ipa_lattice_type): Moved down in the file.
30615         (struct ipa_param_descriptor): New field polymorphic.
30616         (ipa_is_param_polymorphic): New function.
30617         * ipa-prop.c: Include gimple.h and gimple-fold.h.
30618         (ipa_print_node_jump_functions): Print known type jump functions.
30619         (compute_complex_pass_through): Renamed to...
30620         (compute_complex_assign_jump_func): this.
30621         (compute_complex_ancestor_jump_func): New function.
30622         (compute_known_type_jump_func): Likewise.
30623         (compute_scalar_jump_functions): Create known type and complex ancestor
30624         jump functions.
30625         (ipa_note_param_call): New parameter polymorphic, set the corresponding
30626         flag in the call note accordingly.
30627         (ipa_analyze_call_uses): Renamed to...
30628         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
30629         variable var only in the block where it is used.
30630         (ipa_analyze_virtual_call_uses): New function.
30631         (ipa_analyze_call_uses): Likewise.
30632         (combine_known_type_and_ancestor_jfs): Likewise.
30633         (update_jump_functions_after_inlining): Implemented handling of a
30634         number of new jump function types combination.
30635         (print_edge_addition_message): Removed.
30636         (make_edge_direct_to_target): New function.
30637         (try_make_edge_direct_simple_call): Likewise.
30638         (try_make_edge_direct_virtual_call): Likewise.
30639         (update_call_notes_after_inlining): Renamed to...
30640         (update_indirect_edges_after_inlining): this.  Moved edge creation for
30641         indirect calls to try_make_edge_direct_simple_call, also calls
30642         try_make_edge_direct_virtual_call for virtual calls.
30643         (ipa_print_node_params): Changed the header message.
30644         (ipa_write_jump_function): Stream also known type jump functions.
30645         (ipa_read_jump_function): Likewise.
30646         (ipa_write_indirect_edge_info): Stream new fields in
30647         cgraph_indirect_call_info.
30648         (ipa_read_indirect_edge_info): Likewise.
30649         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
30650         GIMPLE_FOLD_H.
30651
30652 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30653
30654         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
30655
30656 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
30657
30658         * tree.h (CALL_EXPR_ARGS): Delete.
30659         (call_expr_arglist): Delete.
30660         * tree.c (call_expr_arglist): Delete.
30661         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
30662         targetm.fold_builtin.
30663         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
30664         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
30665         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
30666         arglist parameter.  Use CALL_EXPR_ARG.
30667         (picochip_expand_builtin_3op): Likewise.
30668         (picochip_expand_builtin_2opvoid): Likewise.
30669         (picochip_expand_array_get): Likewise.
30670         (picochip_expand_array_put): Likewise.
30671         (picochip_expand_array_testport): Likewise.
30672         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
30673         rather than arglist.
30674         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
30675         CALL_EXPR_ARGS.
30676         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
30677         than TREE_VALUE and TREE_CHAIN.
30678         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
30679         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
30680         the arglist.
30681
30682 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
30683
30684         PR bootstrap/42347
30685         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
30686         to have no fallthru edge.
30687
30688         PR middle-end/44102
30689         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
30690         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
30691         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
30692         add BARRIER after previous bb if needed.
30693
30694 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
30695
30696         * tree.c (build_function_type_list_1): Remove bogus assert condition.
30697
30698 2010-05-17  Alan Modra  <amodra@gmail.com>
30699
30700         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
30701         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
30702         with copy_reg rtx param.
30703         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
30704         Correct cases where code for ABI_V4 did not initialise the reg
30705         used to access frame.  Also leave frame_reg_rtx as sp for large
30706         frames that save no regs.
30707
30708 2010-05-17  Martin Jambor  <mjambor@suse.cz>
30709
30710         PR middle-end/44133
30711         * tree-sra.c (create_access_replacement): New parameter rename, mark
30712         the replaement for renaming only when it is true.
30713         (get_access_replacement): Pass true in the rename parameter of
30714         create_access_replacement.
30715         (get_unrenamed_access_replacement): New function.
30716         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
30717         replacement declaration from it.
30718
30719 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
30720
30721         * function.c (try_fit_stack_local, add_frame_space): New static
30722         functions.
30723         (assign_stack_local_1): Use them.  Look for opportunities to use
30724         space previously wasted on alignment.
30725         * function.h (struct frame_space): New.
30726         (struct rtl_data): Add FRAME_SPACE_LIST member.
30727         * reload1.c (something_was_spilled): New static variable.
30728         (alter_reg): Set it.
30729         (reload): Test it in addition to testing if the frame size changed.
30730
30731 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
30732
30733         * config/s390/s390.c: Define sane prefetch settings and activate
30734         flag_prefetch_loop_arrays on -O3.
30735         * config/s390/s390.h: Declare that read can use write prefetch.
30736
30737 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
30738
30739         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
30740         build.
30741
30742 2010-05-16  Jan Hubicka  <jh@suse.cz>
30743
30744         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
30745         function body; do not check stdarg field of struct function.
30746
30747 2010-05-16  Jan Hubicka  <jh@suse.cz>
30748
30749         * cgraph.c (dump_cgraph_node): Dump versionable flag.
30750         * cgraph.h (cgraph_local_info): Add versionable flag.
30751         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
30752         (ipcp_versionable_function_p): Use it.
30753         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
30754         versionable flag.
30755
30756 2010-05-16  Jan Hubicka  <jh@suse.cz>
30757
30758         * cgraph.c (cgraph_clone_node): Take decl argument and insert
30759         clone into hash when it is different from orig.
30760         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
30761         * cgraph.h (cgraph_clone_node): Update prototype.
30762         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
30763         (lto_cgraph_encoder_delete): Delete body map.
30764         (lto_cgraph_encoder_size): Move to header.
30765         (lto_cgraph_encoder_encode_body_p,
30766         lto_set_cgraph_encoder_encode_body): New.
30767         (lto_output_node): Do not take written_decls argument; output clone_of
30768         pointer.
30769         (add_node_to): Add include_body_argument; call
30770         lto_set_cgraph_encoder_encode_body on master of the clone.
30771         (add_references): Update use of add_node_to.
30772         (compute_ltrans_boundary): Likewise.
30773         (output_cgraph): Do not create written_decls bitmap.
30774         (input_node): Take nodes argument; stream in clone_of correctly.
30775         (input_cgraph_1): Update use of input_node.
30776         * lto-streamer-out.c (lto_output): Use encoder info to decide
30777         what bodies to output.
30778         * ipa-inline.c (cgraph_clone_inlined_nodes,
30779         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
30780         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
30781         (lto_cgraph_encoder_size): Define here.
30782         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
30783         Declare.
30784
30785 2010-05-16  Richard Guenther  <rguenther@suse.de>
30786
30787         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
30788         -fipa-type-escape.
30789         * ipa-type-escape.c (gate_type_escape_vars): Run when
30790         -fipa-struct-reorg runs.
30791         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
30792         * common.opt (fipa-type-escape): Remove.
30793
30794 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
30795
30796         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
30797         (decode_options): Likewise.
30798         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
30799
30800 2010-05-16  Jan Hubicka  <jh@suse.cz>
30801
30802         * ipa.c (function_and_variable_visibility): Also bring local all
30803         aliases.
30804
30805 2010-05-16  Richard Guenther  <rguenther@suse.de>
30806
30807         * alias.c (nonoverlapping_memrefs_p): Remove use of
30808         IPA type-escape information.
30809
30810 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
30811
30812         * c-common.c (c_common_reswords): Add _Static_assert for C.
30813         * c-parser.c (c_token_starts_declaration,
30814         c_parser_next_token_starts_declaration,
30815         c_parser_static_assert_declaration_no_semi,
30816         c_parser_static_assert_declaration): New.
30817         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
30818         Handle static assertions if static_assert_ok.
30819         (c_parser_external_declaration, c_parser_declaration_or_fndef,
30820         c_parser_compound_statement_nostart, c_parser_label,
30821         c_parser_for_statement, c_parser_objc_methodprotolist,
30822         c_parser_omp_for_loop): All callers of
30823         c_parser_declaration_or_fndef changed.
30824         (c_parser_struct_declaration): Handle static assertions.
30825         (c_parser_compound_statement_nostart): Use
30826         c_parser_next_token_starts_declaration and
30827         c_token_starts_declaration to detect start of declarations.
30828         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
30829         Likewise.
30830
30831 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
30832
30833         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
30834         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
30835         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
30836         TARGET_FUNCTION_VALUE_REGNO_P): Define.
30837         (mmix_function_outgoing_value): Rename to...
30838         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
30839         (mmix_function_value_regno_p): Make static.
30840         (mmix_libcall_value): New function.
30841         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
30842         mmix_function_value_regno_p): Remove declaration.
30843
30844 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
30845
30846         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
30847         BUILT_IN_ALLOCA if stack checking is enabled.
30848
30849 2010-05-16  Richard Guenther  <rguenther@suse.de>
30850
30851         * var-tracking.c (vars_copy_1): Inline ...
30852         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
30853         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
30854         (variable_merge_over_cur): Adjust.  Merge asserts.
30855         (variable_merge_over_src): Likewise.
30856         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
30857         (variable_post_merge_new_vals): Merge asserts.
30858         (variable_post_merge_perm_vals): Likewise.
30859         (find_mem_expr_in_1pdv): Likewise.
30860         (dataflow_set_different_value): Remove.
30861         (onepart_variable_different_p): Merge asserts.
30862         (variable_different_p): Likewise.
30863         (dataflow_set_different_1): Inline ...
30864         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
30865         (emit_notes_for_differences_1): Merge asserts.
30866
30867 2010-05-16  Richard Guenther  <rguenther@suse.de>
30868
30869         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
30870         * optabs.c (libfunc_decl_hash): Likewise.
30871         * varasm.c (emutls_decl): Likewise.
30872
30873 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
30874
30875         * c-decl.c: Don't include gimple.h.
30876         (merge_decls): Do not copy gimple_body.
30877
30878 2010-05-15  Jason Merrill  <jason@redhat.com>
30879
30880         * c.opt: Add -fnothrow-opt.
30881
30882 2010-05-15  Jan Hubicka  <jh@suse.cz>
30883
30884         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
30885         analyzed.
30886         * passes.c (ipa_write_summaries): Write all analyzed nodes.
30887
30888 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
30889
30890         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
30891         * Makefile.in: Add it.
30892         Fix all other Makefile dependencies for changes below.
30893         * tree.h: Include it instead of defining VEC primitives here.
30894         * gimple.h: Likewise.
30895         * rtl.h: Likewise.
30896         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
30897         * except.h: Include vecir.h, break dependence on tree.h.
30898
30899         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
30900         Move from here...
30901         * tree-iterator.c: ...to here.
30902         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
30903
30904         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
30905         tm_p.h.
30906         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
30907         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
30908         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
30909         tree-mudflap.h, and target.h.
30910         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
30911         predict.h, tree-inline.h, gimple.h, and langhooks.h.
30912         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
30913         Add FIXME for why gimple.h is still included (should be unnecessary
30914         since GCC 4.5 gimplification unit-at-a-time).
30915         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
30916         * c-pragma.c: Add FIXME for why function.h needs to be included just
30917         for cfun, at front-end level.
30918         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
30919         Do not include ggc.h, but include vecprim.h for VEC(char).
30920         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
30921         Explain why target.h is included.
30922         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
30923         Explain why gimple.h is included.
30924         * c-ppoutput.c: Do not include tm.h.
30925         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
30926         * c-parses.c: Explain why rtl.h is included, and that this (and only
30927         this) is also why tm.h must be included.
30928         Do not include except.h.
30929         * c-lang.c: Do not include ggc.h.
30930
30931 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
30932
30933         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
30934
30935 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
30936
30937         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
30938         unions by default if those structs and unions have no tags.  Do
30939         not condition anonymous struct and unions handling on flag_iso.
30940         Allow anonymous structs and unions for C1X.
30941         (finish_struct): Do not diagnose lack of named fields when
30942         anonymous structs and unions present for C1X.  Accept flexible
30943         array members in structure with anonymous structs or unions but no
30944         directly named fields.
30945         * doc/extend.texi (Unnamed Fields): Update.
30946
30947 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
30948
30949         * gimple.h (compare_field_offset): Rename into...
30950         (gimple_compare_field_offset): ...this.
30951         * gimple.c (compare_field_offset): Rename into...
30952         (gimple_compare_field_offset): ...this.  Compare the full access if
30953         the offset is self-referential.
30954         (gimple_types_compatible_p): Adjust for above renaming.
30955         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
30956         DECL_NONADDRESSABLE_P flag of fields before merging them.
30957
30958 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
30959
30960         * tree.h (ctor_to_list): Delete.
30961         * tree.c (ctor_to_list): Delete.
30962
30963 2010-05-15  Jan Hubicka  <jh@suse.cz>
30964
30965         * ipa-reference.c: Include toplev.h
30966         (is_proper_for_analysis): Only add to all_module_statics
30967         if it is allocated.
30968         (write_node_summary_p, stream_out_bitmap,
30969         ipa_reference_write_optimization_summary,
30970         ipa_reference_read_optimization_summary): New.
30971         (struct ipa_opt_pass_d pass_ipa_reference): Add
30972         optimization summary streaming.
30973         * lto-cgraph.c (referenced_from_this_partition_p,
30974         reachable_from_this_partition_p): New functions.
30975         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
30976         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
30977         * opts.c (decode_options): Enable ipa_reference.
30978         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
30979         * lto-streamer.h (referenced_from_this_partition_p,
30980         reachable_from_this_partition_p): Declare.
30981
30982 2010-05-15  Richard Guenther  <rguenther@suse.de>
30983
30984         PR tree-optimization/44038
30985         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
30986         taking the address of a V_C_E of a constant.
30987
30988 2010-05-14  Jan Hubicka  <jh@suse.cz>
30989
30990         * tree.h (memory_identifier_string): Remove.
30991         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
30992         (ipa_reference_global_vars_info_d): Remove statics_not_read and
30993         statics_not_written.
30994         (ipa_reference_optimization_summary_d): New structure.
30995         (ipa_reference_optimization_summary_t): New type and vector.
30996         (ipa_reference_vars_info_d): Embedd structures instead of using
30997         pointers.
30998         (reference_vars_to_consider): Remove out of GGC space.
30999         (module_statics_escape): Remove.
31000         (global_info_obstack): Rename to ...
31001         (optimization_summary_obstack): ... this one.
31002         (initialization_status_t): Remove.
31003         (memory_identifier_string): Remove.
31004         (get_reference_vars_info): Fix indenting.
31005         (set_reference_vars_info): Likewise.
31006         (get_reference_optimization_summary): New.
31007         (set_reference_optimization_summary): New.
31008         (get_global_reference_vars_info): Remove.
31009         (ipa_reference_get_read_global): Remove.
31010         (ipa_reference_get_written_global): Remove.
31011         (ipa_reference_get_not_read_global): Update.
31012         (ipa_reference_get_not_written_global): Update.
31013         (is_proper_for_analysis): Outlaw addressable.
31014         (propagate_bits): Update for new datastructures.
31015         (analyze_variable): Remove.
31016         (init_function_info): Update for new datastructures.
31017         (clean_function_local_data): Remove.
31018         (clean_function): Remove.
31019         (copy_global_bitmap): Use optimizations_summary_obstack.
31020         (duplicate_node_data): Duplicate optimization summary only.
31021         (remove_node_data): Remove optimization summary only.
31022         (generate_summary): Do not analyze variables; do not compute
31023         module_statics_escape; do not prune solutions by it.
31024         (read_write_all_from_decl): Fix typos in comments.
31025         (propagate): Doscover readonly and nonaddressable first;
31026         update for new datastructures; share global bitmaps.
31027         * ipa-reference.h (ipa_reference_get_read_global,
31028         ipa_reference_get_written_global): Remove.
31029         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
31030         * Makefile.in: Remove ipa-refereference from GT files.
31031
31032 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
31033
31034         PR debug/44112
31035         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
31036         for all SYMBOL_REF_DECLs.
31037
31038 2010-05-14  Jan Hubicka  <jh@suse.cz>
31039
31040         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
31041         (varpool_all_refs_explicit_p): New inline function.
31042         * ipa-reference.c: Update comment.
31043         (module_statics_written): Remove.
31044         (get_static_decl): Remove.
31045         (ipa_init): Do not initialize module_statics_written.
31046         (analyze_function): Likewise.
31047         (generate_summary): Likewise; do not compute module_statics_readonly
31048         and do not update variable flags.
31049         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
31050         * ipa.c: Inlucde flags.h
31051         (cgraph_local_node_p): New.
31052         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
31053         promote functions to local.
31054         (ipa_discover_readonly_nonaddressable_vars): New function.
31055         (function_and_variable_visibility): Use cgraph_local_node_p.
31056         * varpool.c (varpool_finalize_decl): Set force_output for
31057         DECL_PRESERVE_P vars.
31058
31059 2010-05-14  Jan Hubicka  <jh@suse.cz>
31060
31061         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
31062
31063 2010-05-14  Richard Guenther  <rguenther@suse.de>
31064
31065         PR tree-optimization/44119
31066         * tree-ssa-pre.c (eliminate): Properly mark replacement of
31067         a PHI node necessary.
31068
31069 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
31070
31071         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
31072
31073 2010-05-14  Jason Merrill  <jason@redhat.com>
31074
31075         PR c++/44127
31076         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
31077         (gimple_call_set_nothrow): New.
31078         * gimple.c (gimple_build_call_from_tree): Call it.
31079         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
31080
31081         PR c++/44127
31082         * gimplify.c (gimplify_seq_add_stmt): No longer static.
31083         * gimple.h: Declare it.
31084         * gimple.c (gimple_build_eh_filter): No ops.
31085
31086 2010-05-14  Jan Hubicka  <jh@suse.cz>
31087
31088         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
31089         nodes already in queue.
31090         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
31091         re-enqueueing node.
31092
31093 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
31094
31095         PR debug/44136
31096         * cfgexpand.c (expand_debug_expr): If non-memory op0
31097         has BLKmode, return NULL.
31098
31099 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
31100
31101         * config.gcc: Add support for --with-cpu option for bdver1.
31102         * config/i386/i386.h (TARGET_BDVER1): New macro.
31103         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
31104         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
31105         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
31106         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
31107         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
31108         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
31109         (processor_type): Add PROCESSOR_BDVER1.
31110         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
31111         processor_type in config/i386/i386.h.
31112         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
31113         movaps <reg, reg> instead of movapd <reg, reg> when replacing
31114         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
31115         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
31116         to emit packed xor instead of packed double/packed integer
31117         xor for SSE and AVX when moving a zero value.
31118         * config/i386/sse.md: Add check for
31119         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
31120         movapd/movdqa for SSE and AVX.
31121         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
31122         single logical operations i.e and, or and xor instead of packed double
31123         logical operations for SSE and AVX.
31124         * config/i386/i386-c.c (ix86_target_macros_internal):
31125         Add PROCESSOR_BDVER1.
31126         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
31127         (has_fma4, has_xop): New.
31128         * config/i386/i386.c (bdver1_cost): New variable.
31129         (m_BDVER1): New macro.
31130         (m_AMD_MULTIPLE): Add m_BDVER1.
31131         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
31132         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
31133         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
31134         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
31135         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
31136         x86_tune_sse_partial_reg_dependency,
31137         x86_tune_sse_unaligned_load_optimal,
31138         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
31139         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
31140         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
31141         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
31142         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
31143         Enable/disable for bdver1.
31144         (processor_target_table): Add bdver1_cost.
31145         (cpu_names): Add bdver1.
31146         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
31147          processor_alias_table.
31148         (ix86_expand_vector_move_misalign): Change.
31149         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
31150         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
31151         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
31152         of movupd/movdqu for SSE and AVX.
31153         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
31154         (ix86_tune_adjust_cost): Add code for bdver1.
31155         (standard_sse_constant_opcode): Add check for
31156         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
31157         of packed double xor for SSE and AVX.
31158
31159 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
31160
31161         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
31162         result to unsigned.
31163
31164 2010-05-14  Tristan Gingold  <gingold@adacore.com>
31165
31166         * toplev.c (default_debug_hooks): Remove this variable.
31167         (process_options): Remove assignments to default_debug_hooks.
31168
31169 2010-05-14  Martin Jambor  <mjambor@suse.cz>
31170
31171         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
31172         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
31173         * langhooks.h (struct lang_hooks_for_decls): Removed field
31174         fold_obj_type_ref.
31175         * tree.c (free_lang_data): Remove assignment to
31176         lang_hooks.fold_obj_type_ref.
31177         * tree.def (OBJ_TYPE_REF): Update comment.
31178
31179 2010-05-14  Richard Guenther  <rguenther@suse.de>
31180
31181         PR tree-optimization/44124
31182         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
31183
31184 2010-05-14  Alan Modra  <amodra@gmail.com>
31185
31186         PR target/44075
31187         * config/rs6000/rs6000.c (struct machine_function): Reorder
31188         fields for better packing.  Add lr_save_state.
31189         (rs6000_ra_ever_killed): Return lr_save_state if set.
31190         (rs6000_emit_eh_reg_restore): Set lr_save_state.
31191
31192 2010-05-13  Jan Hubicka  <jh@suse.cz>
31193
31194         * varpool.c (decide_is_variable_needed): Drop code checking
31195         TREE_SYMBOL_REFERENCED.
31196
31197 2010-05-13  Jan Hubicka  <jh@suse.cz>
31198
31199         * final.c (output_addr_const): Do not call mark_decl_referenced.
31200         * cgraphunit.c (process_function_and_variable_attributes): Use
31201         mark_needed_node dirrectly.
31202         (assemble_thunk): Do not call mark_decl_referenced.
31203
31204 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
31205
31206         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
31207
31208 2010-05-13  Jeff Law  <law@redhat.com>
31209
31210         * ira-conflicts.c (print_allocno_conflicts): New function broken out
31211         from...
31212         (print_conflicts): Call print_allocno_conflicts.
31213
31214 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
31215
31216         PR debug/44104
31217         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
31218         if it is NULL.
31219
31220 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
31221
31222         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
31223         t-mingw-w64 or t-mingw-w32 for multilib configuration.
31224         * config/i386/t-mingw-w32: New.
31225         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
31226
31227 2010-05-13  Martin Jambor  <mjambor@suse.cz>
31228
31229         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
31230         gimple-fold.c).
31231         * gimple-fold.c (get_base_binfo_for_type): New function.
31232         (gimple_get_relevant_ref_binfo): Likewise.
31233         (gimple_fold_obj_type_ref_known_binfo): Likewise.
31234         (gimple_fold_obj_type_ref): Likewise.
31235         (fold_gimple_call): Simplify condition for folding virtual calls
31236         and call gimple_fold_obj_type_ref.
31237         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
31238         (gimple_fold_obj_type_ref_known_binfo): Likewise.
31239
31240 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
31241
31242         * config/rs6000/rs6000-protos.h
31243         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
31244         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
31245         (rs6000_debug_mode_dependent_address)
31246         (rs6000_mode_dependent_address_ptr): Likewise.
31247
31248 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
31249
31250         PR debug/43983
31251         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
31252         by SRA.
31253         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
31254         * tree-sra.c (create_access_replacement): Call unshare_expr before
31255         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
31256         * dwarf2out.c: Include tree-flow.h.
31257         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
31258         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
31259         Handle DW_OP_bit_piece.
31260         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
31261         construct_piece_list, adjust_piece_list): New functions.
31262         (add_var_loc_to_decl): Handle SRA optimized variables.
31263         Adjust for var_loc_note to loc field renaming.
31264         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
31265         in VAR_LOCATION note.
31266         (new_loc_descr_op_bit_piece): New function.
31267         (dw_sra_loc_expr): New function.
31268         (dw_loc_list): Use it.  Don't handle the last range after the
31269         loop, handle it inside of the loop.  Adjust for var_loc_note
31270         to loc field renaming.
31271         (add_location_or_const_value_attribute): Only special case
31272         single entry loc lists if loc is NOTE_P.  Adjust for
31273         var_loc_note to loc field renaming.
31274         (dwarf2out_var_location): Don't set newloc->var_loc_note
31275         and newloc->next here.
31276
31277 2010-05-12  Jan Hubicka  <jh@suse.cz>
31278
31279         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
31280         flag.
31281         * cgraph.h (cgraph_only_called_directly_p,
31282         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
31283         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
31284         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
31285         (assemble
31286         * ipa.c (cgraph_remove_unreachable_nodes): Use
31287         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
31288         flags.
31289         * tree-inline.c (copy_bb): Check address_taken flag.
31290         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
31291         externally_visible flag.
31292
31293 2010-05-12  Jason Merrill  <jason@redhat.com>
31294
31295         PR bootstrap/44048
31296         PR target/44099
31297         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
31298         * sdbout.c (plain_type_1): Likewise.
31299         * dwarf2out.c (is_base_type): Likewise.
31300         (gen_type_die_with_usage): Likewise.  Generate
31301         DW_TAG_unspecified_type for any LANG_TYPE.
31302
31303 2010-05-12  Jan Hubicka  <jh@suse.cz>
31304
31305         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
31306         indrect edges too.
31307         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
31308         (cgraph_clone_edge): Update.
31309         (cgraph_node_remove_callees): Remove indirect calls too.
31310         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
31311         (cgraph_create_indirect_edge): Update prototype.
31312         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
31313         is_proper_for_analysis.
31314         (add_new_function, visited_nodes, function_insertion_hook_holder,
31315         get_local_reference_vars_info, mark_address_taken, mark_address,
31316         mark_load, mark_store, check_asm_memory_clobber, check_call,
31317         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
31318         (ipa_init): Do not initialize visited_nodes;
31319         function_insertion_hook_holder.
31320         (analyze_variable): Rewrite.
31321         (analyze_function): Rewrite.
31322         (copy_local_bitmap): Remove.
31323         (duplicate_node_dat): Do not duplicate local info.
31324         (generate_summary): Simplify to only walk cgraph.
31325         (write_node_summary_p, ipa_reference_write_summary,
31326         ipa_reference_read_summary): Remove.
31327         (propagate): Do not remove function insertion;
31328         generate summary.
31329         (pass_ipa_reference): NULLify summary handling fields.
31330         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
31331         (input_edge): Input ecf_flags.
31332         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
31333         (update_indirect_edges_after_inlining): Ignore edges with unknown
31334         param.
31335
31336 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
31337
31338         * implicit-zee.c: New file.
31339         * tree-pass.h (pass_implicit_zee): Declare.
31340         * passes.c (init_optimization_passes): Add zee pass.
31341         * common.opt (fzee): New flag.
31342         * timevar.def (TV_ZEE): Define.
31343         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
31344         and beyond.
31345         * Makefile.in (implicit-zee.o): Add new build file.
31346
31347 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31348             Nathan Froyd  <froydnj@codesourcery.com>
31349
31350         * c-common.c (sync_resolve_params): Remove write-only variable.
31351
31352 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
31353
31354         * target.h (struct gcc_target): Add mode_dependent_address_p field.
31355         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
31356         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
31357         * targhooks.c (default_mode_dependent_address_p): New function.
31358         * targhooks.h (default_mode_dependent_address_p): Declare function.
31359         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
31360         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
31361         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
31362         target hook. Change return type to bool.
31363         * recog.h (mode_dependent_address_p): Change return type to bool.
31364
31365 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31366             Nathan Froyd  <froydnj@codesourcery.com>
31367
31368         * tree-mudflap.c (build_function_type_0, build_function_type_1,
31369         build_function_type_2, build_function_type_3): Remove.
31370         (mudflap_init): Use build_function_type_list.
31371
31372 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31373             Nathan Froyd  <froydnj@codesourcery.com>
31374
31375         * coverage.c (build_fn_info_value): Call build_constructor instead of
31376         build_constructor_from_list.
31377         (build_ctr_info_value): Likewise.
31378         (build_gcov_info): Likewise.
31379
31380 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
31381
31382         * tree.c (build_constructor): Compute TREE_CONSTANT for the
31383         resultant constructor.
31384         (build_constructor_single): Don't set TREE_CONSTANT.
31385         (build_constructor_from_list): Don't compute TREE_CONSTANT.
31386
31387 2010-05-12  Jan Hubicka  <jh@suse.cz>
31388
31389         * cgraph.h (struct varpool_node): Add aux.
31390         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
31391         * varpool.c (varpool_remove_node): Do not remove initializer.
31392         (varpool_reset_queue): Export.
31393         (varpool_finalize_decl): Volatile vars are forced to be output.
31394         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
31395         replaced decl.
31396         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
31397         process_references, varpool_can_remove_if_no_refs): New functions.
31398         (cgraph_remove_unreachable_nodes): Handle variables too.
31399
31400 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
31401
31402         PR target/44088
31403         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
31404
31405 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
31406
31407         PR middle-end/44085
31408         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
31409         change value of ORT_TASK.
31410         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
31411         (omp_notice_threadprivate_variable): New function.
31412         (omp_notice_variable): Call it for threadprivate variables.
31413         If enclosing ctx is a task, print enclosing task rather than
31414         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
31415         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
31416         if task has untied clause.
31417
31418         PR debug/42278
31419         * dwarf2out.c (base_type_die): Don't add name attribute here.
31420         (modified_type_die): Instead of sizetype use
31421         its underlying original type.  If a DW_TAG_base_type doesn't
31422         have name added, add __unknown__.
31423         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
31424         always call force_type_die instead.
31425
31426 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
31427
31428         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
31429         for __stack_chk_guard.
31430
31431 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
31432
31433         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
31434         don't call start_source_file debug hook here...
31435         (finish_options): ... but here, after outputting predefined and
31436         command line defines and undefs.
31437
31438         PR middle-end/44071
31439         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
31440         no fallthru edge.
31441         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
31442         optimizing away empty bb with no successors, move over its
31443         footer chain to fallthru predecessor.
31444         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
31445         (rtl_split_edge): For asm goto call patch_jump_insn even if
31446         splitting fallthru edge.
31447
31448         PR c++/44059
31449         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
31450         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
31451         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
31452         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
31453         on DW.ref.* decls.
31454
31455         PR c++/44062
31456         * c-parser.c (c_parser_expression): Mark LHS of a comma
31457         expression as read if it is a decl, handled component or
31458         COMPOUND_EXPR with that on the RHS.
31459         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
31460         if it is a decl or handled component.
31461
31462 2010-05-11  Jan Hubicka  <jh@suse.cz>
31463
31464         * lto-symtab.c (lto_symtab_free): New function.
31465         * lto-streamer.h (lto_symtab_free): Declare.
31466
31467 2010-05-11  Jan Hubicka  <jh@suse.cz>
31468
31469         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
31470         that if function is needed it is reachable.
31471         (lto_output_node): See if it the function is reachable or referenced.
31472         (output_cgraph): Update call of lto_output_node.
31473         * lto-streamer.h (reachable_from_other_partition_p): Declare.
31474
31475 2010-05-11  Jan Hubicka  <jh@suse.cz>
31476
31477         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
31478         Mark as used.
31479
31480 2010-05-11  Jan Hubicka  <jh@suse.cz>
31481
31482         PR tree-optimize/44063
31483         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
31484         queue.
31485         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
31486         limits.
31487         (estimate_function_body_sizes): Compute sizes even when disregarding.
31488
31489 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
31490
31491         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
31492
31493 2010-05-11  Jan Hubicka  <jh@suse.cz>
31494
31495         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
31496         into every boundary.
31497
31498 2010-05-11  Jan Hubicka  <jh@suse.cz>
31499
31500         * matrix-reorg.c (matrix_reorg): Rebuild edges.
31501
31502 2010-05-11  Jan Hubicka  <jh@suse.cz>
31503
31504         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
31505         lto_streamer_cache_delete): Put nodes into heap.
31506         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
31507         heap.
31508
31509 2010-05-11  Jan Hubicka  <jh@suse.cz>
31510
31511         * cgraphbuild.c (cgraph_rebuild_references): New.
31512         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
31513         out extern inlines.
31514         * cgraph.h (cgraph_rebuild_references): Declare.
31515         * tree-inline.c (tree_function_versioning): Use it.
31516         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
31517
31518 2010-05-11  Jan Hubicka  <jh@suse.cz>
31519
31520         * cgraph.c: Include ipa-utils.h
31521         (cgraph_create_virtual_clone): Update references.
31522         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
31523
31524 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
31525
31526         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
31527         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
31528         cache size.
31529
31530 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
31531
31532         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
31533
31534 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
31535
31536         * gcc.c (execute): For -### don't quote arguments that
31537         contain just alphanumerics and _/-. characters.
31538         * doc/invoke.texi: Document that change for -###.
31539
31540         PR debug/44023
31541         * df-problems.c (struct dead_debug): Add to_rescan field.
31542         (dead_debug_init): Clear to_rescan field.
31543         (dead_debug_finish): Rescan all debug insns in to_rescan
31544         bitmap and free the bitmap.
31545         (dead_debug_insert_before): Instead of rescanning debug insns
31546         immediately queue their rescanning until dead_debug_finish.
31547         (df_note_bb_compute): After dead_debug_add do continue instead
31548         of break.
31549
31550 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
31551
31552         PR debug/44028
31553         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
31554         clear also INSN_REG_USE_LIST.
31555
31556 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31557
31558         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
31559
31560 2010-05-10  Jan Hubicka  <jh@suse.cz>
31561
31562         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
31563         commited change.
31564
31565 2010-05-10  Jan Hubicka  <jh@suse.cz>
31566
31567         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
31568         Allocate encoders.
31569         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
31570         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
31571         (lto_streamer_cache_create): Init alloc pool.
31572         (lto_streamer_cache_delete): Free alloc pool.
31573         * lto-streamer.h: Include alloc pool.
31574         (lto_streamer_cache_d): Use alloc pool.
31575         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
31576
31577 2010-05-10  Jan Hubicka  <jh@suse.cz>
31578
31579         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
31580         * cgraphbuild.c: Include except.h
31581         (record_type_list, record_eh_tables): New function.
31582         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
31583
31584 2010-05-10  Jan Hubicka  <jh@suse.cz>
31585
31586         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
31587         __frame_dummy_init_array_entry, force_to_data): Attribute as used
31588         rather than unused.
31589
31590 2010-05-10  Michael Matz  <matz@suse.de>
31591
31592         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
31593         (can_reassociate_p): Use FLOAT_TYPE_P.
31594         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
31595         (vect_force_simple_reduction): ... this.
31596         * tree-parloops.c (gather_scalar_reductions): Use
31597         vect_force_simple_reduction.
31598         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
31599         vect_is_simple_reduction, add modify argument, if true rewrite
31600         "a-b" into "a+(-b)".
31601         (vect_is_simple_reduction, vect_force_simple_reduction): New
31602         functions.
31603         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
31604
31605 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
31606             Vladimir Makarov  <vmakarov@redhat.com>
31607
31608         PR rtl-optimization/44012
31609         * ira-build.c (remove_unnecessary_allocnos): Nullify
31610         regno_allocno_map of the removed allocno.
31611
31612 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31613
31614         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
31615         to /dev/null.
31616         * configure: Regenerate.
31617
31618 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31619
31620         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
31621         unused.
31622         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
31623         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
31624         support in Sun ld.
31625         * configure: Regenerate.
31626
31627 2010-05-10  Richard Guenther  <rguenther@suse.de>
31628
31629         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
31630         marked if the entry identifier is marked.
31631
31632 2010-05-10  Richard Guenther  <rguenther@suse.de>
31633
31634         * c-common.c (struct c_common_attributes): Add fnspec attribute.
31635         (handle_fnspec_attribute): New function.
31636         * gimple.h (gimple_call_return_flags): Declare.
31637         (gimple_call_arg_flags): Likewise.
31638         * gimple.c (gimple_call_arg_flags): New function.
31639         (gimple_call_return_flags): Likewise.
31640         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
31641         New argument flags.
31642         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
31643         return value flags.
31644         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
31645         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
31646         main work to ...
31647         (make_heapvar_for): ... this new function.
31648         (handle_rhs_call): Handle fnspec attribute argument specifiers.
31649         (handle_lhs_call): Likewise.
31650         (find_func_aliases): Adjust.
31651
31652 2010-05-10  Richard Guenther  <rguenther@suse.de>
31653
31654         PR tree-optimization/44050
31655         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
31656
31657 2010-05-10  Wei Guozhi  <carrot@google.com>
31658
31659         PR target/42879
31660         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
31661
31662 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
31663
31664         PR c/10676
31665         * c-typeck.c (lookup_field): Take a type directly.  Update
31666         recursive calls.
31667         (build_component_ref): Update call to lookup_field.
31668         (set_init_label): Use lookup_field to find initialized field.
31669         Handle returned list of fields like a sequence of designators.
31670
31671 2010-05-09  Richard Guenther  <rguenther@suse.de>
31672
31673         PR middle-end/44024
31674         * fold-const.c (tree_single_nonzero_warnv_p): Properly
31675         handle &FUNCTION_DECL.
31676
31677 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
31678
31679         PR c/4784
31680         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
31681         structures and unions recursively.
31682         (detect_field_duplicates): Move duplicate detection with a hash to
31683         detect_field_duplicates_hash.  Always use a hash if anonymous
31684         structures or unions are present.
31685         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
31686         give errors.
31687
31688 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
31689
31690         PR target/44046
31691         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
31692         detect Atom, Core 2 and Core i7.
31693
31694 2010-05-09  Richard Guenther  <rguenther@suse.de>
31695
31696         * gcc.c (store_arg): Handle temporary file deletion for
31697         joined arguments.
31698
31699 2010-05-09  Richard Guenther  <rguenther@suse.de>
31700
31701         PR middle-end/44043
31702         * ipa-inline.c (estimate_function_body_sizes): Return after
31703         disregarding inline limits.
31704
31705 2010-05-09  Richard Guenther  <rguenther@suse.de>
31706
31707         * gcc.c (store_arg): Revert last change.
31708
31709 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
31710
31711         PR middle-end/28685
31712         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
31713         (optimize_ops_list): Call it.
31714
31715 2010-05-08  Richard Guenther  <rguenther@suse.de>
31716
31717         PR tree-optimization/44030
31718         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
31719         NECESSARY flag if we propagate from a inserted expression.
31720
31721 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
31722
31723         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
31724         domain types as equal if they are both PLACEHOLDER_EXPRs.
31725
31726 2010-05-08  Richard Guenther  <rguenther@suse.de>
31727
31728         * lto-wrapper.c (run_gcc): Remove linker output from
31729         command line for LTRANS invocation.
31730
31731 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
31732
31733         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
31734         lto-macho as lto_binary_reader.
31735         * target.h (struct gcc_target): New hooks lto_start and lto_end.
31736         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
31737         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
31738         in lto_start and lto_end calls.
31739         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
31740         magic numbers.
31741         (scan_prog_file): Update is_elf_or_coff call.
31742         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
31743
31744         * collect2.c (main): Fix enum comparison.
31745
31746         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
31747         Add prototypes.
31748         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
31749         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
31750         and TARGET_ASM_LTO_END.
31751         * darwin.c: Include obstack.h and lto-streamer.h.
31752         (lto_section_names_offset, lto_section_names_obstack,
31753         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
31754         global variables.
31755         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
31756         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
31757         to a temporary file.
31758         (darwin_asm_lto_end): New function.  Restore asm_out_file.
31759         (darwin_asm_named_section): For LTO sections, replace the name with
31760         the offset of the section name in a string table, and build this
31761         table.
31762         (darwin_file_start): Initialize global vars for LTO support.
31763         (darwin_file_end): If output to asm_out_file was redirected, append it
31764         to the proper asm_out_file here.  Add the section names section.
31765
31766 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
31767
31768         * c-pragma.c (pending_weak_d, pending_weak): New.
31769         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
31770         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
31771         handle_pragma_weak): Update the uses of pending_weaks.
31772
31773 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31774
31775         PR documentation/44016
31776         * doc/standards.texi (Standards): Link to unversioned
31777         cxx0x_status.html page.
31778
31779 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
31780
31781         PR target/43708
31782         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
31783         in addition to TREE_USED, to avoid "set but unused" warnings.
31784
31785 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31786
31787         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
31788         (is_loop_prefetching_profitable): Do not insert prefetches
31789         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
31790         times the prefetch ahead distance.
31791
31792 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31793
31794         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
31795         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
31796         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
31797         the unroll_factor.
31798
31799 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31800
31801         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
31802         a diagnostic info when the insn-to-mem ratio is too small.
31803
31804 2010-05-07  Richard Guenther  <rguenther@suse.de>
31805
31806         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
31807         the linker plugin.
31808         (store_arg): Queue temp_filename for deletion instead of
31809         the whole argument.
31810
31811 2010-05-07  Richard Guenther  <rguenther@suse.de>
31812
31813         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
31814         (run_gcc): Handle LTRANS phase invocation.
31815         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
31816
31817 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
31818
31819         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
31820         this is also meaningful on PARM_DECLs and RESULT_DECLs.
31821
31822 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31823
31824         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
31825
31826 2010-05-07  Richard Guenther  <rguenther@suse.de>
31827
31828         PR tree-optimization/44020
31829         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
31830         code when PRE is not yet initialized.
31831
31832 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31833
31834         * config/mips/dbxmdebug.h: Remove.
31835         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
31836
31837 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
31838
31839         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
31840         with null pointer and also warn about ordered comparison of zero with
31841         pointer if -Wextra.
31842
31843 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
31844
31845         * graphite-blocking.c
31846         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
31847         * graphite-clast-to-gimple.c
31848         (clast_to_gcc_expression): Same.
31849         (precision_for_value): Same.
31850         (precision_for_interval): Same.
31851         (gcc_type_for_interval): Same.
31852         (graphite_create_new_guard): Same.
31853         (compute_bounds_for_level): Same.
31854         (graphite_create_new_loop_guard): Same.
31855         * graphite-interchange.c
31856         (build_linearized_memory_access): Same.
31857         (pdr_stride_in_loop): Same.
31858         (memory_strides_in_loop_1): Same.
31859         (memory_strides_in_loop): Same.
31860         (extend_scattering): Same.
31861         (psct_scattering_dim_for_loop_depth): Same.
31862         (pbb_number_of_iterations): Same.
31863         * graphite-poly.h
31864         (debug_iteration_domains): Same.
31865         * graphite-ppl.c
31866         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
31867         (ppl_set_inhomogeneous_gmp): Same.
31868         (ppl_strip_loop): Same.
31869         (ppl_lexico_compare_linear_expressions): Same.
31870         (ppl_read_polyhedron_matrix): Same.
31871         (ppl_max_for_le_pointset): Same.
31872         * graphite-ppl.h
31873         (ppl_read_polyhedron_matrix): Same.
31874         (tree_int_to_gmp): Same.
31875         (gmp_cst_to_tree): Same.
31876         (ppl_set_inhomogeneous): Same.
31877         (ppl_set_inhomogeneous_tree): Same.
31878         (ppl_set_coef): Same.
31879         (ppl_set_coef_tree): Same.
31880         * graphite-sese-to-poly.c
31881         (build_pbb_scattering_polyhedrons): Same.
31882         (build_scop_scattering): Same.
31883         (scan_tree_for_params_right_scev): Same.
31884         (scan_tree_for_params): Same.
31885         (find_params_in_bb): Same.
31886         (find_scop_parameters): Same.
31887         (add_upper_bounds_from_estimated_nit): Same.
31888         (build_loop_iteration_domains): Same.
31889         (add_condition_to_domain): Same.
31890         (pdr_add_memory_accesses): Same.
31891
31892 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
31893
31894         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
31895         CLooG's value_* macros to their respective mpz_* counterparts.
31896         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
31897         (graphite_create_new_loop_guard): Same.
31898         * graphite-interchange.c (build_linearized_memory_access): Same.
31899         (pdr_stride_in_loop): Same.
31900         (memory_strides_in_loop_1): Same.
31901         (1st_interchange_profitable_p): Same.
31902         * graphite-poly.c (extend_scattering): Same.
31903         (psct_scattering_dim_for_loop_depth): Same.
31904         (pbb_number_of_iterations): Same.
31905         (pbb_number_of_iterations_at_time): Same.
31906         * graphite-poly.h (new_1st_loop): Same.
31907         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
31908         (oppose_constraint): Same.
31909         (insert_constraint_into_matrix): Same.
31910         (ppl_set_inhomogeneous_gmp): Same.
31911         (ppl_set_coef_gmp): Same.
31912         (ppl_strip_loop): Same.
31913         (ppl_lexico_compare_linear_expressions): Same.
31914         (ppl_max_for_le_pointset): Same.
31915         (ppl_min_for_le_pointset): Same.
31916         (ppl_build_realtion): Same.
31917         * graphite-ppl.h (gmp_cst_to_tree): Same.
31918         (ppl_set_inhomogeneous): Same.
31919         (ppl_set_inhomogeneous_tree): Same.
31920         (ppl_set_coef): Same.
31921         (ppl_set_coef_tree): Same.
31922         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
31923         (build_scop_scattering): Same.
31924         (add_value_to_dim): Same.
31925         (scan_tree_for_params_right_scev): Same.
31926         (scan_tree_for_params_int): Same.
31927         (scan_tree_for_params): Same.
31928         (find_params_in_bb): Same.
31929         (find_scop_parameters): Same.
31930         (add_upper_bounds_from_estimated_nit): Same.
31931         (build_loop_iteration_domains): Same.
31932         (create_linear_expr_from_tree): Same.
31933         (add_condition_to_domain): Same.
31934         (pdr_add_memory_accesses): Same.
31935
31936 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
31937             Jason Merrill  <jason@redhat.com>
31938
31939         * c-common.c (c_common_reswords): Add nullptr.
31940         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
31941         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
31942         (gen_type_die_with_usage): Likewise.
31943         * dbxout.c (dbxout_type): Likewise.
31944         * sdbout.c (plain_type_1): Likewise.
31945
31946 2010-05-06  Jason Merrill  <jason@redhat.com>
31947
31948         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
31949         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
31950         ret appropriately.
31951         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
31952
31953         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
31954         stripping WITH_SIZE_EXPR.
31955         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
31956         change.
31957
31958 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31959
31960         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
31961         list of obsolete configurations.
31962         Disabled check for obsolete configurations.
31963         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
31964         Removed support for previous versions.
31965         * config/mips/iris.h: Removed.
31966         * config/mips/iris5.h: Removed.
31967         * config/mips/iris6.h: Merged old iris.h contents.
31968         (TARGET_IRIX): Removed.
31969         (DRIVER_SELF_SPECS): Removed mabi=32.
31970         (IDENT_ASM_OP): Removed undef.
31971         (STARTFILE_SPEC): Removed mabi=32.
31972         (ENDFILE_SPEC): Likewise.
31973         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
31974         (MACHINE_TYPE): Update for IRIX 6.5.
31975         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
31976         TARGET_IRIX by TARGET_IRIX6.
31977         (mips_file_start): Likewise.
31978         (mips_output_external): Remove IRIX 5/6 O32 support.
31979         (mips_output_function_prologue): Likewise.
31980         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
31981         TARGET_IRIX6.
31982         (TARGET_CPU_CPP_BUILTINS): Likewise.
31983         (TARGET_IRIX): Removed.
31984         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
31985         (MULTILIB_DIRNAMES): Removed 32.
31986         (MULTILIB_OSDIRNAMES): Removed ../lib.
31987         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
31988         (Specific, mips-sgi-irix5): Document removal.
31989         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
31990         Remove references to older IRIX 6 releases and the O32 ABI.
31991
31992 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
31993
31994         PR bootstrap/43994
31995         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
31996         instead of DF_REF_REAL_REG.
31997
31998 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
31999
32000         PR target/43888
32001         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
32002         handling to still return true for x64 targets.
32003
32004 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
32005
32006         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
32007
32008 2010-05-06  Jan Hubicka  <jh@suse.cz>
32009
32010         PR tree-optimization/43791
32011         * ipa-inline.c (update_caller_keys): Remove bogus
32012         disregard_inline_limits check.
32013
32014 2010-05-06  Michael Matz  <matz@suse.de>
32015
32016         PR tree-optimization/43984
32017         * tree-ssa-pre.c (inserted_phi_names): Remove.
32018         (inserted_exprs): Change to bitmap.
32019         (create_expression_by_pieces): Set bits, don't append to vector.
32020         (insert_into_preds_of_block): Don't handle inserted_phi_names.
32021         (eliminate): Don't look at inserted_phi_names, remove deleted
32022         insns from inserted_exprs.
32023         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
32024         (init_pre, fini_pre): Allocate and free bitmaps.
32025         (execute_pre): Insert insns on edges before elimination.
32026
32027 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
32028
32029         * tree.c (initializer_zerop): Handle STRING_CST.
32030
32031 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32032
32033         PR 40989
32034         * doc/invoke.texi (Wimplicit): Document as C only.
32035         * opts.c (common_handle_option): Add argument kind.
32036         (handle_option): Rename as read_cmdline_option. Factor out code to...
32037         (handle_option): ... here. New.
32038         (handle_options): Rename as read_cmdline_options.
32039         (decode_options): Update call.
32040         (set_option): Use option index instead of option pointer. Classify
32041         diagnostics correctly.
32042         (enable_warning_as_error): Call handle_option.
32043         * opts.h (set_option): Update declaration.
32044         (handle_option): Declare.
32045         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
32046         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
32047         * c-opts.c (set_Wimplicit): Delete.
32048         (c_family_lang_mask): New static constant.
32049         (c_common_handle_option): Add argument kind. Use handle_option
32050         instead of set_Wimplicit.
32051         (c_common_post_options): warn_implicit and warn_implicit_int
32052         are disabled by default.
32053         * c-common.c (warn_implicit): Do not define here.
32054         * c-common.h (warn_implicit): Do not declare here.
32055         (c_common_handle_option): Update declaration.
32056         * lto-opts.c (lto_reissue_options): Update call to set_option.
32057
32058 2010-05-06  Richard Guenther  <rguenther@suse.de>
32059
32060         PR tree-optimization/43571
32061         * domwalk.c (walk_dominator_tree): Walk the dominator
32062         sons in more optimal order.
32063
32064 2010-05-06  Richard Guenther  <rguenther@suse.de>
32065
32066         PR tree-optimization/43934
32067         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
32068         (stmt_cost): Likewise.
32069         (extract_true_false_args_from_phi): New helper.
32070         (determine_max_movement): For PHI nodes verify we can hoist them
32071         and compute their cost.
32072         (determine_invariantness_stmt): Handle PHI nodes.
32073         (move_computations_stmt): Likewise.  Hoist PHI nodes in
32074         if-converted form using COND_EXPRs.
32075         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
32076         (tree_ssa_lim): Likewise.
32077         * tree-flow.h (tree_ssa_lim): Adjust prototype.
32078         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
32079
32080 2010-05-06  Richard Guenther  <rguenther@suse.de>
32081
32082         PR tree-optimization/43987
32083         * tree-ssa-structalias.c (could_have_pointers): For possibly
32084         address-taken variables force pointers to be recorded.
32085         (create_variable_info_for_1): Likewise.
32086         (push_fields_onto_fieldstack): Pass in wheter all fields
32087         must have pointers.
32088         (find_func_aliases): Query types instead of vars whether
32089         they contain pointers where appropriate.
32090
32091 2010-05-06  Jan Hubicka  <jh@suse.cz>
32092
32093         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
32094         (record_reference, mark_address, mark_load, mark_store): Record
32095         references.
32096         (record_references_in_initializer): Update call of record_references.
32097         (rebuild_cgraph_edges): Remove all references before rebuiding.
32098         * cgraph.c (cgraph_create_node): Clear ref list.
32099         (cgraph_remove_node): Remove references.
32100         (dump_cgraph_node): Dump references.
32101         (cgraph_clone_node): Clone references.
32102         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
32103         (struct cgraph_node, varpool_node): Add ref_lst.
32104         * ipa-ref.c: New file.
32105         * ipa-ref.h: New file.
32106         * ipa-ref-inline.h: New file.
32107         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
32108         (referenced_from_other_partition_p): New function.
32109         (lto_output_varpool_node): Take set arugment; call
32110         referenced_from_other_partition.
32111         (lto_output_ref): New.
32112         (add_references): New.
32113         (output_refs): New.
32114         (output_cgraph): Compute boundary based on references; output refs.
32115         (output_varpool): Accept cgraph_node_set argument.
32116         (input_ref): New.
32117         (input_refs): New.
32118         (input_cgraph): Call input_refs.
32119         * lto-section-in.c (lto_section_name): Add refs.
32120         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
32121         (ipa-ref.o): New file.
32122         * varpool.c (varpool_node): Clear ipa ref list.
32123         (varpool_remove_node): Remove references.
32124         (dump_varpool_node): Dump references.
32125         (varpool_assemble_decl): Only compile finalized ones.
32126         (varpool_extra_name_alias): Initialize ref list.
32127         * lto-streamer.c (lto-get_section_name): Add .refs section.
32128         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
32129         (referenced_from_other_partition_p): Declared.
32130
32131 2010-05-06  Ira Rosen  <irar@il.ibm.com>
32132
32133         PR tree-optimization/43901
32134         * tree-vect-stmts.c (vectorizable_call): Assert that vector
32135         type is not NULL if it's transformation phase, and return
32136         FALSE if it's analysis.
32137         (vectorizable_conversion, vectorizable_operation,
32138         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
32139
32140 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
32141
32142         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
32143         Delete.
32144         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
32145         New define.
32146         * config/mips/mips-protos.h
32147         (mips_small_register_classes_for_mode_p): Delete prototype.
32148
32149 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
32150
32151         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
32152         * config/arm/arm.c (multiple_operation_profitable_p,
32153         compute_offset_order): New static functions.
32154         (load_multiple_sequence, store_multiple_sequence): Use them.
32155         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
32156         memory offsets, not register numbers.
32157         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
32158
32159 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
32160
32161         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
32162         (get_pending_sizes, put_pending_size, put_pending_sizes):
32163         Update the uses of pending_sizes.
32164         * c-decl.c (store_parm_decls): Likewise.
32165         * c-tree.h (struct c_arg_info): Likewise.
32166         * tree.h: Update the prototype for get_pending_sizes and
32167         put_pending_sizes.
32168
32169 2010-05-05  Jason Merrill  <jason@redhat.com>
32170
32171         PR debug/43370
32172         * c-common.c (handle_aligned_attribute): Respect
32173         ATTR_FLAG_TYPE_IN_PLACE.
32174
32175         PR testsuite/43758
32176         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
32177         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
32178         (TARGET_INITIALIZER): Use it.
32179         * c-common.c (attribute_takes_identifier_p): Call it.
32180         * c-common.h: Update prototype.
32181         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
32182         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
32183
32184 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
32185
32186         PR debug/43950
32187         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
32188         DW_ID_down_case for Fortran compilation units.
32189
32190 2010-05-05  Jan Hubicka  <jh@suse.cz>
32191
32192         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
32193         handle aliases.
32194
32195 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
32196
32197         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
32198         a variable-sized RESULT_DECL.
32199
32200 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
32201
32202         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
32203
32204 2010-05-05  Jason Merrill  <jason@redhat.com>
32205
32206         PR c++/43787
32207         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
32208         returns GS_OK.
32209         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
32210
32211 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
32212             Jakub Jelinek  <jakub@redhat.com>
32213
32214         PR debug/43478
32215         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
32216         (dead_debug_init, dead_debug_finish): New functions.
32217         (dead_debug_add, dead_debug_insert_before): Likewise.
32218         (df_note_bb_compute): Initialize a dead_debug object, add dead
32219         debug uses to it, insert debug bind insns before death insns,
32220         reset debug insns that refer to pending uses at the end.
32221         * rtl.h (make_debug_expr_from_rtl): New prototype.
32222         * varasm.c (make_debug_expr_from_rtl): New function.
32223
32224 2010-05-05  Jan Hubicka  <jh@suse.cz>
32225
32226         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
32227         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
32228         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
32229         lto_varpool_encoder_deref, lto_varpool_encoder_size,
32230         lto_varpool_encoder_encode_initializer_p,
32231         lto_set_varpool_encoder_encode_initializer): New functions.
32232         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
32233         call output_varpool.
32234         (input_varpool_node): Do not always set analyzed.
32235         (input_cgraph_1): Return vector of cgraph nodes.
32236         (input_varpool_1): Return vector of varpools.
32237         (input_cgraph): Free the vectors.
32238         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
32239         output only initializers needed.
32240         (lto_output): Only call output_cgraph.
32241         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
32242         * lto-section-out.c (lto_new_out_decl_state): Initialize
32243         state->varpool_node_encoder.
32244         * lto-streamer.h (lto_varpool_encoder_d): New.
32245         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
32246         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
32247         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
32248         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
32249         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
32250         Declare.
32251         (output_varpool, input_varpool): Remove declarations.
32252
32253 2010-05-05  Jan Hubicka  <jh@suse.cz>
32254
32255         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
32256         with body can prevail.
32257
32258 2010-05-05  Jan Hubicka  <jh@suse.cz>
32259
32260         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
32261         size.
32262
32263 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32264
32265         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
32266
32267         * gengtype.h (erro_at_line): Constify pos argument.
32268
32269         * gengtype.c: Include hashtab.h.
32270         (enum gc_used): Document GC_MAYBE_POINTED_TO.
32271         (error_at_line): Constify pos argument.
32272         (do_typedef): Initialize p->opt field.
32273         (get_file_gtfilename): Fix comment typo.
32274         (struct walk_type_data): Constify line field.
32275         (get_output_file_for_structure): New function.
32276         (write_local_func_for_structure): Constify orig_s argument.
32277         Use get_output_file_for_structure.
32278         (write_func_for_structure): Use get_output_file_for_structure.
32279         (INDENT): New define.
32280         (dump_pair, dump_type, dump_type_list, dump_typekind)
32281         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
32282         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
32283         functions.
32284         (seen_types): New variable.
32285         (main): New variable do_dump.  Process "-d" command line option.
32286         Call dump_everything if dump requested.
32287
32288 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
32289
32290         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
32291         in a temporary instead of invoking the macro multiple times.
32292         (track_expr_p): Likewise.
32293
32294 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
32295
32296         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
32297         per new semantics.
32298         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
32299         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
32300         conditions for printing notes.
32301         * common.opt (-Wcoverage-mismatch): Allow negative, default to
32302         true, update documentation.
32303         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
32304
32305 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
32306
32307         PR c/43981
32308         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
32309         on dimen.
32310
32311 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
32312
32313         PR target/43799
32314         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
32315         (*sse_prologue_save_insn1): Likewise.
32316         (SSE prologue save splitter): Likewise.
32317
32318 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
32319
32320         * tree.c (free_lang_data_in_one_sizepos): New inline function.
32321         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
32322         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
32323         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
32324         all decls.  Call it on DECL_FIELD_OFFSET of fields.
32325         (find_decls_types_r): Follow DECL_VALUE_EXPR.
32326         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
32327
32328 2010-05-04  Martin Jambor  <mjambor@suse.cz>
32329
32330         * tree-sra.c (build_access_from_expr_1): The first parameter type
32331         changed to simple tree.
32332         (build_access_from_expr): Likewise, gsi parameter was eliminated.
32333         (scan_assign_result): Renamed to assignment_mod_result, enum elements
32334         renamed as well.
32335         (build_accesses_from_assign): Removed all parameters except for a
32336         simple gimple statement.  Now returns a simple bool.
32337         (scan_function): All non-analysis parts moved to separate functions
32338         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
32339         parameters and updated both callers.
32340         (sra_modify_expr): Removed parameter data.
32341         (sra_modify_function_body): New function.
32342         (perform_intra_sra): Call sra_modify_function_body to modify the
32343         function body.
32344         (replace_removed_params_ssa_names): Parameter data changed into
32345         adjustments vector.
32346         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
32347         changed the parameter dont_convert to convert with the opposite
32348         meaning.
32349         (sra_ipa_modify_assign): Parameter data changed into adjustments
32350         vector, return value changed to bool.
32351         (ipa_sra_modify_function_body): New function.
32352         (sra_ipa_reset_debug_stmts): Updated a comment.
32353         (modify_function): Use ipa_sra_modify_function_body to modify function
32354         body.
32355
32356 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
32357
32358         PR middle-end/43671
32359         * alias.c (true_dependence): Handle the same VALUE in x and mem.
32360         (canon_true_dependence): Likewise.
32361         (write_dependence_p): Likewise.
32362
32363 2010-05-04  Jan Hubicka  <jh@suse.cz>
32364
32365         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
32366         * cgraphbuild.c: Include ipa-utils.h
32367         (record_reference_ctx): New struct.
32368         (record_reference): Simplify to work on initializers; not statements.
32369         (mark_address, mark_load, mark_store): New.
32370         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
32371         walk PHI nodes too.
32372         (record_references_in_initializer): Update use of record_reference.
32373         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
32374         walk PHI nodes too.
32375
32376 2010-05-04  Jan Hubicka  <jh@suse.cz>
32377
32378         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
32379         node will be removed anyway.
32380         (lto_varpool_replace_node): Allow also unanalyzed nodes;
32381         relink aliases of node into prevailing node.
32382         * varpool.c (varpool_remove_node): Remove aliases properly;
32383         when removing node, remove all its aliases too; remove DECL_INITIAL
32384         of removed node; ggc_free the varpool node.
32385
32386 2010-05-04  Richard Guenther  <rguenther@suse.de>
32387
32388         PR tree-optimization/43879
32389         * tree-ssa-structalias.c (alias_get_name): Use
32390         DECL_ASSEMBLER_NAME if available.
32391         (create_function_info_for): Return the varinfo node.
32392         (ipa_pta_execute): Associate same-body aliases and extra names
32393         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
32394
32395 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
32396
32397         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
32398
32399 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
32400
32401         PR bootstrap/43964
32402         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
32403         only if HONOR_REG_ALLOC_ORDER is not defined.
32404
32405 2010-05-04  Richard Guenther  <rguenther@suse.de>
32406
32407         PR tree-optimization/43949
32408         * tree-vrp.c (extract_range_from_binary_expr): Only handle
32409         TRUNC_MOD_EXPR.
32410
32411 2010-04-26  Jason Merrill  <jason@redhat.com>
32412
32413         * c.opt (-fstrict-enums): New.
32414         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
32415
32416 2010-05-03  David Ung  <davidu@mips.com>
32417             James E. Wilson  <wilson@codesourcery.com>
32418
32419         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
32420         emit the trap instruction before the divide for TUNE_74K.
32421
32422 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
32423
32424         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
32425         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
32426         based on the above, for new target hook.
32427
32428         * hooks.c (hook_bool_mode_true): New generic hook.
32429         * hooks.h (hook_bool_mode_true): Add prototype.
32430
32431         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
32432         target hook.
32433         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
32434         target hook, set to hook_bool_mode_false.
32435         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
32436         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
32437         with targetm.small_register_classes_for_mode_p.
32438         (find_reusable_reload): Likewise.
32439         (combine_reloads): Likewise.
32440         * reload1.c (reload_as_needed): Likewise.
32441         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
32442         * ifcvt.c (noce_process_if_block, check_cond_move_block,
32443         dead_or_predicable): Likewise.
32444         * regmove.c (optimize_reg_copy_1): Likewise.
32445         * calls.c (prepare_call_address): Likewise.
32446         (precompute_register_parameters): Likewise.
32447
32448         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
32449         hook definition.
32450         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
32451         implementation of the hook that considers all register classes
32452         small except for SH64.
32453         (sh_override_options): Use the new hook.
32454         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
32455         Add prototype.
32456
32457         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
32458         hook definition.
32459         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
32460         implementation of the hook that considers all register classes
32461         small for THUMB1.
32462         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
32463         Add prototype.
32464
32465         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
32466         hook definition.
32467         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
32468         implementation of the hook that considers all register classes
32469         small for MIPS16.
32470         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
32471         Add prototype.
32472
32473         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
32474         hook definition.
32475         * config/m32c/m32c.h: Likewise.
32476         * config/pdp11/pdp11.h: Likewise.
32477         * config/avr/avr.h: Likewise.
32478         * config/xtensa/xtensa.h: Likewise.
32479         * config/m68hc11/m68hc11.h: Likewise.
32480         * config/mn10300/mn10300.h: Likewise.
32481         * config/mcore/mcore.h: Likewise.
32482         * config/h8300/h8300.h: Likewise.
32483         * config/bfin/bfin.h: Likewise.
32484
32485         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
32486         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
32487
32488 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
32489
32490         * double-int.h (tree_to_double_int): Remove macro.
32491         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
32492         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
32493         (tree_to_double_int): New function.
32494         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
32495         Move ...
32496         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
32497
32498 2010-05-03  Richard Guenther  <rguenther@suse.de>
32499
32500         PR tree-optimization/43971
32501         * tree-ssa-structalias.c (get_constraint_for_1): Fix
32502         constraints in the !flag_delete_null_pointer_checks case.
32503
32504 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
32505
32506         PR debug/43972
32507         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
32508         result mode matches original rtl mode.
32509
32510 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
32511
32512         PR target/43888
32513         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
32514
32515 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32516
32517         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
32518         when processing flag options.
32519
32520 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32521
32522         * gcov-iov.c (main): Change format string placeholder
32523         from %#08x to 0x%08x.
32524         * genchecksum.c (dosum): Change format string placeholder
32525         from %#02x to 0x%02x.
32526
32527 2010-05-02  Richard Guenther  <rguenther@suse.de>
32528
32529         PR tree-optimization/43879
32530         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
32531
32532 2010-05-02  Bruno Haible  <bruno@clisp.org>
32533
32534         * doc/extend.texi (Function Attributes): Fix a typo.
32535
32536 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32537
32538         Revert:
32539         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
32540         placeholder from 0x%x to %#x.
32541         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
32542         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
32543         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
32544         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
32545         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
32546         * config/i386/i386.c (ix86_target_string): Ditto.
32547         * config/i386/i386.c (output_pic_addr_const): Ditto.
32548         (print_operand): Ditto.
32549
32550 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32551
32552         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
32553         placeholder from 0x%x to %#x.
32554         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
32555         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
32556         (ASM_OUTPUT_DEBUG_DATA): Ditto.
32557         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
32558         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
32559         * optc-gen.awk: Ditto.
32560         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
32561         (HOST_WIDE_INT_PRINT_HEX): Ditto.
32562         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
32563         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
32564
32565 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
32566
32567         * target.h (struct calls): Add function_value_regno_p field.
32568         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
32569         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
32570         * targhooks.c (default_function_value_regno_p): New function.
32571         * targhooks.h (default_function_value_regno_p): Declare function.
32572         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
32573         * builtins.c. (apply_result_size): (Ditto.).
32574         * combine.c. (likely_spilled_retval_p): (Ditto.).
32575         * mode-switching.c. Include 'target.h'.
32576         (create_pre_exit): Use function_value_regno_p hook.
32577         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
32578         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
32579         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
32580
32581         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
32582         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
32583         (ix86_function_value_regno_p): Declare as static, change argument
32584         type to const unsigned int.
32585         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
32586
32587 2010-05-01  Richard Guenther  <rguenther@suse.de>
32588
32589         PR tree-optimization/43949
32590         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
32591         types.
32592         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
32593
32594 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
32595
32596         * rtl.h (CONST_DOUBLE_P): Define.
32597         (rtx_to_double_int): Declare.
32598         * emit-rtl.c (rtx_to_double_int): New function.
32599         * dwarf2out.c (insert_double): New function.
32600         (loc_descriptor, add_const_value_attribute): Clean up, use
32601         rtx_to_double_int and insert_double functions.
32602
32603 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
32604
32605         * doc/extend.texi (Inline): Add missing return keyword to examples.
32606         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
32607         "command-line".
32608
32609 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
32610
32611         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
32612         the variable part of the offset as well.  Use highest_pow2_factor for
32613         all alignment checks.
32614
32615 2010-04-30  Richard Guenther  <rguenther@suse.de>
32616
32617         PR tree-optimization/43879
32618         * tree-ssa-structalias.c (type_could_have_pointers): Functions
32619         can have pointers.
32620
32621 2010-04-30  Jan Hubicka  <jh@suse.cz>
32622
32623         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
32624         varpool.
32625         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
32626
32627 2010-04-30  Jan Hubicka  <jh@suse.cz>
32628
32629         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
32630         New.
32631         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
32632         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
32633         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
32634         cgraph_node_set_needs_ltrans_p): Remove.
32635
32636 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
32637
32638         * sdbout.c: Include vec.h, do not include varray.h.
32639         (deferred_global_decls, sdbout_global_decl,
32640         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
32641         * toplev.c: Do not include varray.h.
32642         (dump_memory_report): Do not dump VARRAY statistics.
32643         * gengtype.c (open_base_file): Ignore varray.h.
32644         * Makefile.in: Update for abovementioned changes.
32645         Remove all traces of varray.c and varray.h.
32646         * varray.c: Remove file.
32647         * varray.h: Remove file.
32648
32649 2010-04-30  Jan Hubicka  <jh@suse.cz>
32650
32651         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
32652         references.
32653
32654 2010-04-30  Jan Hubicka  <jh@suse.cz>
32655
32656         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
32657         needed.
32658
32659 2010-04-30  Richard Guenther  <rguenther@suse.de>
32660
32661         * tree-ssa-structalias.c (get_constraint_for_1): Generate
32662         constraints for CONSTRUCTOR.
32663
32664 2010-04-30  Richard Guenther  <rguenther@suse.de>
32665
32666         PR lto/43946
32667         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
32668         first after all lowering passes.
32669
32670 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
32671
32672         * toplev.c: Include varray.h for statistics dumping.
32673         * tree.h: Do not declare varray_head_tag.
32674         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
32675         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
32676         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
32677         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
32678         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
32679         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
32680         c-common.c, c-common.h, reg-stack.c, basic-block.h,
32681         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
32682         include varray.h.
32683         * Makefile.in: Update for abovementioned changes.
32684
32685 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
32686
32687         PR debug/43942
32688         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
32689
32690 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
32691
32692         * config/picochip/picochip.c (picochip_legitimize_address): Define.
32693         Use this function to do machine-specific conversion.
32694         (picochip_legitimize_reload_address): Likewise.
32695         (picochip_legitimate_address_p): Check valid base register only if
32696         strict.
32697         (picochip_check_conditional_copy): Check for modw only if opnd is
32698         register.
32699         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
32700         to call the function in c.
32701         * config/picochip/picochip-protos.h
32702         (picochip_legitimize_reload_address): Define.
32703         * config/picochip/picochip.md (supported_compare1): Define.
32704
32705 2010-04-30  Jan Hubicka  <jh@suse.cz>
32706
32707         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
32708         (cgraph_global_info): Remove inlined.
32709         (LTO_cgraph_tag_names): Remove.
32710         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
32711         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
32712         simplify cgraph tags and document.
32713         (lto_output_node): Use only LTO_cgraph_unavail_node and
32714         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
32715         for_functions_valid, global info, process and output flags.
32716         (input_overwrite_node): Initialize estimated stack size and
32717         estimated growth.  Do not read flags we no longer store.
32718         (input_node): Likewise do not read info no longer stored.
32719         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
32720         flag.
32721
32722 2010-04-30  Richard Guenther  <rguenther@suse.de>
32723
32724         PR tree-optimization/43879
32725         * tree-ssa-structalias.c (get_constraint_for_1): Properly
32726         handle non-zero initializers.
32727
32728 2010-04-30  Richard Guenther  <rguenther@suse.de>
32729
32730         * builtins.c (fold_builtin_1): Delete free (0).
32731
32732 2010-04-29  Jan Hubicka  <jh@suse.cz>
32733
32734         * gengtype.c (open_base_files): Add lto-streamer.h
32735         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
32736         (pass_ipa_cp): GGC collect.
32737         * toplev. (compile_file): Do not output symbols.
32738         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
32739         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
32740         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
32741         * lto-section-in.c: Include ggc.h
32742         (lto_new_in_decl_state): Alloc in GGC.
32743         (lto_delete_in_decl_state): Likewise.
32744         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
32745         Collect.
32746
32747 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
32748
32749         PR target/42895
32750         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
32751         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
32752         (HONOR_REG_ALLOC_ORDER): Describe new macro.
32753         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
32754         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
32755         account only if HONOR_REG_ALLOC_ORDER is not defined.
32756         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
32757         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
32758
32759 2010-04-29  Jon Grant  <04@jguk.org>
32760
32761         * collect2.c (vflag): Change type from int to bool.
32762         (debug): Likewise.
32763         (helpflag): New global bool.
32764         (main): Set vflag and debug with boolean, not integer truth values.
32765         Accept new "--help" option and output usage text if found.
32766         * collect2.h (vflag): Update prototype.
32767         (debug): Likewise.
32768
32769 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
32770
32771         PR bootstrap/43936
32772         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
32773
32774 2010-04-29  Richard Guenther  <rguenther@suse.de>
32775
32776         PR bootstrap/43935
32777         * plugin.h (invoke_plugin_callbacks): Annotate arguments
32778         with ATTRIBUTE_UNUSED.
32779
32780 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
32781
32782         PR target/43921
32783         * config/i386/i386.c (get_some_local_dynamic_name): Replace
32784         INSN_P with NONDEBUG_INSN_P.
32785         (distance_non_agu_define): Likewise.
32786         (distance_agu_use): Likewise.
32787
32788 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
32789
32790         From Dominique d'Humieres  <dominiq@lps.ens.fr>
32791         PR bootstrap/43858
32792         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
32793         test_set.
32794
32795 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
32796
32797         * plugin.h (invoke_plugin_callbacks): New inline function.
32798         * plugin.c (flag_plugin_added): New global flag.
32799         (add_new_plugin): Initialize above flag.
32800         (invoke_plugin_callbacks): Rename to ...
32801         (invoke_plugin_callbacks_full): ... this.
32802
32803 2010-04-28  Jan Hubicka  <jh@suse.cz>
32804
32805         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
32806         (lto_varpool_replace_node): New.
32807         (lto_symtab_resolve_symbols): Resolve varpool nodes.
32808         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
32809         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
32810         * cgraph.h (varpool_node_ptr): New type.
32811         (varpool_node_ptr): New vector.
32812         (varpool_node_set_def): New structure.
32813         (varpool_node_set): New type.
32814         (varpool_node_set): New vector.
32815         (varpool_node_set_element_def): New structure.
32816         (varpool_node_set_element, const_varpool_node_set_element): New types.
32817         (varpool_node_set_iterator): New type.
32818         (varpool_node): Add prev pointers, add used_from_other_partition,
32819         in_other_partition.
32820         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
32821         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
32822         varpool_get_node, varpool_remove_node): Declare.
32823         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
32824         varpool_node_set_size): New inlines.
32825         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
32826         * tree-pass.h (varpool_node_set_def): Forward declare.
32827         (ipa_opt_pass_d): Summary writting takes vnode sets too.
32828         (ipa_write_optimization_summaries): Update prototype.
32829         * ipa-cp.c (ipcp_write_summary): Update.
32830         * ipa-reference.c (ipa_reference_write_summary): Update.
32831         * lto-cgraph.c (lto_output_varpool_node): New static function.
32832         (output_varpool): New function.
32833         (input_varpool_node): New static function.
32834         (input_varpool_1): New function.
32835         (input_cgraph): Input varpool.
32836         * ipa-pure-const.c (pure_const_write_summary): Update.
32837         * lto-streamer-out.c (lto_output): Update, output varpool too.
32838         (write_global_stream): Kill WPA hack.
32839         (produce_asm_for_decls): Update.
32840         (output_alias_pair_p): Handle variables.
32841         (output_unreferenced_globals): Output only needed partition of varpool.
32842         * ipa-inline.c (inline_write_summary): Update.
32843         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
32844         cgraph.
32845         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
32846         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
32847         varpool_node_set_new, varpool_node_set_add,
32848         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
32849         debug_varpool_node_set): New functions.
32850         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
32851         (execute_one_pass): Process new decls too.
32852         (ipa_write_summaries_2): Pass around vsets.
32853         (ipa_write_summaries_1): Likewise.
32854         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
32855         to add.
32856         (ipa_write_optimization_summaries_1): Pass around vsets.
32857         (ipa_write_optimization_summaries): Likewise.
32858         * varpool.c (varpool_get_node): New.
32859         (varpool_node): Update doubly linked lists.
32860         (varpool_remove_node): New.
32861         (dump_varpool_node): More dumping.
32862         (varpool_enqueue_needed_node): Update doubly linked lists.
32863         (decide_is_variable_needed): Kill ltrans hack.
32864         (varpool_finalize_decl): Kill lto hack.
32865         (varpool_assemble_decl): Skip decls in other partitions.
32866         (varpool_assemble_pending_decls): Update doubly linkes lists.
32867         (varpool_empty_needed_queue): Likewise.
32868         (varpool_extra_name_alias): Likewise.
32869         * lto-streamer.c (lto_get_section_name): Add vars section.
32870         * lto-streamer.h (lto_section_type): Update.
32871         (output_varpool, input_varpool): Declare.
32872
32873 2010-04-28  Mike Stump  <mikestump@comcast.net>
32874
32875         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
32876
32877 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32878
32879         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
32880         record or union type with RECORD_OR_UNION_TYPE_P predicate.
32881         (lto_input_ts_type_tree_pointers): Likewise.
32882         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
32883         (lto_output_ts_type_tree_pointers): Likewise.
32884
32885 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32886
32887         Uniquization of constants at the Tree level
32888         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
32889         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
32890         bit to the end.
32891         (tree_output_constant_def): Declare.
32892         * gimplify.c (gimplify_init_constructor): When using block copy, first
32893         uniquize the constant constructor on the RHS.
32894         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
32895         DECL_IN_CONSTANT_POOL flag.
32896         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
32897         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
32898         constant pool.
32899         (assemble_variable): Deal with symbols belonging to the tree constant
32900         pool.
32901         (get_constant_section): Add ALIGN parameter and simplify.
32902         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
32903         (assemble_constant_contents): Use the expression of the VAR_DECL.
32904         (output_constant_def_contents): Use the alignment of the VAR_DECL.
32905         (tree_output_constant_def): New global function.
32906         (mark_constant): Use the expression of the VAR_DECL.
32907         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
32908         its expression.
32909         (output_object_block): Likewise and assemble the expression.
32910
32911 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32912
32913         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
32914         hash_tree, eq_tree): New tree hash table.
32915         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
32916         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
32917         lto_orig_address_remove): Reimplement.
32918
32919 2010-04-28  Xinliang David Li  <davidxl@google.com>
32920
32921         PR c/42643
32922         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
32923         (compute_uninit_opnds_pos): New function.
32924         (is_non_loop_exit_postdominating): New function.
32925         (compute_control_dep_chain): New function.
32926         (find_pdom): New function.
32927         (convert_control_dep_chain_into_preds): New function.
32928         (find_predicates): New function.
32929         (find_control_equiv_block): New function.
32930         (collect_phi_def_edges): New function.
32931         (find_def_preds): New function.
32932         (find_dom): New function.
32933         (dump_predicates): New function.
32934         (get_cmp_code): New function.
32935         (is_value_included_in): New function.
32936         (find_matching_predicate_in_rest_chains): New function.
32937         (use_pred_not_overlap_with_undef_path_pred): New function.
32938         (is_use_properly_guarded): New function.
32939         (normalize_cond_1): New function.
32940         (is_and_or_or): New function.
32941         (normalize_cond): New function.
32942         (is_gcond_subset_of): New function.
32943         (is_subset_of_any): New function.
32944         (is_or_set_subset_of): New function.
32945         (is_and_set_subset_of): New function.
32946         (is_norm_cond_subset_of): New function.
32947         (is_pred_expr_subset_of): New function.
32948         (is_pred_chain_subset_of): New function.
32949         (is_included_in): New function.
32950         (is_superset_of): New function.
32951         (find_uninit_use): New function.
32952         (warn_uninitialized_phi): New function.
32953         (compute_possibly_undefined_names): New function.
32954         (ssa_undefined_value_p): New function.
32955         (execute_late_warn_uninitialized): New function.
32956         * tree-ssa.c (ssa_undefined_value_p): Removed.
32957         (warn_uninit): Changed to extern.
32958         (warn_uninitialized_phi): Removed.
32959         (warn_uninitialized_vars): Changed to extern.
32960         (execute_late_warn_uninitialized): Removed
32961         * tree-flow.h: Add new prototypes.
32962         * timevar.def: Add new time variable.
32963         * Makefile.in: Add new build file.
32964
32965 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
32966
32967         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
32968         type if available.
32969
32970 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32971
32972         PR target/22224
32973         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
32974
32975 2010-04-28  Martin Jambor  <mjambor@suse.cz>
32976
32977         * cgraph.h (struct cgraph_node): New field indirect_calls.
32978         (struct cgraph_indirect_call_info): New type.
32979         (struct cgraph_edge): Removed field indirect_call. New fields
32980         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
32981         (cgraph_create_indirect_edge): Declare.
32982         (cgraph_make_edge_direct): Likewise.
32983         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
32984         * ipa-prop.h (struct ipa_param_call_note): Removed.
32985         (struct ipa_node_params): Removed field param_calls.
32986         (ipa_create_all_structures_for_iinln): Declare.
32987         * cgraph.c: Described indirect edges and uids in initial comment.
32988         (cgraph_add_edge_to_call_site_hash): New function.
32989         (cgraph_edge): Search also among the indirect edges, use
32990         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
32991         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
32992         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
32993         site hash.
32994         (initialize_inline_failed): Assign a reason to indirect edges.
32995         (cgraph_create_edge_1): New function.
32996         (cgraph_create_edge): Moved some functionality to
32997         cgraph_create_edge_1.
32998         (cgraph_create_indirect_edge): New function.
32999         (cgraph_edge_remove_callee): Add an assert checking for
33000         non-indirectness.
33001         (cgraph_edge_remove_caller): Special-case indirect edges.
33002         (cgraph_remove_edge): Likewise.
33003         (cgraph_set_edge_callee): New function.
33004         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
33005         (cgraph_make_edge_direct): New function.
33006         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
33007         the declaration of the call statement matches.
33008         (cgraph_node_remove_callees): Special-case indirect edges.
33009         (cgraph_clone_edge): Likewise.
33010         (cgraph_clone_node): Clone also the indirect edges.
33011         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
33012         indirect_call, dump count of indirect_calls edges.
33013         * ipa-prop.c (iinlining_processed_edges): New variable.
33014         (ipa_note_param_call): Create indirect edges instead of
33015         creating notes.  New parameter node.
33016         (ipa_analyze_call_uses): New parameter node, pass it on to
33017         ipa_note_param_call.
33018         (ipa_analyze_stmt_uses): Likewise.
33019         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
33020         (print_edge_addition_message): Work on edges rather than on notes.
33021         (update_call_notes_after_inlining): Likewise, renamed to
33022         update_indirect_edges_after_inlining.
33023         (ipa_create_all_structures_for_iinln): New function.
33024         (ipa_free_node_params_substructures): Do not free notes.
33025         (ipa_edge_duplication_hook): Propagate bits within
33026         iinlining_processed_edges bitmap.
33027         (ipa_node_duplication_hook): Do not duplicate notes.
33028         (free_all_ipa_structures_after_ipa_cp): Renamed to
33029         ipa_free_all_structures_after_ipa_cp.
33030         (free_all_ipa_structures_after_iinln): Renamed to
33031         ipa_free_all_structures_after_iinln.
33032         (ipa_write_param_call_note): Removed.
33033         (ipa_read_param_call_note): Removed.
33034         (ipa_write_indirect_edge_info): New function.
33035         (ipa_read_indirect_edge_info): Likewise.
33036         (ipa_write_node_info): Do not stream notes, do stream information
33037         in indirect edges.
33038         (ipa_read_node_info): Likewise.
33039         (lto_ipa_fixup_call_notes): Removed.
33040         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
33041         * ipa-inline.c (pass_ipa_inline): Likewise.
33042         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
33043         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
33044         * tree-inline.c (copy_bb): Removed an unnecessary double check for
33045         is_gimple_call.
33046         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
33047         edges.
33048         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
33049         (output_cgraph): Stream also indirect edges.
33050         (lto_output_edge): Added capability to stream indirect edges.
33051         (input_edge): Likewise.
33052         (input_cgraph_1): Likewise.
33053         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
33054         of indirect edges.
33055
33056 2010-04-28  Richard Guenther  <rguenther@suse.de>
33057
33058         PR tree-optimization/43879
33059         PR tree-optimization/43909
33060         * tree-ssa-structalias.c (struct variable_info): Add
33061         only_restrict_pointers flag.
33062         (new_var_info): Initialize it.  Increment stats.total_vars here.
33063         (create_function_info_for): Do not increment stats.total_vars here.
33064         (get_function_part_constraint): Fix build with C++.
33065         (insert_into_field_list): Remove.
33066         (push_fields_onto_fieldstack): Properly merge fields.
33067         (create_variable_info_for): Split and simplify.
33068         (create_variable_info_for_1): New piece.
33069         (intra_create_variable_infos): Properly make restrict constraints
33070         from parameters.
33071
33072 2010-04-28  Richard Guenther  <rguenther@suse.de>
33073
33074         PR c++/43880
33075         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
33076
33077 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33078             Jan Hubicka  <hubicka@ucw.cz>
33079
33080         * doc/invoke.texi (-Wsuggest-attribute=const,
33081         -Wsuggest-attribute=pure): Document.
33082         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
33083         (function_always_visible_to_compiler_p,
33084         suggest_attribute, warn_function_pure, warn_function_const):
33085         New functions.
33086         (check_call): Improve debug info.
33087         (analyze_function): Do not check availability.
33088         (add_new_function): Check availability.
33089         (propagate): Output warnings.
33090         (skip_function_for_local_pure_const): New function.
33091         (local_pure_const): Use it; output warnings.
33092         * common.opt (Wsuggest-attribute=const,
33093         Wsuggest-attribute=pure): New.
33094
33095 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
33096
33097         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
33098         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
33099         or DW_CFA_def_cfa_offset{,_sf}.
33100
33101 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
33102
33103         * tree.h: Fix truncated long macros.
33104
33105 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
33106
33107         * collect2.c (TARGET_64BIT): Redefine to target's default.
33108         * tlink.c: Likewise.
33109         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
33110         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
33111         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
33112         for underscoring __USER_LABEL_PREFIX__.
33113         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
33114         (SUB_LINK_ENTRY32): New.
33115         (SUB_LINK_ENTRY64): New.
33116         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
33117         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
33118         (SUB_LINK_ENTRY64): New.
33119         (SUB_LINK_ENTRY): New.
33120         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
33121         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
33122         x64 target is choosen.
33123         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
33124         * configure: Regenerated.
33125         * configure.ac (leading-mingw64-underscores): Option added.
33126
33127 2010-04-27  Jan Hubicka  <jh@suse.cz>
33128
33129         * doc/invoke.texi (-fipa-profile): Document.
33130         * opts.c (decode_options): Enable ipa-profile at -O1.
33131         * timevar.def (TV_IPA_PROFILE): Define.
33132         * common.opt (fipa-profile): Add.
33133         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
33134         flag for clones.
33135         (cgraph_propagate_frequency): Handle only local ones.
33136         * tree-pass.h (pass_ipa_profile): Declare.
33137         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
33138         (pass_ipa_profile): Use TV_IPA_PROFILE.
33139         * ipa.c (ipa_profile): New function.
33140         (gate_ipa_profile): Likewise.
33141         (pass_ipa_profile): New global variable.
33142         * passes.c (pass_ipa_profile): New.
33143
33144 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
33145
33146         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
33147
33148 2010-04-27  Martin Jambor  <mjambor@suse.cz>
33149
33150         PR middle-end/43812
33151         * ipa.c (dissolve_same_comdat_group_list): New function.
33152         (function_and_variable_visibility): Call
33153         dissolve_same_comdat_group_list when comdat group contains external or
33154         newly local nodes.
33155         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
33156         lists are circular and that they contain only DECL_ONE_ONLY nodes.
33157
33158 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
33159
33160         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
33161         (const_hash_1) <VECTOR_CST>: New case.
33162         (compare_constant) <VECTOR_CST>: Likewise.
33163         <ADDR_EXPR>: Deal with LABEL_REFs.
33164         (copy_constant) <VECTOR_CST>: New case.
33165
33166 2010-04-27  Jan Hubicka  <jh@suse.cz>
33167
33168         * cgraph.c (cgraph_propagate_frequency): New function.
33169         * cgraph.h (cgraph_propagate_frequency): Declare.
33170         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
33171         cgraph_propagate_frequency.
33172
33173 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
33174
33175         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
33176
33177 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
33178
33179         PR target/40657
33180         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
33181         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
33182         here to determine which regs to push and how much stack to reserve.
33183
33184 2010-04-27  Jie Zhang  <jie@codesourcery.com>
33185
33186         * doc/gimple.texi (gimple_statement_with_ops): Remove
33187         addresses_taken field.
33188         (gimple_statement_with_memory_ops): Likewise.
33189
33190 2010-04-27  Jan Hubicka  <jh@suse.cz>
33191
33192         * tree-inline.c (eni_inlining_weights): Remove.
33193         (estimate_num_insns): Special case more builtins.
33194
33195 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
33196
33197         PR c/32207
33198         * c-typeck.c (build_binary_op): Move forward check for comparison
33199         pointer with null pointer constant and adjust the diagnostic message.
33200
33201 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
33202
33203         PR lto/42776
33204         * configure.ac (gcc_cv_as_section_has_align): Set if installed
33205         binutils supports extended .section directive needed by LTO, or
33206         warn if older binutils found.
33207         (LTO_BINARY_READER): New AC_SUBST'd variable.
33208         (LTO_USE_LIBELF): Likewise.
33209         * config.gcc (lto_binary_reader): New target-specific configure
33210         variable.
33211         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
33212         (LTO_USE_LIBELF): Likewise.
33213         * configure: Regenerate.
33214
33215         * collect2.c (is_elf): Rename from this ...
33216         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
33217          object files in addition to ELF-formatted ones.
33218         (scan_prog_file): Caller updated.  Also allow for LTO info marker
33219         symbol to be prefixed or not by an extra underscore.
33220
33221         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
33222         * config/i386/winnt.c: Also #include lto-streamer.h
33223         (i386_pe_asm_named_section): Specify 1-byte section alignment for
33224         LTO named sections.
33225         (i386_pe_asm_output_aligned_decl_common): Add comment.
33226         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
33227
33228 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
33229
33230         PR target/43889
33231         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
33232         Add missing earlyclobber for second alternative.
33233
33234 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
33235
33236         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
33237         bits for artificial defs at the top of the block.
33238         * fwprop.c (single_def_use_enter_block): Don't call it.
33239
33240 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
33241
33242         PR 43715
33243         * configure.ac: Use "$gcc_cv_nm -g" on darwin
33244         instead of "$gcc_cv_objdump -T".
33245         Use "-undefined dynamic_lookup" on darwin.
33246         * configure: Regenerate.
33247
33248 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
33249
33250         PR c/43893
33251         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
33252
33253 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
33254
33255         * c-parser.c (struct c_token): Move location field up.
33256         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
33257         (struct c_declspecs): Convert typespec_word, storage_class, and
33258         default_int_p into bitfields.
33259         (struct c_declarator): Move loc field up.
33260
33261 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
33262
33263         * cfgloop.h (struct loop): Move can_be_parallel field up.
33264         * ipa-prop.h (struct ip_node_params): Move bitfields up.
33265         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
33266         down.
33267         (struct iv_cand): Convert pos field into a bitfield.
33268         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
33269         field up.
33270         (struct _stmt_vec_info): Shuffle fields for better packing.
33271
33272 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
33273
33274         * varasm.c (IN_NAMED_SECTION): Remove guard.
33275         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
33276         (IN_NAMED_SECTION_P): ...this.
33277         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
33278         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
33279
33280 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
33281
33282         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
33283         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
33284         of shadowing it.  Fix comments.
33285
33286 2010-04-26  Jan Hubicka  <jh@suse.cz>
33287
33288         * cgraph.c (cgraph_create_node): Set node frequency to normal.
33289         (cgraph_clone_node): Copy function frequency.
33290         * cgraph.h (node_frequency): New enum
33291         (struct cgraph_node): Add.
33292         * final.c (rest_of_clean_state): Update.
33293         * lto-cgraph.c (lto_output_node): Output node frequency.
33294         (input_overwrite_node): Input node frequency.
33295         * tre-ssa-loop-ivopts (computation_cost): Update.
33296         * lto-streamer-out.c (output_function): Do not output function
33297         frequency.
33298         * predict.c (maybe_hot_frequency_p): Update and handle functions
33299         executed once.
33300         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
33301         attribute lookup.
33302         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
33303         (compute_function_frequency): Set noreturn functions to be executed
33304         once.
33305         (choose_function_section): Update.
33306         * lto-streamer-in.c (input_function): Do not input function frequency.
33307         * function.c (allocate_struct_function): Do not initialize function
33308         frequency.
33309         * function.h (function_frequency): Remove.
33310         (struct function): Remove function frequency.
33311         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
33312         (try_update): Update.
33313         * tree-inline.c (initialize_cfun): Do not update function frequency.
33314         * passes.c (pass_init_dump_file): Update.
33315         * i386.c (ix86_compute_frame_layout): Update.
33316         (ix86_pad_returns): Update.
33317
33318 2010-04-26  Jie Zhang  <jie@codesourcery.com>
33319
33320         PR tree-optimization/43833
33321         * tree-vrp.c (range_int_cst_p): New.
33322         (range_int_cst_singleton_p): New.
33323         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
33324         when both operands are constants.  Use range_int_cst_p in
33325         BIT_IOR_EXPR case.
33326
33327 2010-04-26  Jan Hubicka  <jh@suse.cz>
33328
33329         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
33330
33331 2010-04-26  Richard Guenther  <rguenther@suse.de>
33332
33333         PR lto/43080
33334         * gimple.c (gimple_decl_printable_name): Deal gracefully
33335         with a NULL DECL_NAME.
33336
33337 2010-04-26  Richard Guenther  <rguenther@suse.de>
33338
33339         PR lto/42425
33340         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
33341         if emitting debug information and it is either a function
33342         or a namespace decl.
33343
33344 2010-04-26  Ira Rosen  <irar@il.ibm.com>
33345
33346         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
33347         determine if the statement is vectorizable, and a macro to access it.
33348         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
33349         Skip statements that can't be vectorized. If the analysis fails,
33350         mark the statement as unvectorizable if vectorizing basic block.
33351         (vect_compute_data_refs_alignment): Likewise.
33352         (vect_verify_datarefs_alignment): Skip statements marked as
33353         unvectorizable. Add print.
33354         (vect_analyze_group_access): Skip statements that can't be
33355         vectorized. If the analysis fails, mark the statement as
33356         unvectorizable if vectorizing basic block.
33357         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
33358         * tree-vect-stmts.c (vectorizable_store): Fix the number of
33359         generated stmts for SLP.
33360         (new_stmt_vec_info): Initialize the new field.
33361         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
33362         statements marked as unvectorizable.
33363
33364 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
33365
33366         * c-common.c (flag_isoc1x): New.
33367         (flag_isoc99): Update comment.
33368         * c-common.h (flag_isoc1x): New.
33369         (flag_isoc99): Update comment.
33370         * c-cppbuiltin.c (builtin_define_float_constants): Also define
33371         __<type>_DECIMAL_DIG__.
33372         * c-opts.c (set_std_c1x): New.
33373         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
33374         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
33375         * c.opt (-std=c1x, -std=gnu1x): New options.
33376         * doc/cpp.texi: Mention -std=c1x.
33377         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
33378         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
33379         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
33380         * doc/standards.texi: Mention C1X.
33381         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
33382         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
33383         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
33384         Define for C1X.
33385
33386 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
33387
33388         * config/i386/gmon-sol2.c (_mcleanup): Change format string
33389         placeholder from 0x%x to %#x.
33390         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
33391         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
33392         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
33393         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
33394         * config/i386/i386.c (ix86_target_string): Ditto.
33395         (output_pic_addr_const): Ditto.
33396         (print_operand): Ditto.
33397
33398 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
33399
33400         * combine.c (find_split_point): Add third argument.  Use it
33401         to find nested multiply-accumulate instructions.  Adjust calls.
33402         (try_combine): Adjust call to find_split_point.
33403
33404 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
33405
33406         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
33407
33408 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
33409
33410         PR tree-optimization/41442
33411         * fold-const.c (merge_truthop_with_opposite_arm): New function.
33412         (fold_binary_loc): Call it.
33413
33414 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33415
33416         * toplev.c (general_init): Set default for fdiagnostics-show-option.
33417         * opts.c (common_handle_option): Allow disabling it.
33418         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
33419
33420 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
33421
33422         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
33423         between modes if both types are integral.
33424
33425 2010-04-23  Richard Guenther  <rguenther@suse.de>
33426
33427         PR tree-optimization/43572
33428         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
33429
33430 2010-04-23  Richard Guenther  <rguenther@suse.de>
33431
33432         PR lto/43455
33433         * tree-inline.c (tree_can_inline_p): Also check compatibility
33434         of return types.
33435
33436 2010-04-23  Martin Jambor  <mjambor@suse.cz>
33437
33438         PR tree-optimization/43846
33439         * tree-sra.c (struct access): New flag grp_assignment_read.
33440         (build_accesses_from_assign): Set grp_assignment_read.
33441         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
33442         (enum mark_read_status): New type.
33443         (analyze_access_subtree): Propagate grp_assignment_read, create
33444         accesses also if both direct_read and root->grp_assignment_read.
33445
33446 2010-04-23  Martin Jambor  <mjambor@suse.cz>
33447
33448         PR middle-end/43835
33449         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
33450         function does not have type attributes.
33451
33452 2010-04-23  Richard Guenther  <rguenther@suse.de>
33453
33454         PR lto/42653
33455         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
33456         of FUNCTION_DECLs.
33457
33458 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33459
33460         * sese.h (create_if_region_on_edge): Remove.
33461
33462         * sese.c (create_if_region_on_edge): Make static.
33463
33464         * tree-inline.c: Do not include ggc.h.
33465
33466         * expr.c: Do not include ggc.h.
33467
33468         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
33469         dependencies.
33470
33471 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
33472
33473         PR target/43744
33474         * config/sh/sh.c (find_barrier): Don't emit a constant pool
33475         in the middle of insns for casesi_worker_2.
33476
33477 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
33478
33479         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
33480
33481 2010-04-22  Ira Rosen  <irar@il.ibm.com>
33482
33483         PR tree-optimization/43842
33484         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
33485         loop unrolling in update of exit phis. Fix comment.
33486         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
33487         least two reduction statements in the loop before starting SLP
33488         analysis.
33489
33490 2010-04-22  Nick Clifton  <nickc@redhat.com>
33491
33492         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
33493
33494 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
33495
33496         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
33497         to simplify a + ~a.
33498
33499 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33500
33501         * tree-parloops.c (loop_parallel_p): New argument
33502         parloop_obstack.  Pass it down.
33503         (parallelize_loops): New variable parloop_obstack.  Initialize it,
33504         pass it down, free it.
33505
33506         * tree-loop-linear.c (linear_transform_loops): Pass down
33507         lambda_obstack.
33508
33509         * tree-data-ref.h (lambda_compute_access_matrices): New argument
33510         of type struct obstack *.
33511
33512         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
33513         scratch_obstack.  Initialize it, pass down, free it.
33514
33515         * lambda.h (lambda_loop_new): Remove.
33516         (lambda_matrix_new, lambda_matrix_inverse)
33517         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
33518         argument of type struct obstack *.
33519
33520         * lambda-trans.c (lambda_trans_matrix_new): New argument
33521         lambda_obstack.  Pass it down, use obstack allocation for ret.
33522         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
33523         it down.
33524
33525         * lambda-mat.c (lambda_matrix_get_column)
33526         (lambda_matrix_project_to_null): Remove.
33527         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
33528         allocation for mat.
33529         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
33530         lambda_obstack.
33531
33532         * lambda-code.c (lambda_loop_new): New function.
33533         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
33534         (lambda_compute_auxillary_space, lambda_compute_target_space)
33535         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
33536         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
33537         (build_access_matrix): New argument lambda_obstack.  Use obstack
33538         allocation for am.
33539         (lambda_compute_step_signs, lambda_compute_access_matrices): New
33540         argument lambda_obstack.  Pass it down.
33541
33542 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33543
33544         * optabs.h (expand_widening_mult): Declare.
33545
33546 2010-04-22  Richard Guenther  <rguenther@suse.de>
33547
33548         PR tree-optimization/43845
33549         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
33550         lookup the CALL_EXPR function and arguments.
33551
33552 2010-04-22  Nick Clifton  <nickc@redhat.com>
33553
33554         * config/stormy16/stormy16.c
33555         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
33556         * config/stormy16/stormy16.h: Tidy up formatting.
33557         (DONT_USE_BUILTIN_SETJMP): Remove definition.
33558         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
33559         (ineqbranchsi): Delete pattern.
33560         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
33561         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
33562         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
33563         stormy16-lib2-ucmpsi2.c.
33564
33565 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33566
33567         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
33568         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
33569         extra set merge_set_noclobber, and use it to relax the final test
33570         slightly.
33571         * df.h (df_simulate_find_noclobber_defs): Declare.
33572         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
33573         conditional defs.
33574         (df_simulate_find_noclobber_defs): New function.
33575
33576 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
33577
33578         * config/i386/i386.md: Use {} around multi-line preparation statements.
33579
33580 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33581
33582         * c-tree.h (push_init_level, pop_init_level, set_init_index)
33583         (process_init_element): New argument of type struct obstack *.
33584
33585         * c-typeck.c (push_init_level, pop_init_level, set_designator)
33586         (set_init_index, set_init_label, set_nonincremental_init)
33587         (set_nonincremental_init_from_string, find_init_member)
33588         (output_init_element, output_pending_init_elements)
33589         (process_init_element): New argument braced_init_obstack.  Pass it
33590         down.
33591         (push_range_stack, add_pending_init): New argument
33592         braced_init_obstack.  Use obstack allocation.
33593
33594         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
33595         braced_init_obstack.  Pass it down.
33596         (c_parser_braced_init): New variables ret, braced_init_obstack.
33597         Initialize obstack, pass it down and finally free it.
33598
33599 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33600
33601         PR middle-end/29274
33602         * tree-pass.h (pass_optimize_widening_mul): Declare.
33603         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
33604         gate_optimize_widening_mul): New static functions.
33605         (pass_optimize_widening_mul): New.
33606         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
33607         <case MULT_EXPR>: Remove support for widening multiplies.
33608         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
33609         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
33610         simplify_gen_unary rather than directly building extensions.
33611         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
33612         WIDEN_MULT_EXPR.
33613         * expmed.c (expand_widening_mult): New function.
33614         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
33615
33616 2010-04-21  Jan Hubicka  <jh@suse.cz>
33617
33618         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
33619         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
33620         * lto-wpa-fixup.c: Remove.
33621         * Makefile.in (lto-wpa-fixup.o): Remove.
33622         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
33623         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
33624         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
33625
33626 2010-04-21  Jan Hubicka  <jh@suse.cz>
33627
33628         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
33629         add write_optimization_summary, read_optimization_summary.
33630         (ipa_write_summaries_of_cgraph_node_set): Remove.
33631         (ipa_write_optimization_summaries): Declare.
33632         (ipa_read_optimization_summaries): Declare.
33633         * ipa-cp.c (pass_ipa_cp): Update.
33634         * ipa-reference.c (pass_ipa_reference): Update.
33635         * ipa-pure-const.c (pass_ipa_pure_const): Update.
33636         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
33637         Update.
33638         * ipa-inline.c (pass_ipa_inline): Update.
33639         * ipa.c (pass_ipa_whole_program): Update.
33640         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
33641         * passes.c (ipa_write_summaries_1): Do not test wpa.
33642         (ipa_write_optimization_summaries_1): New.
33643         (ipa_write_optimization_summaries): New.
33644         (ipa_read_summaries): Do not test ltrans.
33645         (ipa_read_optimization_summaries_1): New.
33646         (ipa_read_optimization_summaries): New.
33647
33648 2010-04-21  Jan Hubicka  <jh@suse.cz>
33649
33650         * lto-cgraph.c (lto_output_node): Do not output comdat groups
33651         for boundary nodes.
33652         (output_cgraph): Do not arrange comdat groups for boundary nodes.
33653
33654 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33655
33656         PR debug/40040
33657         * dwarf2out.c (add_name_and_src_coords_attributes): Add
33658         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
33659
33660 2010-04-21  Jan Hubicka  <jh@suse.cz>
33661
33662         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
33663
33664 2010-04-21  Jan Hubicka  <jh@suse.cz>
33665
33666         * varpool.c (decide_is_variable_needed): Variable is always needed
33667         during ltrans.
33668
33669 2010-04-21  Jan Hubicka  <jh@suse.cz>
33670
33671         * opts.c (decode_options): Enable pure-const pass for whopr.
33672
33673 2010-04-21  Jan Hubicka  <jh@suse.cz>
33674
33675         * cgraph.c (dump_cgraph_node): Dump also assembler name.
33676         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
33677         at WPA dumping.
33678         (cgraph_decide_inlining): Do not expect callee to be removed in all
33679         cases.
33680
33681 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
33682
33683         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
33684
33685 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
33686
33687         * config/i386/i386.md (x86_shrd): Add athlon_decode and
33688         amdfam10_decode attributes.
33689
33690 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33691
33692         PR middle-end/43570
33693         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
33694         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
33695         (lower_copyprivate_clauses): Use private var in outer
33696         context instead of original var.  Make sure the types
33697         are correct for VLAs.
33698
33699 2010-04-21  Richard Guenther  <rguenther@suse.de>
33700
33701         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
33702         to non-pointer objects.
33703
33704 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33705
33706         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
33707         last chain entry if it starts with the still current label.
33708         (add_location_or_const_value_attribute): Check that
33709         loc_list->first->next is NULL instead of comparing ->first with ->last.
33710         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
33711         to add_var_loc_to_decl.
33712
33713         * dwarf2out.c (output_call_frame_info): For dw_cie_version
33714         >= 4 add also address size and segment size fields into CIE header.
33715
33716         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
33717         long as address size is the same as sizeof (void *) and
33718         segment size is 0.
33719         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
33720         address size or segment size is unexpected, return DW_EH_PE_omit.
33721         (classify_object_over_fdes): If get_cie_encoding returned
33722         DW_EH_PE_omit, return -1.
33723         (init_object): If classify_object_over_fdes returned -1,
33724         pretend there were no FDEs at all.
33725
33726 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
33727
33728         * config/i386/i386.md (bswap<mode>2): Macroize expander from
33729         bswap{si,di}2 using SWI48 mode iterator.
33730         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
33731         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
33732         set modrm attribute of bswap insn to 0 and remove length attribute.
33733         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
33734         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
33735         set mode attribute to <MODE> and remove length attribute.
33736
33737 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
33738
33739         PR rtl-optimization/43520
33740         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
33741         zero available registers.
33742
33743 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33744
33745         * builtins.c (fold_builtin_cproj): Fold more cases.
33746
33747 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33748
33749         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
33750         (fold_builtin_1): Fold builtin cproj.
33751         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
33752         Use ATTR_CONST_NOTHROW_LIST.
33753
33754 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
33755
33756         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
33757         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
33758         ffsi2_no_cmove for !TARGET_CMOVE.
33759         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
33760         (ffssi2): Remove expander.
33761         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
33762         mode iterator.
33763         (ctz<mode>2): Ditto from ctz{si,di}2.
33764         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
33765         mode iterator.
33766         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
33767         mode iterator.
33768
33769 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
33770
33771         * dwarf2out.c (AT_linkage_name): Define.
33772         (clone_as_declaration): Handle DW_AT_linkage_name.
33773         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
33774         of DW_AT_MIPS_linkage_name.
33775         (move_linkage_attr): Likewise.
33776         (dwarf2out_finish): Likewise.
33777
33778 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
33779
33780         PR middle-end/41952
33781         * fold-const.c (fold_comparison): New folding rule.
33782
33783 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
33784
33785         * double-int.h (double_int_setbit): Declare.
33786         * double-int.c (double_int_setbit): New function.
33787         * rtl.h (immed_double_int_const): Declare.
33788         * emit-rtl.c (immed_double_int_const): New function.
33789         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
33790         and immed_double_int_const functions.
33791         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
33792         expand_copysign_bit): (Ditto.).
33793         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
33794         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
33795         * dojump.c (prefer_and_bit_test): (Ditto.).
33796         * expr.c (convert_modes, reduce_to_bit_field_precision,
33797         const_vector_from_tree): (Ditto.).
33798         * expmed.c (mask_rtx, lshift_value): (Ditto.).
33799
33800 2010-04-20  Jan Hubicka  <jh@suse.cz>
33801
33802         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
33803         (dump_cgraph_node): Dump new flags.
33804         * cgraph.h (struct cgraph_node): Add flags
33805         reachable_from_other_partition and in_other_partition.
33806         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
33807         other partition can not be removed.
33808         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
33809         the other partition must be output; silence sanity checking on
33810         leaking functions bodies from other paritition.
33811         * lto-cgraph.c (reachable_from_other_partition_p): New function.
33812         (lto_output_node): Output new flags; do not sanity check that inline
33813         clones are output; drop lto_forced_extern_inline_p code; do not mock
33814         visibility flags at partition boundaries.
33815         (add_node_to): New function.
33816         (output_cgraph): Use it to sort functions so masters appear before
33817         clones.
33818         (input_overwrite_node): Input new flags.
33819         * passes.c (ipa_write_summaries): Do not call
33820         lto_new_extern_inline_states.
33821         * lto-section-out.c (forced_extern_inline,
33822         lto_new_extern_inline_states lto_delete_extern_inline_states,
33823         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
33824         * lto-streamer.h (lto_new_extern_inline_states,
33825         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
33826         lto_forced_extern_inline_p): Kill.
33827
33828 2010-04-20  Richard Guenther  <rguenther@suse.de>
33829
33830         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
33831         from vars that can have pointers.
33832         (process_constraint): Dump useless constraints.
33833
33834 2010-04-20  Richard Guenther  <rguenther@suse.de>
33835
33836         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
33837         (dump_sa_points_to_info): Remove asserts.
33838         (init_base_vars): nothing_id isn't an escape point nor does it
33839         have pointers.
33840
33841 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
33842
33843         * tree.h (TYPE_REF_IS_RVALUE): Define.
33844         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
33845         should_move_die_to_comdat, prune_unused_types_walk): Handle
33846         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
33847         (modified_type_die, gen_reference_type_die): Emit
33848         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
33849         if TYPE_REF_IS_RVALUE and -gdwarf-4.
33850
33851 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33852
33853         PR target/43635
33854         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
33855         calls for -fpic -m31 if they have been sibcall optimized.
33856
33857 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
33858
33859         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
33860         ar.lc fixed and call-used.
33861
33862         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
33863
33864 2010-04-19  Jan Hubicka  <jh@suse.cz>
33865
33866         * opts.c (decode_options): Disable whpr incompatible passes.
33867         * lto/lto.c (lto_1_to_1_map): Skip clones.
33868         (read_cgraph_and_symbols): Do not mark everything as needed.
33869         (do_whole_program_analysis): Do map only after optimizing;
33870         set proper cgraph_state; use passmanager.
33871
33872 2010-04-19  DJ Delorie  <dj@redhat.com>
33873
33874         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
33875         POINTER_PLUS_EXPR and fix them.
33876
33877 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
33878
33879         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
33880         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
33881         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
33882         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
33883         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
33884         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
33885         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
33886         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
33887         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
33888         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
33889         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
33890
33891 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
33892
33893         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
33894         (check_cond_move_block): Likewise.
33895         (cond_move_process_if_block): Likewise.
33896         (noce_find_if_block): Improve formatting.
33897         (find_if_header): Pass 0 to memset and tweak conditions.
33898         (cond_exec_find_if_block): Fix long lines and tweak conditions.
33899
33900 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
33901
33902         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
33903         for -gdwarf-4.
33904
33905         PR middle-end/43337
33906         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
33907         with non-local decl doesn't need chain.
33908
33909 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
33910
33911         * ira-color.c (allocno_reload_assign): Avoid accumulating
33912         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
33913
33914 2010-04-19  Martin Jambor  <mjambor@suse.cz>
33915
33916         * gimple.h (create_tmp_reg): Declare.
33917         * gimplify.c (create_tmp_reg): New function.
33918         (gimplify_return_expr): Use create_tmp_reg.
33919         (gimplify_omp_atomic): Likewise.
33920         (gimple_regimplify_operands): Likewise.
33921         * tree-dfa.c (make_rename_temp): Likewise.
33922         * tree-predcom.c (predcom_tmp_var): Likewise.
33923         (reassociate_to_the_same_stmt): Likewise.
33924         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
33925         (get_replaced_param_substitute): Likewise.
33926         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
33927         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
33928         * tree-ssa-pre.c (get_representative_for): Likewise.
33929         (create_expression_by_pieces): Likewise.
33930         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
33931         (create_tailcall_accumulator): Likewise.
33932
33933 2010-04-19  Martin Jambor  <mjambor@suse.cz>
33934
33935         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
33936         new_stmt.
33937         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
33938
33939 2010-04-19  Richard Guenther  <rguenther@suse.de>
33940
33941         PR tree-optimization/43796
33942         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
33943         from SCEV in the lattice.
33944         (vrp_visit_phi_node): Dump change.
33945
33946 2010-04-19  Richard Guenther  <rguenther@suse.de>
33947
33948         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
33949         * configure: Re-generated.
33950
33951 2010-04-19  Richard Guenther  <rguenther@suse.de>
33952
33953         PR tree-optimization/43783
33954         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
33955         constant ARRAY_REF operands two and three if possible.
33956
33957 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
33958
33959         PR target/43766
33960         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
33961
33962 2010-04-19  Jie Zhang  <jie@codesourcery.com>
33963
33964         PR target/43662
33965         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
33966
33967 2010-04-19  Ira Rosen  <irar@il.ibm.com>
33968
33969         PR tree-optimization/37027
33970         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
33971         and macro to access it.
33972         (vectorizable_reduction): Add argument.
33973         (vect_get_slp_defs): Likewise.
33974         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
33975         statements for possible use in SLP.
33976         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
33977         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
33978         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
33979         add new argument.
33980         (vectorizable_reduction): Likewise.
33981         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
33982         vect_get_slp_defs.
33983         (vectorizable_type_demotion, vectorizable_type_promotion,
33984         vectorizable_store): Likewise.
33985         (vect_analyze_stmt): Update call to vectorizable_reduction.
33986         (vect_transform_stmt): Likewise.
33987         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
33988         (vect_build_slp_tree): Fix indentation. Check that there are no loads
33989         from different interleaving chains in same node.
33990         (vect_slp_rearrange_stmts): New function.
33991         (vect_supported_load_permutation_p): Allow load permutations for
33992         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
33993         inside SLP nodes if necessary.
33994         (vect_analyze_slp_instance): Handle reductions.
33995         (vect_analyze_slp): Try to build SLP instances originating from groups
33996         of reductions.
33997         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
33998         (vect_get_constant_vectors): Create initial vectors for reductions
33999         according to reduction code. Add new argument.
34000         (vect_get_slp_defs): Add new argument, pass it to
34001         vect_get_constant_vectors.
34002         (vect_schedule_slp_instance): Remove SLP tree root statements.
34003
34004 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
34005
34006         * tree.h (ENUM_IS_SCOPED): Define.
34007         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
34008         for ENUM_IS_SCOPED enums.
34009
34010 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
34011
34012         * fold-const.c (fold_comparison): Use ssizetype.
34013         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
34014         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
34015         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
34016         * tree-object-size.c (compute_object_sizes): Use size_type_node.
34017
34018         * tree.h (initialize_sizetypes): Remove parameter.
34019         (build_common_tree_nodes): Remove second parameter.
34020         * stor-layout.c (initialize_sizetypes): Remove parameter.
34021         Always create an unsigned type.
34022         (set_sizetype): Assert that the passed type is unsigned and simplify.
34023         * tree.c (build_common_tree_nodes): Remove second parameter.
34024         Adjust call to initialize_sizetypes.
34025         * c-decl.c (c_init_decl_processing): Remove second argument in call to
34026         build_common_tree_nodes.
34027
34028 2010-04-18  Matthias Klose  <doko@ubuntu.com>
34029
34030         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
34031
34032 2010-04-18  Ira Rosen  <irar@il.ibm.com>
34033
34034         PR tree-optimization/43771
34035         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
34036         load permutation doesn't have gaps.
34037
34038 2010-04-18  Jan Hubicka  <jh@suse.cz>
34039
34040         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
34041         (sse_prologue_save_insn expander): Use new pattern.
34042         (sse_prologue_save_insn1): New pattern and splitter.
34043         (sse_prologue_save_insn): Update to deal also with 64bit aligned
34044         blocks.
34045         * i386.c (setup_incoming_varargs_64): Do not compute jump
34046         destination here.
34047         (ix86_gimplify_va_arg): Update alignment needed.
34048         (ix86_local_alignment): Do not align all local arrays to 128bit.
34049
34050 2010-04-17  Jan Hubicka  <jh@suse.cz>
34051
34052         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
34053
34054 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
34055
34056         * arm.md (negdi2): Remove redundant code to force values into a
34057         register.
34058
34059 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
34060
34061         * arm/bpabi.S: Add EABI alignment attributes to objects.
34062         * arm/bpabi-v6m.S: Likewise.
34063         * arm/crti.asm: Likewise.
34064         * arm/crtn.asm: Likewise.
34065         * arm/lib1funcs.asm: Likewise.
34066         * arm/libunwind.S: Likewise.
34067
34068 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
34069
34070         * arm-protos.h (tune_params): New structure.
34071         * arm.c (current_tune): New variable.
34072         (arm_constant_limit): Delete.
34073         (struct processors): Add pointer to the tune parameters.
34074         (arm_slowmul_tune): New tuning option.
34075         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
34076         (all_cores): Adjust to pick up the tuning model.
34077         (arm_constant_limit): New function.
34078         (arm_override_options): Select the appropriate tuning model.  Delete
34079         initialization of arm_const_limit.
34080         (arm_split_constant): Use the new constant-limit model.
34081         (arm_rtx_costs): Pick up the current tuning model.
34082         * arm.md (is_strongarm, is_xscale): Delete.
34083         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
34084         for Xscale variant architectures.
34085         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
34086
34087 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34088
34089         * config/arm/arm.c (arm_gen_constant): Remove unused variable
34090         can_shift.
34091         (arm_rtx_costs_1): Remove unused variable extra_cost.
34092         (arm_unwind_emit_set): Use variable offset.
34093         (thumb1_output_casesi): Remove unused variable flags.
34094
34095 2010-04-16  Jeff Law  <law@redhat.com>
34096
34097         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
34098         needing assignment rather than doing a two-phase assignment.  Remove
34099         unused variable 'm'.
34100
34101 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
34102
34103         PR bootstrap/43767
34104         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
34105
34106 2010-04-16  Doug Kwan  <dougkwan@google.com>
34107
34108         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
34109         (next_operand_entry_id): New static variable.
34110         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
34111         (add_to_ops_vec): Assigned unique ID to operand entry.
34112         (struct oecount_s): New field ID.
34113         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
34114         (undistribute_ops_list): Assign unique IDs to oecounts.
34115         (init_reassoc): reset next_operand_entry_id.
34116
34117 2010-04-16  Doug Kwan  <dougkwan@google.com>
34118
34119         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
34120         missing left parenthesis.
34121
34122 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
34123
34124         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
34125         *btdi_rex64 using SWI48 mode iterator.
34126         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
34127         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
34128         *jcc_btdi_mask_rex64.
34129
34130 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
34131
34132         * double-int.h (tree_to_double_int): Convert to macro.
34133         * double-int.c (tree_to_double_int): Remove.
34134
34135 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
34136
34137         PR debug/43762
34138         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
34139         with want_address 2 and in case a single element list might be
34140         possible, call it again with want_address 0.
34141
34142 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
34143
34144         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
34145         case 'W' print operands for HI mode.
34146         * config/h8300/h8300.h (Y0, Y2) : New constraints.
34147         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
34148         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
34149         * config/h8300/predicate.md (bit_register_indirect_operand): New.
34150
34151         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
34152
34153         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
34154         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
34155         #xx:3 and #xx:4 mode.
34156
34157         * config/h8300/h8300.md (inverted load with HImode dest): Add
34158         support for H8300SX.
34159
34160         * config/h8300/predicate.md (bit_operand): Allow immediate values that
34161         satisfy 'U' constraint.
34162
34163 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34164
34165         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
34166         * configure: Regenerate.
34167         * config.in: Regenerate.
34168         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
34169         works.
34170
34171 2010-04-16  Richard Guenther  <rguenther@suse.de>
34172
34173         * tree.h (struct tree_decl_minimal): Move pt_uid ...
34174         (struct tree_decl_common): ... here.
34175         (DECL_PT_UID): Adjust.
34176         (SET_DECL_PT_UID): Likewise.
34177         (DECL_PT_UID_SET_P): Likewise.
34178
34179 2010-04-16  Richard Guenther  <rguenther@suse.de>
34180
34181         PR tree-optimization/43572
34182         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
34183         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
34184         * tree-flow.h (is_call_clobbered): Remove.
34185         * tree-flow-inline.h (is_call_clobbered): Likewise.
34186         * tree-dfa.c (dump_variable): Do not dump call clobber state.
34187         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
34188         (execute_return_slot_opt): Adjust.
34189         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
34190         check for call clobbered vars here.
34191         (find_tail_calls): Move tailcall verification to the
34192         proper place.
34193
34194 2010-04-16  Diego Novillo  <dnovillo@google.com>
34195
34196         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
34197
34198 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
34199
34200         PR target/40603
34201         * config/arm/arm.md (cbranchqi4): New pattern.
34202         * config/arm/predicates.md (const0_operand,
34203         cbranchqi4_comparison_operator): New predicates.
34204
34205 2010-04-16  Richard Guenther  <rguenther@suse.de>
34206
34207         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
34208         (dump_gimple_stmt): Likewise.
34209
34210 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
34211
34212         * recog.h (struct recog_data): New field is_operator.
34213         (struct insn_operand_data): New field is_operator.
34214         * recog.c (extract_insn): Set recog_data.is_operator.
34215         * genoutput.c (output_operand_data): Emit code to set the
34216         is_operator field.
34217         * reload.c (find_reloads): Use it rather than testing for an
34218         empty constraint string.
34219
34220         PR target/41514
34221         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
34222         If the previous insn is a cbranchsi4_insn with the same arguments,
34223         omit the compare instruction.
34224
34225         * config/arm/arm.md (addsi3_cbranch): If destination is a high
34226         register, inputs must be low registers and we need a low register
34227         scratch.  Handle alternative 2 like alternative 3.
34228
34229 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
34230
34231         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
34232         don't call get_addr on both.  If one expression is a VALUE and
34233         the other a REG, check VALUE's locs if the REG isn't among them.
34234
34235 2010-04-16  Christian Bruel  <christian.bruel@st.com>
34236
34237         * config/sh/sh.h (sh_frame_pointer_required): New function.
34238         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
34239         (flag_omit_frame_pointer) Set.
34240         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
34241         (rounded_frame_size): Adjust size with outgoing_args_size.
34242         (sh_set_return_address): Must return from stack pointer.
34243         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
34244         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
34245         (ACCUMULATE_OUTGOING_ARGS): Define.
34246         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
34247         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
34248
34249 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
34250
34251         PR target/43471
34252         * config/sh/sh.c (sh_legitimize_reload_address): Use
34253         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
34254         Remove a unneeded check for offset_base.
34255
34256 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
34257
34258         * configure: Regenerated.
34259
34260 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34261
34262         * config/s390/s390.c (s390_call_save_register_used): Switch back
34263         to HARD_REGNO_NREGS.
34264
34265 2010-04-15  Richard Guenther  <rguenther@suse.de>
34266
34267         * alias.c (alias_set_subset_of): Handle alias-set zero
34268         child properly.
34269
34270 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
34271             Julian Brown  <julian@codesourcery.com>
34272
34273         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
34274         alternatives according to use of high and low regs.
34275         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
34276         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
34277         optimizing for size on Thumb-2.
34278
34279 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
34280
34281         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
34282
34283 2010-04-15  Richard Guenther  <rguenther@suse.de>
34284
34285         * tree-ssa-structalias.c (struct variable_info): Add
34286         is_fn_info flag.
34287         (new_var_info): Initialize it.
34288         (dump_constraints): Support printing last added constraints.
34289         (debug_constraints): Adjust.
34290         (dump_constraint_graph): Likewise.
34291         (make_heapvar_for): Check for NULL cfun.
34292         (get_function_part_constraint): New function.
34293         (get_fi_for_callee): Likewise.
34294         (find_func_aliases): Properly implement IPA PTA constraints.
34295         (process_ipa_clobber): New function.
34296         (find_func_clobbers): Likewise.
34297         (insert_into_field_list_sorted): Remove.
34298         (create_function_info_for): Properly allocate vars for IPA mode.
34299         Do not use insert_into_field_list_sorted.
34300         (create_variable_info_for): Properly generate constraints for
34301         global vars in IPA mode.
34302         (dump_solution_for_var): Always dump the solution.
34303         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
34304         (find_what_var_points_to): Adjust.
34305         (pt_solution_set): Change.
34306         (pt_solution_ior_into): New function.
34307         (pt_solution_empty_p): Export.
34308         (pt_solution_includes_global): Adjust.
34309         (pt_solution_includes_1): Likewise.
34310         (pt_solutions_intersect_1): Likewise.
34311         (dump_sa_points_to_info): Check some invariants.
34312         (solve_constraints): Move constraint dumping ...
34313         (compute_points_to_sets): ... here.
34314         (ipa_pta_execute): ... and here.
34315         (compute_may_aliases): Do not re-compute points-to info
34316         locally if IPA info is available.
34317         (ipa_escaped_pt): New global var.
34318         (ipa_pta_execute): Properly implement IPA PTA.
34319         * tree-into-ssa.c (dump_decl_set): Support dumping
34320         decls not in referenced-vars.
34321         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
34322         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
34323         (dump_points_to_solution): Likewise.
34324         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
34325         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
34326         (remap_gimple_stmt): Reset call clobber/use information if necessary.
34327         (copy_decl_to_var): Copy DECL_PT_UID.
34328         (copy_result_decl_to_var): Likewise.
34329         * tree.c (make_node_stat): Initialize DECL_PT_UID.
34330         (copy_node_stat): Copy it.
34331         * tree.h (DECL_PT_UID): New macro.
34332         (SET_DECL_PT_UID): Likewise.
34333         (DECL_PT_UID_SET_P): Likewise.
34334         (struct tree_decl_minimal): Add pt_uid member.
34335         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
34336         (pt_solution_empty_p): Declare.
34337         (pt_solution_set): Adjust.
34338         (ipa_escaped_pt): Declare.
34339         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
34340         * gimple-pretty-print.c (pp_points_to_solution): New function.
34341         (dump_gimple_call): Dump call clobber/use information.
34342         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
34343         * tree-pass.h (TDF_ALIAS): New dump option.
34344         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
34345         * doc/invoke.texi (-fipa-pta): Update documentation.
34346
34347 2010-04-15  Richard Guenther  <rguenther@suse.de>
34348
34349         * Makefile.in (OBJS-common): Add gimple-fold.o.
34350         (gimple-fold.o): New rule.
34351         * tree.h (maybe_fold_offset_to_reference,
34352         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
34353         prototypes ...
34354         * gimple.h: ... here.
34355         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
34356         may_propagate_address_into_dereference): Move prototypes ...
34357         * gimple.h: ... here.
34358         * tree-ssa-ccp.c (get_symbol_constant_value,
34359         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
34360         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
34361         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
34362         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
34363         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
34364         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
34365         gimplify_and_update_call_from_tree): Move ...
34366         * gimple-fold.c: ... here.  New file.
34367         (ccp_fold_builtin): Rename to ...
34368         (gimple_fold_builtin): ... this.
34369         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
34370
34371 2010-04-15  Richard Guenther  <rguenther@suse.de>
34372
34373         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
34374         fit_double_type, force_fit_type_double, add_double_with_sign,
34375         neg_double, mul_double_with_sign, lshift_double, rshift_double,
34376         lrotate_double, rrotate_double, div_and_round_double): Move ...
34377         * double-int.c: ... here.
34378         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
34379         add_double, neg_double, mul_double_with_sign, mul_double,
34380         lshift_double, rshift_double, lrotate_double, rrotate_double,
34381         div_and_round_double): Move prototypes ...
34382         * double-int.h: ... here.
34383
34384 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
34385
34386         PR target/43742
34387         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
34388         matching constraints to ensure inputs match the output.
34389
34390 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
34391
34392         PR target/43742
34393         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
34394         in an input-only operand.
34395
34396 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
34397
34398         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
34399         (double_int_not, double_int_lshift, double_int_rshift): Declare.
34400         (double_int_negative_p): Convert to static inline function.
34401         * double-int.c (double_int_lshift, double_int_lshift): New functions.
34402         (double_int_negative_p): Remove.
34403         * tree.h (lshift_double, rshift_double):
34404         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
34405         * fold-const.c (fold_convert_const_int_from_real,
34406         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
34407         (lshift_double): Change type of arith argument to bool.
34408         (rshift_double): Change type of arith argument to bool. Correct
34409         comment.
34410         * expmed.c (mask_rtx, lshift_value): (Ditto.).
34411
34412 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
34413
34414         PR target/21803
34415         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
34416         at the start and end of the then/else blocks, and omit them from the
34417         conversion.
34418         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
34419         argument; all callers changed.  Pass zero to old_insns_match_p instead.
34420         (flow_find_head_matching_sequence): New function.
34421         (old_insns_match_p): Check REG_EH_REGION notes for calls.
34422         * basic-block.h (flow_find_cross_jump,
34423         flow_find_head_matching_sequence): Declare functions.
34424
34425 2010-04-14  Jason Merrill  <jason@redhat.com>
34426
34427         PR c++/36625
34428         * c-common.c (attribute_takes_identifier_p): New fn.
34429         * c-common.h: Declare it.
34430
34431 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34432
34433         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
34434         splitter condition.
34435         (*udivmod<mode>4): Ditto.
34436
34437 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34438
34439         * config/i386/i386.md (maxmin_int): Rename code attribute from
34440         maxminiprefix and update all users.
34441         (maxmin_float): Ditto from maxminfprefix.
34442         (logic): Ditto from logicprefix.
34443         (absneg_mnemonic): Ditto from absnegprefix.
34444         * config/i386/mmx.md: Update all users of maxminiprefix,
34445         maxminfprefix and logicprefix for rename.
34446         * config/i386/sse.md: Ditto.
34447         * config/i386/sync.md (sync_<code><mode>): Update for
34448         logicprefix rename.
34449
34450 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34451
34452         PR 42966
34453         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
34454         warnings converted to errors.
34455
34456 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34457
34458         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
34459         used insn_type variable.
34460         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
34461         to avoid set-but-not-used warning.
34462
34463 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34464
34465         * df-core.c (df_ref_debug): Change format string placeholder
34466         from 0x%x to %#x.
34467         * dwarf2asm.c (dw2_asm_output_data_raw,
34468         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
34469         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
34470         * dwarf2out.c (output_cfi, output_cfi_directive,
34471         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
34472         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
34473         Ditto.
34474         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
34475         * print-rtl.c (print_rtx): Ditto.
34476
34477 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
34478
34479         PR middle-end/42694
34480         * builtins.c (expand_builtin_pow_root): New function to expand pow
34481         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
34482         series of sqrt and cbrt calls under -ffast-math.
34483         (expand_builtin_pow): Call it.
34484
34485 2010-04-14  Michael Matz  <matz@suse.de>
34486
34487         PR tree-optimization/42963
34488         * tree-cfg.c (touched_switch_bbs): New static variable.
34489         (group_case_labels_stmt): New function broken out from ...
34490         (group_case_labels): ... here, use the above.
34491         (start_recording_case_labels): Allocate touched_switch_bbs.
34492         (end_recording_case_labels): Deallocate it, call
34493         group_case_labels_stmt.
34494         (gimple_redirect_edge_and_branch): Remember index of affected BB.
34495
34496 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34497
34498         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
34499         from insn template.
34500
34501 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34502
34503         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
34504
34505 2010-04-13  Jan Hubicka  <jh@suse.cz>
34506
34507         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
34508         of optimized out static functions.
34509         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
34510         cost computation.  Also sanity check for overflows.
34511         (update_caller_keys): Update cgraph_edge_badness call; properly
34512         update fibheap and sanity check that it is up to date.
34513         (add_new_edges_to_heap): Update cgraph_edge_badness.
34514         (cgraph_decide_inlining_of_small_function): Likewise;
34515         add sanity checking that badness in heap is up to date;
34516         improve dumping of reason; Update badness of calls to the
34517         offline copy of function currently inlined; dump badness
34518         of functions not inlined because of unit growth limits.
34519
34520 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
34521
34522         PR middle-end/32628
34523         * c-common.c (pointer_int_sum): Disregard overflow that occured only
34524         because of sign-extension change when converting to sizetype here...
34525         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
34526
34527         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
34528         the folding to constants.  Remove redundant final conversion.
34529         (fold_binary) <associate>: Do not associate if the re-association of
34530         constants alone overflows.
34531         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
34532         to the end of the list.
34533         (multiple_of_p) <COND_EXPR>: New case.
34534
34535 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34536
34537         * opt-functions.awk (opt_sanitized_name): New.
34538         (opt_enum): New.
34539         * optc-gen.awk: Use it
34540         * opth-gen.awk: Use it.
34541
34542 2010-04-13  Martin Jambor  <mjambor@suse.cz>
34543
34544         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
34545         (sra_modify_assign): Delete stmts loading dead data even if racc has no
34546         children.  Call replace_uses_with_default_def_ssa_name to handle
34547         SSA_NAES on lhs.
34548
34549 2010-04-13  Michael Matz  <matz@suse.de>
34550
34551         PR middle-end/43730
34552         * builtins.c (expand_builtin_interclass_mathfn): Also create
34553         a register if the predicate doesn't match.
34554
34555 2010-04-13  Diego Novillo  <dnovillo@google.com>
34556
34557         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
34558         * c-pch.c: Include timevar.h.
34559         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
34560         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
34561         * ggc-common.c: Include timevar.h.
34562         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
34563         * timevar.def (TV_PCH_SAVE): Define.
34564         (TV_PCH_CPP_SAVE): Define.
34565         (TV_PCH_PTR_REALLOC): Define.
34566         (TV_PCH_PTR_SORT): Define.
34567         (TV_PCH_RESTORE): Define.
34568         (TV_PCH_CPP_RESTORE): Define.
34569
34570 2010-04-13  Michael Matz  <matz@suse.de>
34571
34572         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
34573         into MINUS_EXPRs.
34574         (can_reassociate_p): New function.
34575         (break_up_subtract_bb, reassociate_bb): Use it.
34576
34577 2010-04-13  Richard Guenther  <rguenther@suse.de>
34578
34579         PR bootstrap/43737
34580         * builtins.c (c_readstr): Fix assert.
34581
34582 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
34583
34584         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
34585         when generating cltd insn.
34586
34587         (*ashl<mode>3_1): Remove special handling for register operand 2.
34588         (*ashlsi3_1_zext): Ditto.
34589         (*ashlhi3_1): Ditto.
34590         (*ashlhi3_1_lea): Ditto.
34591         (*ashlqi3_1): Ditto.
34592         (*ashlqi3_1_lea): Ditto.
34593         (*<shiftrt_insn><mode>3_1): Ditto.
34594         (*<shiftrt_insn>si3_1_zext): Ditto.
34595         (*<shiftrt_insn>qi3_1_slp): Ditto.
34596         (*<rotate_insn><mode>3_1): Ditto.
34597         (*<rotate_insn>si3_1_zext): Ditto.
34598         (*<rotate_insn>qi3_1_slp): Ditto.
34599
34600 2010-04-13  Richard Guenther  <rguenther@suse.de>
34601
34602         * tree-ssa-structalias.c (callused_id): Remove.
34603         (call_stmt_vars): New.
34604         (get_call_vi): Likewise.
34605         (lookup_call_use_vi): Likewise.
34606         (lookup_call_clobber_vi): Likewise.
34607         (get_call_use_vi): Likewise.
34608         (get_call_clobber_vi): Likewise.
34609         (make_transitive_closure_constraints): Likewise.
34610         (handle_const_call): Adjust to do per-call call-used handling.
34611         (handle_pure_call): Likewise.
34612         (find_what_var_points_to): Remove general callused handling.
34613         (init_base_vars): Likewise.
34614         (init_alias_vars): Initialize call_stmt_vars.
34615         (compute_points_to_sets): Process call-used and call-clobbered
34616         vars for call statements.
34617         (delete_points_to_sets): Free call_stmt_vars.
34618
34619 2010-04-13  Richard Guenther  <rguenther@suse.de>
34620
34621         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
34622         Only add RW dependence for dependence distance zero.
34623         Adjust maximal vectorization factor according to dependences.
34624         Move alignment handling ...
34625         (vect_find_same_alignment_drs): ... here.  New function.
34626         (vect_analyze_data_ref_dependences): Adjust.
34627         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
34628         (vect_analyze_data_refs): Adjust minimal vectorization factor
34629         according to data references.
34630         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
34631         dependences before determining the vectorization factor.
34632         Analyze alignment after determining the vectorization factor.
34633         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
34634         dependences before alignment.
34635         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
34636         Adjust prototype.
34637         (vect_analyze_data_refs): Likewise.
34638         (MAX_VECTORIZATION_FACTOR): New define.
34639
34640 2010-04-13  Duncan Sands  <baldrick@free.fr>
34641
34642         * except.h (lang_eh_type_covers): Remove.
34643         * except.c (lang_eh_type_covers): Likewise.
34644
34645 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34646             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
34647
34648         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
34649         * config/s390/s390.c: Replace UNTIS_PER_WORD with
34650         UNITS_PER_LONG where it is ABI relevant.
34651         (s390_return_addr_rtx): Likewise.
34652         (s390_back_chain_rtx): Likewise.
34653         (s390_frame_area): Likewise.
34654         (s390_frame_info): Likewise.
34655         (s390_initial_elimination_offset): Likewise.
34656         (save_gprs): Likewise.
34657         (s390_emit_prologue): Likewise.
34658         (s390_emit_epilogue): Likewise.
34659         (s390_function_arg_advance): Likewise.
34660         (s390_function_arg): Likewise.
34661         (s390_va_start): Likewise.
34662         (s390_gimplify_va_arg): Likewise.
34663         (s390_function_profiler): Likewise.
34664         (s390_optimize_prologue): Likewise.
34665         (s390_rtx_costs): Likewise.
34666         (s390_secondary_reload): Likewise.
34667         (s390_promote_function_mode): Likewise.
34668         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
34669         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
34670         registers available.
34671         (s390_unwind_word_mode): New function.
34672         (s390_function_value): Split 64 bit values into register pair if
34673         used as return value.
34674         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
34675         function call parameters.  Handle parallels.
34676         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
34677         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
34678         (DWARF_CIE_DATA_ALIGNMENT): New macro.
34679         (s390_expand_setmem): Remove unused variable src_addr.
34680         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
34681         deal with 64 bit registers.
34682         * config/s390/s390.h: Define __zarch__ predefined macro.
34683         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
34684         (UNITS_PER_LONG): New macro.
34685         * libjava/include/s390-signal.h: Define extended ucontext
34686         structure containing the upper halfs of the 64 bit registers.
34687
34688 2010-04-13  Simon Baldwin  <simonb@google.com>
34689
34690         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
34691
34692 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
34693
34694         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
34695         rvalue on the RHS if the LHS is of a non-renamable type.
34696         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
34697
34698 2010-04-13  Matthias Klose  <doko@ubuntu.com>
34699
34700         * gcc.c (cc1_options): Handle -iplugindir before processing
34701         the cc1 spec. Only add -iplugindir once.
34702         (cpp_unique_options): Add -iplugindir option if -fplugin* options
34703         found.
34704         * common.opt (iplugindir): Remove `Separate' property, initialize.
34705         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
34706         option.
34707         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
34708         (distclean): Remove plugin dir.
34709         * doc/invoke.texi: Document -iplugindir.
34710
34711 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
34712
34713         * doc/plugins.texi (Loading Plugins): Document short
34714         -fplugin=foo option.
34715         (Plugin API): Mention default_plugin_dir_name function.
34716
34717         * gcc.c (find_file_spec_function): Add new declaration.
34718         (static_spec_func): Use it for "find-file".
34719         (find_file_spec_function): Add new function.
34720         (cc1_options): Add -iplugindir option if -fplugin* options found.
34721
34722         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
34723
34724         * plugin.c (add_new_plugin): Updated comment, and handle short
34725         plugin name.
34726         (default_plugin_dir_name): Added new function.
34727
34728         * common.opt (iplugindir): New option to set the plugin directory.
34729
34730 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
34731
34732         * config/i386/i386.md (any_rotate): New code iterator.
34733         (rotate_insn): New code attribute.
34734         (rotate): Ditto.
34735         (SWIM124): New mode iterator.
34736         (<rotate_insn>ti3): New expander.
34737         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
34738         any_rotate code iterator.
34739         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
34740         using any_rotate code iterator and SWIM124 mode iterator.
34741         (ix86_rotlti3): New insn_and_split pattern.
34742         (ix86_rotrti3): Ditto.
34743         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
34744         ix86_rotl{di,ti}3 patterns.
34745         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
34746         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
34747         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
34748         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
34749         code iterator and SWI mode iterator.
34750         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
34751         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
34752         code iterator.
34753         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
34754         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
34755         (bswap rotatert splitter): Add splitter.
34756         (bswap splitter): Macroize splitter using any_rotate code iterator.
34757         Add insn predicate to split only for TARGET_USE_XCHGB or when
34758         optimizing function for size.
34759
34760 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34761
34762         * config/pa/pa.c (emit_move_sequence): Remove use of
34763         deleted variable flag_argument_noalias.
34764
34765 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34766
34767         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
34768         configurations.
34769         Add to unsupported targets list.
34770         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
34771         sparc*-sun-solaris2.[567]* from target lists.
34772         * configure: Regenerate.
34773         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
34774         removal.
34775         Remove Solaris 7 patch references.
34776         (Specific, sparc-sun-solaris2.7): Removed.
34777         (sparc-sun-solaris2*): Update Solaris 7 example.
34778         (sparc64-*-solaris2*): Likewise.
34779
34780 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34781
34782         * config.build (alpha*-dec-osf4*): Remove.
34783         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
34784         of obsolete configurations.
34785         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
34786         support.
34787         * config/alpha/t-osf4: Renamed to ...
34788         * config/alpha/t-osf5: ... this.
34789         * config/alpha/osf.h: Renamed to ...
34790         * config/alpha/osf5.h: ... this.
34791         Merged old osf5.h contents.
34792         Update comments.
34793         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
34794         (EXTRA_SPECS): Removed.
34795         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
34796         reflect removal of Tru64 UNIX V4.0/V5.0 support.
34797         Document that.
34798
34799 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34800
34801         * doc/contrib.texi (Contributors, Rainer Orth): Update.
34802
34803 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
34804
34805         PR/43702
34806         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
34807         __thiscall convention.
34808
34809 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34810
34811         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
34812         orig_base.
34813         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
34814
34815 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34816
34817         * function.c (assign_parms_initialize_all): Add unused attribute
34818         to fntype.
34819
34820 2010-04-12  Richard Guenther  <rguenther@suse.de>
34821
34822         * gsstruct.def (GSS_CALL): New.
34823         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
34824         * gimple.h: Include tree-ssa-alias.h.
34825         (struct gimple_statement_call): New.
34826         (union gimple_statement_struct_d): Add gimple_call member.
34827         (gimple_call_reset_alias_info): Declare.
34828         (gimple_call_use_set): New function.
34829         (gimple_call_clobber_set): Likewise.
34830         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
34831         * gimple.c (gimple_call_reset_alias_info): New function.
34832         (gimple_build_call_1): Call it.
34833         * lto-streamer-in.c (input_gimple_stmt): Likewise.
34834         * tree-inline.c (remap_gimple_stmt): Likewise.
34835         (expand_call_inline): Remove callused handling.
34836         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
34837         * tree-dfa.c (dump_variable): Likewise.
34838         * tree-parloops.c (parallelize_loops): Likewise.
34839         * tree-ssa.c (init_tree_ssa): Likewise.
34840         (delete_tree_ssa): Likewise.
34841         * tree-flow-inline.h (is_call_used): Remove.
34842         * tree-flow.h (struct gimple_df): Remove callused member.
34843         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
34844         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
34845         (ref_maybe_used_by_call_p_1): Simplify.
34846         (call_may_clobber_ref_p_1): Likewise.
34847         * tree-ssa-structalias.c (compute_points_to_sets): Set
34848         the call stmt used and clobbered sets.
34849         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
34850         (find_tail_calls): Verify the tail call.
34851
34852 2010-04-12  Richard Guenther  <rguenther@suse.de>
34853
34854         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
34855         single-iteration always-inline inlining.
34856         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
34857         (cgraph_decide_inlining): Do not handle always-inline specially.
34858         (try_inline): Remove always-inline cycle detection special case.
34859         Do not recurse on always-inlines.
34860         (cgraph_early_inlining): Do not iterate if not optimizing.
34861         (cgraph_gate_early_inlining): remove.
34862         (pass_early_inline): Run unconditionally.
34863         (gate_cgraph_decide_inlining): New function.
34864         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
34865         not inlining or optimizing.
34866         (cgraph_decide_inlining_of_small_functions): Also consider
34867         always-inline functions.
34868         (cgraph_default_inline_p): Return true for nodes which should
34869         disregard inline limits.
34870         (estimate_function_body_sizes): Assume zero size and time for
34871         nodes which are marked as disregarding inline limits.
34872         (cgraph_decide_recursive_inlining): Do not perform recursive
34873         inlining on always-inline nodes.
34874
34875 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
34876
34877         PR bootstrap/43699
34878         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
34879         for exprs satisfying handled_component_p.
34880
34881 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
34882
34883         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
34884         non-constant aggregate elements.
34885
34886         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
34887         is a real initialization.
34888
34889 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
34890
34891         PR c/36774
34892         * c-decl.c (start_function): Move forward check for nested function.
34893
34894 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
34895
34896         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
34897         * config/sh/sh.c: Include reload.h.
34898         (sh_legitimize_reload_address): New.
34899         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
34900         sh_legitimize_reload_address.
34901
34902 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
34903
34904         * config/sh/sh.md (*movqi_pop): New insn pattern.
34905         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
34906
34907 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34908
34909         * config/i386/i386.md (any_shiftrt): New code iterator.
34910         (shiftrt_insn): New code attribute.
34911         (shiftrt): Ditto.
34912         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
34913         using any_shiftrt code iterator.
34914         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
34915         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
34916         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
34917         pattern from corresponding peephole2 patterns.
34918         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
34919         using any_shiftrt code iterator.
34920         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
34921         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
34922         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
34923         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
34924         *{ashr,lshr}<mode>3_cmp_zext.
34925         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
34926
34927 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34928
34929         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
34930         scratch register.
34931         (*lshr<mode>3_cconly): Ditto.
34932
34933 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34934
34935         * config/i386/i386.md (lshr<mode>3): Macroize expander from
34936         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
34937         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
34938         pattern from *lshr{di,ti}3_1 and corresponding splitters using
34939         DWI mode iterator.
34940         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
34941         from corresponding peephole2 patterns.
34942         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
34943         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
34944         and *lshrdi3_1_rex64 using SWI mode iterator.
34945         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
34946         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
34947         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
34948         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
34949         and *lshrdi3_cmp_rex64 using SWI mode iterator.
34950         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
34951         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
34952         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
34953         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
34954         SWI mode iterator.
34955
34956 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
34957
34958         * config/i386/i386.md (ashr<mode>3): Macroize expander from
34959         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
34960         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
34961         pattern from *ashr{di,ti}3_1 and corresponding splitters using
34962         DWI mode iterator.
34963         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
34964         from corresponding peephole2 patterns.
34965         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
34966         (ashrsi3_cvt): Rename from ashrsi3_31.
34967         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
34968         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
34969         and x86_64_shift_adj_3 using SWI48 mode iterator.
34970         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
34971         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
34972         and *ashrdi3_1_rex64 using SWI mode iterator.
34973         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
34974         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
34975         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
34976         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
34977         and *ashrdi3_cmp_rex64 using SWI mode iterator.
34978         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
34979         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
34980         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
34981         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
34982         SWI mode iterator.
34983         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
34984         * config/i386/i386.c (ix86_split_ashr): Update for renamed
34985         x86_shift<mode>_adj_3 expanders.
34986
34987 2010-04-10  Wei Guozhi  <carrot@google.com>
34988
34989         PR target/42601
34990         * config/arm/arm.c (arm_pic_static_addr): New function.
34991         (legitimize_pic_address): Call arm_pic_static_addr when it detects
34992         a static symbol.
34993         (arm_output_addr_const_extra): Output expression for new pattern.
34994         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
34995
34996 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
34997
34998         * ira-costs.c (record_reg_classes): Ignore alternatives that are
34999         not enabled.
35000
35001         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
35002         * web.c: Include "insn-config.h" and "recog.h".
35003         (union_match_dups): New function.
35004         (web_main): Call it.
35005         (union_defs): Don't try to recognize match_dups.
35006
35007         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
35008         if doing so would replace the entire pattern.
35009
35010 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
35011
35012         PR target/43707
35013         PR target/43709
35014         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
35015         and splitter pattern.  Change splitter operand 1 predicate to
35016         nonmemory_operand.
35017
35018 2010-04-09  Martin Jambor  <mjambor@suse.cz>
35019
35020         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
35021         lattices are addresses of CONST_DECLs with the same initial value.
35022         (ipcp_print_all_lattices): Print values of CONST_DECLs.
35023         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
35024
35025 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
35026             Bernd Schmidt  <bernds@codesourcery.com>
35027
35028         * loop-invariant.c (replace_uses): New static function.
35029         (move_invariant_reg): Use it to ensure we can replace the uses.
35030
35031 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
35032
35033         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
35034         function template.
35035         (picochip_override_options): Enable section anchors only above -O1.
35036         (picochip_reorg): Fixed a couple of build warnings.
35037
35038 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35039
35040         * configure.ac (plugin -rdynamic test): Log result.
35041         * configure: Regenerate.
35042         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
35043         (RDYNAMIC_SPEC): Define.
35044         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
35045
35046 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35047
35048         * configure.ac: Determine Sun ld version numbers.
35049         (comdat_group): Restrict GNU ld version checks to gld.
35050         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
35051         (enable_comdat): Support --enable-comdat.
35052         * configure: Regenerate.
35053         * doc/install.texi (Configuration): Document --enable-comdat.
35054
35055 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35056
35057         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
35058         * config/sol2-gld.h: ... here.
35059         * config.gcc (sparc*-*-solaris2*): Reflect this.
35060         (i[34567]86-*-solaris2*): Use it.
35061
35062 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
35063
35064         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
35065         setup_clocks_p.
35066         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
35067
35068 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35069
35070         PR 42965
35071         * diagnostic.c (diagnostic_initialize): Initialize
35072         some_warnings_are_errors.
35073         (diagnostic_finish): New.
35074         (diagnostic_action_after_output): Call it before exiting.
35075         (diagnostic_report_diagnostic): Do not print message here. Set
35076         some_warnings_are_errors.
35077         * diagnostic.h (diagnostic_context): Delete
35078         issue_warnings_are_errors_message. Add some_warnings_are_errors.
35079         (diagnostic_finish): Declare.
35080         * toplev.c (toplev_main): Call it before exit.
35081
35082 2010-04-09  Jason Merrill  <jason@redhat.com>
35083
35084         PR c++/42623
35085         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
35086         for incomplete type.
35087
35088         PR c++/41788
35089         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
35090         based on a warning flag.
35091
35092 2010-04-09  Richard Guenther  <rguenther@suse.de>
35093
35094         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
35095
35096 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
35097
35098         PR bootstrap/43684
35099         * varasm.c (default_assemble_visibility): Wrap vars that are
35100         set, but unused, by targets without GAS.
35101         * config/rs6000/rs6000.c (paired_emit_vector_compare):
35102         Remove set, but unused, vars.
35103         (rs6000_legitimize_tls_address): Likewise.
35104         (altivec_expand_dst_builtin): Likewise.
35105         * config/darwin.c (machopic_classify_symbol): Likewise.
35106         (machopic_indirection_name): Likewise.
35107
35108 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
35109
35110         * config/i386/i386.md (DWI): New mode iterator.
35111         (S): New mode attribute.
35112         (shift_operand): Ditto.
35113         (shift_immediate_operand): Ditto.
35114         (ashl_input_operand): Ditto.
35115         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
35116         using SDWIM mode iterator.
35117         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
35118         pattern from *ashl{di,ti}3_1 and corresponding splitters using
35119         DWI mode iterator.
35120         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
35121         from corresponding peephole2 patterns.
35122         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
35123         and x86_64_shift_adj_1 using SWI48 mode iterator.
35124         (x86_shift<mode>_adj_2): Ditto.
35125         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
35126         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
35127         using SWI48 mode iterator.
35128         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
35129         *ashldi3_cmp_rex64 using SWI mode iterator.
35130         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
35131         *ashldi3_cconly_rex64 using SWI mode iterator.
35132         * config/i386/i386.c (ix86_split_ashl): Update for renamed
35133         x86_shift<mode>_adj_{1,2}.
35134         (ix86_split_ashr): Ditto.
35135         (ix86_split_lshr): Ditto.
35136
35137 2010-04-09  Richard Guenther  <rguenther@suse.de>
35138
35139         * target.h (builtin_conversion): Pass in input and output types.
35140         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
35141         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
35142         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
35143         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
35144
35145         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
35146         Handle AVX modes.
35147         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
35148
35149 2010-04-09  Richard Guenther  <rguenther@suse.de>
35150
35151         PR target/43152
35152         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
35153
35154 2010-04-09  Richard Guenther  <rguenther@suse.de>
35155
35156         * tree-vectorizer.h (struct _stmt_vec_info): Document
35157         that vectype is the type of the LHS.
35158         (supportable_widening_operation, supportable_narrowing_operation):
35159         Get both input and output vector types as arguments.
35160         (vect_is_simple_use_1): Declare.
35161         (get_same_sized_vectype): Likewise.
35162         * tree-vect-loop.c (vect_determine_vectorization_factor):
35163         Set STMT_VINFO_VECTYPE to the vector type of the def.
35164         (vectorizable_reduction): Adjust.
35165         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
35166         Adjust.  Specify the output vector type.
35167         (vect_pattern_recog_1): Adjust.
35168         * tree-vect-stmts.c (get_same_sized_vectype): New function.
35169         (vectorizable_call): Adjust.
35170         (vectorizable_conversion): Likewise.
35171         (vectorizable_operation): Likewise.
35172         (vectorizable_type_demotion): Likewise.
35173         (vectorizable_type_promotion): Likewise.
35174         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
35175         the def.
35176         (vect_is_simple_use_1): New function.
35177         (supportable_widening_operation): Get both input and output
35178         vector types.
35179         (supportable_narrowing_operation): Likewise.
35180         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
35181
35182 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
35183
35184         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
35185         __thiscall and _thiscall as predefined macros.
35186         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
35187         thiscall attribute handling.
35188         (ix86_comp_type_attributes): Likewise.
35189         (ix86_function_regparm): Likewise.
35190         (ix86_return_pops_args): Likewise.
35191         (init_cumulative_args): Likewise.
35192         (find_drap_reg): Likewise.
35193         (ix86_static_chain): Likewise.
35194         (x86_this_parameter): Likewise.
35195         (x86_output_mi_thunk): Likewise.
35196         (ix86_attribute_table): Add description for thiscall attribute.
35197         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
35198         * doc/extend.texi: Add documentation for thiscall.
35199
35200 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35201
35202         PR c++/28584
35203         * c.opt (Wint-to-pointer-cast): Available in C++.
35204         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
35205
35206 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
35207
35208         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
35209         * calls.c (expand_call): Pass the function type to aggregate_value_p.
35210         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
35211         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
35212         function type instead.  Reorder and simplify checks.
35213
35214         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
35215
35216 2010-04-08  Jing Yu  <jingyu@google.com>
35217             Zdenek Dvorak  <ook@ucw.cz>
35218
35219         PR tree-optimization/42720
35220         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
35221         loop unswitch conditions here from ...
35222         (tree_unswitch_single_loop): ... here.
35223
35224 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
35225
35226         * tree-if-conv.c: Fix comments and simplify logic.
35227
35228 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
35229
35230         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
35231         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
35232         (main_tree_if_conversion): Update call to tree_if_conversion.
35233
35234 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35235
35236         PR 42485
35237         * doc/invoke.texi (-b,-V): Delete.
35238         * doc/tm.texi: Do not mention -b.
35239         * gcc.c (display_help): Delete -b and -V.
35240         (process_command): Delete -b and -V.
35241         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
35242
35243 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
35244             Wolfgang Gellerich  <gellerich@de.ibm.com>
35245
35246         Implement target hook for loop unrolling
35247         * target.h (loop_unroll_adjust): Add a new target hook function.
35248         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
35249         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
35250         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
35251         (s390_loop_unroll_adjust): Implement the new target hook for s390.
35252         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
35253         target hook.
35254         (decide_unroll_stupid): Likewise.
35255
35256 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35257
35258         PR target/43643
35259         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
35260
35261 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35262
35263         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
35264         (Specific, *-*-solaris2*): Likewise.
35265         Don't prefer Sun as over GNU as.
35266
35267 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
35268
35269         * config/s390/s390.c (override_options): Adjust the z10 defaults
35270         for max-unroll-times, max-completely-peeled-insns
35271         and max-completely-peel-times.
35272
35273 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35274
35275         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
35276         instructions for z10.
35277         (s390_expand_setmem): Likewise.
35278         (s390_expand_cmpmem): Likewise.
35279
35280 2010-04-08  Richard Guenther  <rguenther@suse.de>
35281
35282         PR tree-optimization/43679
35283         * tree-ssa-pre.c (eliminate): Only propagate copies.
35284
35285 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
35286
35287         PR bootstrap/43681
35288         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
35289         set but not used variable warning.
35290
35291 2010-04-08  Wei Guozhi  <carrot@google.com>
35292
35293         PR target/41653
35294         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
35295         (arm_size_rtx_costs): Call the new function when optimized for size.
35296
35297 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
35298
35299         PR debug/43670
35300         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
35301         op0 is not a MEM, just return NULL instead of assertion
35302         failure.
35303         (discover_nonconstant_array_refs): Don't walk debug stmts.
35304
35305 2010-04-08  Doug Kwan  <dougkwan@google.com>
35306
35307         * configure.ac: Recognize gold and do not use its version number
35308         to test ld features.
35309         * configure: Regenerate.
35310
35311 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
35312
35313         PR middle-end/40815
35314         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
35315         (negate_value): Move code to push elements to broken_up_substracts ...
35316         (eliminate_plus_minus_pair): ... here.  Push operands that have no
35317         negative pair to plus_negates.
35318         (repropagate_negates, init_reassoc, fini_reassoc): Update.
35319
35320 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35321
35322         * doc/install.texi (Configuration): Move description of
35323         --enable-lto, --with-libelf*, --enable-gold from Java section to
35324         general section.
35325
35326         * doc/generic.texi (Working with declarations)
35327         (Function Properties, C and C++ Trees): Fix typos.
35328         * doc/sourcebuild.texi (Top Level): Likewise.
35329
35330 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
35331
35332         PR c/18624
35333         * tree.h (DECL_READ_P): Define.
35334         (struct tree_decl_common): Add decl_read_flag.
35335         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
35336         a set but not used warning.
35337         (merge_decls): Merge DECL_READ_P flag.
35338         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
35339         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
35340         * c-common.c (handle_used_attribute, handle_unused_attribute):
35341         Likewise.
35342         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
35343         New prototypes.
35344         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
35345         New functions.
35346         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
35347         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
35348         c_parser_binary_expression, c_parser_cast_expression,
35349         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
35350         Call default_function_array_read_conversion instead of
35351         default_function_array_conversion where needed.
35352         (c_parser_unary_expression, c_parser_conditional_expression,
35353         c_parser_postfix_expression_after_primary, c_parser_initelt):
35354         Likewise.  Call mark_exp_read where needed.
35355         (c_parser_statement_after_labels, c_parser_asm_operands,
35356         c_parser_typeof_specifier, c_parser_sizeof_expression,
35357         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
35358         where needed.
35359         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
35360         New.
35361         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
35362         (warn_unused_but_set_parameter): Default to warn_unused
35363         && extra_warnings.
35364         * doc/invoke.texi: Document -Wunused-but-set-variable and
35365         -Wunused-but-set-parameter.
35366
35367         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
35368         used count variable.
35369         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
35370         when operandN variables aren't used in the body of the expander
35371         or splitter.
35372         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
35373         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
35374         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
35375         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
35376         FOR_EACH_IMM_USE_ON_STMT): Likewise.
35377         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
35378         * tree.c (PROCESS_ARG): Likewise.
35379
35380 2010-04-07  Simon Baldwin  <simonb@google.com>
35381
35382         * diagnostic.h (diagnostic_override_option_index): New macro to
35383         set a diagnostic's option_index.
35384         * c-tree.h (c_cpp_error): Add warning reason argument.
35385         * opts.c (_warning_as_error_callback): New.
35386         (register_warning_as_error_callback): Store callback for
35387         warnings enabled via enable_warning_as_error.
35388         (enable_warning_as_error): Call callback, minor code tidy.
35389         * opts.h (register_warning_as_error_callback): Declare.
35390         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
35391         response to -Werror=.
35392         (c_common_init_options): Register warning_as_error_callback in opts.c.
35393         * common.opt: Add -Wno-cpp option.
35394         * c-common.c (struct reason_option_codes_t): Map cpp warning
35395         reason codes to gcc option indexes.
35396         * (c_option_controlling_cpp_error): New function, lookup the gcc
35397         option index for a cpp warning reason code.
35398         * (c_cpp_error): Add warning reason argument, call
35399         c_option_controlling_cpp_error for diagnostic_override_option_index.
35400         * doc/invoke.texi: Document -Wno-cpp.
35401
35402 2010-04-07  Richard Guenther  <rguenther@suse.de>
35403
35404         * ipa-reference.c (mark_load): Use get_base_address.
35405         (mark_store): Likewise.
35406
35407         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
35408         inserting GIMPLE_NOPs into the IL.
35409         * tree-ssa-structalias.c (get_constraint_for_component_ref):
35410         Explicitly strip handled components and indirect references.
35411
35412         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
35413         folding address expressions.
35414         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
35415         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
35416         operand_equal_p to compare decls.
35417         (ptr_deref_may_alias_decl_p): Likewise.
35418         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
35419         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
35420         Handle reversed comparison ops.
35421         * tree-sra.c (asm_visit_addr): Use get_base_address.
35422         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
35423         * ipa-reference.c (mark_address): Use get_base_address.
35424
35425 2010-04-07  Richard Guenther  <rguenther@suse.de>
35426
35427         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
35428         Propagate constants everywhere.
35429
35430 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
35431
35432         PR debug/43516
35433         * tree.c (MAX_INT_CACHED_PREC): Define.
35434         (nonstandard_integer_type_cache): New array.
35435         (build_nonstandard_integer_type): Cache results for precision
35436         <= MAX_INT_CACHED_PREC.
35437
35438 2010-04-07  Richard Guenther  <rguenther@suse.de>
35439
35440         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
35441         -fargument-noalias-global, -fargument-noalias-anything): Remove.
35442         * common.opt: Likewise.
35443         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
35444         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
35445         (nonoverlapping_memrefs_p): Likewise.
35446         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
35447         * opts.c (common_handle_option): Handle OPT_fargument_alias,
35448         OPT_fargument_noalias, OPT_fargument_noalias_anything and
35449         OPT_fargument_noalias_global for backward compatibility.
35450
35451 2010-04-07  Richard Guenther  <rguenther@suse.de>
35452
35453         PR tree-optimization/43270
35454         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
35455         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
35456         * tree-ssa-pre.c (phi_translate_1): Adjust.
35457         (fully_constant_expression): Split out vn_reference handling to ...
35458         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
35459         Fold reads from constant strings.
35460         (vn_reference_lookup): Handle fully constant references.
35461         (vn_reference_lookup_pieces): Likewise.
35462         * Makefile.in (expmed.o-warn): Add -Wno-error.
35463
35464 2010-04-07  Martin Jambor  <mjambor@suse.cz>
35465
35466         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
35467
35468 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
35469
35470         PR driver/41594
35471         * gcc.c: Add -static-libstdc++ to list of recognized options.
35472
35473 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35474
35475         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
35476
35477 2010-04-07  Richard Guenther  <rguenther@suse.de>
35478
35479         PR middle-end/42617
35480         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
35481         bases build simple mem attributes to retain points-to information.
35482
35483 2010-04-07  Richard Guenther  <rguenther@suse.de>
35484
35485         PR middle-end/42617
35486         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
35487         preserve points-to related information.
35488
35489 2010-04-07  Richard Guenther  <rguenther@suse.de>
35490
35491         PR middle-end/42617
35492         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
35493         discard plain indirect references.
35494         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
35495         * tree.c (tree_nop_conversion): Likewise.
35496
35497 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
35498
35499         PR debug/43628
35500         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
35501
35502 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
35503
35504         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
35505         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
35506
35507 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35508
35509         * tree-if-conv.c: Fix indentation and comments.
35510
35511 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35512
35513         * tree-if-conv.c: Sort static functions in topological order.
35514
35515 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35516
35517         * tree-if-conv.c: Fix indentation and comments.
35518
35519 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35520
35521         PR middle-end/43519
35522         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
35523         lang_hooks.types.type_for_size instead of
35524         build_nonstandard_integer_type.
35525         When converting an unsigned type to signed, double its precision.
35526         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
35527         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
35528         (graphite_create_new_loop_guard): When ub + 1 wraps around,
35529         use lb <= ub.
35530
35531 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35532
35533         PR middle-end/43519
35534         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
35535         POINTER_PLUS_EXPR for pointer types.
35536
35537 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35538
35539         PR middle-end/43519
35540         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
35541         * graphite-clast-to-gimple.c: Include langhooks.h.
35542         (max_signed_precision_type): New.
35543         (max_precision_type): Takes two types as arguments.
35544         (precision_for_value): New.
35545         (precision_for_interval): New.
35546         (gcc_type_for_interval): New.
35547         (gcc_type_for_value): New.
35548         (gcc_type_for_clast_term): New.
35549         (gcc_type_for_clast_red): New.
35550         (gcc_type_for_clast_bin): New.
35551         (gcc_type_for_clast_expr): Split up into several functions.
35552         (gcc_type_for_clast_eq): Rewritten.
35553         (compute_bounds_for_level): New.
35554         (compute_type_for_level_1): New.
35555         (compute_type_for_level): New.
35556         (gcc_type_for_cloog_iv): Removed.
35557         (gcc_type_for_iv_of_clast_loop): Rewritten.
35558         (graphite_create_new_loop): Compute the lower and upper bound types
35559         with gcc_type_for_clast_expr.
35560         (graphite_create_new_loop_guard): Same.
35561         (find_cloog_iv_in_expr): Removed.
35562         (compute_cloog_iv_types_1): Removed.
35563         (compute_cloog_iv_types): Removed.
35564         (gloog): Do not call compute_cloog_iv_types.
35565         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
35566         GBB_CLOOG_IV_TYPES.
35567         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
35568         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
35569         (GBB_CLOOG_IV_TYPES): Removed.
35570
35571 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35572
35573         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
35574         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
35575         (detect_commutative_reduction): Same.
35576
35577 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35578
35579         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
35580         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
35581         argument.
35582         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
35583         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
35584         (rewrite_commutative_reductions_out_of_ssa): Same.
35585         * passes.c (execute_function_todo): Call verify_ssa for every pass
35586         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
35587         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
35588         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
35589         with an extra argument.
35590         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
35591         verify_ssa only when the extra argument is true.
35592         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
35593         with an extra argument.
35594         (tree_transform_and_unroll_loop): Same.
35595
35596 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35597
35598         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
35599         for all the passes of the LNO having LOOP_CLOSED_SSA.
35600         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
35601         * tree-loop-distribution.c (pass_loop_distribution): Same.
35602         * tree-pass.h (TODO_verify_loops): Removed.
35603         * tree-ssa-loop.c (pass_tree_loop_init): Same.
35604         (pass_lim): Same.
35605         (pass_tree_unswitch): Same.
35606         (pass_predcom): Same.
35607         (pass_vectorize): Same.
35608         (pass_linear_transform): Same.
35609         (pass_graphite_transforms): Same.
35610         (pass_iv_canon): Same.
35611         (pass_complete_unroll): Same.
35612         (pass_complete_unrolli): Same.
35613         (pass_parallelize_loops): Same.
35614         (pass_loop_prefetch): Same.
35615         (pass_iv_optimize): Same.
35616
35617 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
35618
35619         PR middle-end/32824
35620         * passes.c (init_optimization_passes): Move pass_lim before
35621         pass_copy_prop and pass_dce_loop.
35622
35623 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
35624
35625         PR target/43667
35626         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
35627         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
35628         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
35629         MULTI_* defines for 4 argument vpermil2p* builtins.
35630
35631 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
35632
35633         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
35634         * config/i386/i386.c (x86_maybe_negate_const_int): New.
35635         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
35636         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
35637         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
35638         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
35639         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
35640         Use x86_maybe_negate_const_int to output insn mnemonic.
35641         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
35642         check from instruction predicate.  Update comments.
35643         * config/i386/sync.md (sync_add<mode>): Use
35644         x86_maybe_negate_const_int to output insn mnemonic.
35645
35646 2010-04-06  Jan Hubicka  <jh@suse.cz>
35647
35648         PR tree-optimization/42906
35649         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
35650         IGNORE_SELF argument.  Set visited_control_parents for fully
35651         processed BBs.
35652         (find_obviously_necessary_stmts): Update call of
35653         mark_control_dependent_edges_necessary.
35654         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
35655
35656 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
35657
35658         * config/i386/i386.md: Remove comment about 'e' and 'E'
35659         operand modifier.
35660
35661 2010-04-06  Richard Guenther  <rguenther@suse.de>
35662
35663         PR tree-optimization/43627
35664         * tree-vrp.c (extract_range_from_unary_expr): Widenings
35665         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
35666         not varying.
35667
35668 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
35669
35670         * BASE-VER: Change to 4.6.0.
35671
35672         PR target/43638
35673         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
35674         handling.
35675
35676 2010-04-06  Richard Guenther  <rguenther@suse.de>
35677
35678         PR middle-end/43661
35679         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
35680
35681 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35682
35683         * doc/invoke.texi (Optimize Options): Document that LTO
35684         won't remove object access purely due to incompatible
35685         declarations.
35686
35687 2010-04-04  Matthias Klose  <doko@ubuntu.com>
35688
35689         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
35690         Initialize variable.
35691
35692 2010-04-03  Richard Guenther  <rguenther@suse.de>
35693
35694         PR middle-end/42509
35695         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
35696         require a non-NULL MEM_OFFSET.
35697
35698 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
35699
35700         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
35701         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
35702         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
35703         config/alpha/predicates.md, config/arm/arm.md,
35704         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
35705         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
35706         config/darwin9.h, config/darwin.c, config/darwin.h,
35707         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
35708         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
35709         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
35710         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
35711         config/mips/mips.md, config/mn10300/mn10300.c,
35712         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
35713         config/rs6000/aix.h, config/rs6000/dfp.md,
35714         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
35715         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
35716         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
35717         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
35718         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
35719         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
35720         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
35721         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
35722         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
35723         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
35724         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
35725         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
35726         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
35727         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
35728         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
35729         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
35730         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
35731         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
35732         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
35733         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
35734         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
35735         opt-functions.awk, opth-gen.awk, params.def, passes.c,
35736         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
35737         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
35738         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
35739         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
35740         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
35741         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
35742         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
35743         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
35744         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
35745         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
35746         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
35747         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
35748         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
35749         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
35750
35751 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35752
35753         PR other/43620
35754         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
35755         * aclocal.m4: Regenerate.
35756
35757 2010-04-02  Richard Guenther  <rguenther@suse.de>
35758
35759         PR tree-optimization/43629
35760         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
35761         if we have seen a constant value.
35762
35763 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
35764
35765         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
35766
35767 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
35768
35769         PR target/43469
35770         * arm.c (legitimize_tls_address): Adjust call to
35771         gen_tls_load_dot_plus_four.
35772         (arm_note_pic_base): New function.
35773         (arm_cannot_copy_insn_p): Use it.
35774         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
35775         constraint.
35776
35777 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35778
35779         PR bootstrap/43531
35780
35781         Revert:
35782         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35783
35784         * Makefile.in ($(out_object_file)): Depend on
35785         gt-$(basename $(notdir $(out_file))).h.
35786
35787 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
35788
35789         * config.gcc (lm32-*-rtems*): Add t-lm32.
35790
35791 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
35792
35793         * config.gcc: Add lm32-*-rtems*.
35794         * config/lm32/rtems.h: New file.
35795
35796 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
35797
35798         PR target/42609
35799         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
35800
35801 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
35802
35803         * dwarf2out.c (output_compilation_unit_header): For
35804         -gdwarf-4 use version 4 instead of version 3.
35805         (output_line_info): For version 4 and above emit additional
35806         maximum ops per insn header field.
35807         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
35808
35809         * dwarf2out.c (is_c_family, is_java): Remove.
35810         (lower_bound_default): New function.
35811         (add_bound_info, gen_descr_array_type_die): Use it.
35812
35813 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
35814
35815         PR debug/43325
35816         * dwarf2out.c (gen_variable_die): Allow debug info for variable
35817         re-declaration when it happens in a function.
35818
35819 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
35820
35821         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
35822         (cgraph_remove_function_insertion_hook): Same.
35823         (cgraph_call_function_insertion_hooks): Same.
35824
35825 2010-04-01  Richard Guenther  <rguenther@suse.de>
35826
35827         PR middle-end/43614
35828         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
35829         and TREE_THIS_VOLATILE.
35830         (copy_ref_info): Likewise.
35831         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
35832         * tree.c (build6_stat): Ignore side-effects of all but arg5
35833         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
35834         TARGET_MEM_REF.
35835
35836 2010-04-01  Richard Guenther  <rguenther@suse.de>
35837
35838         PR tree-optimization/43607
35839         * ipa-type-escape.c (check_call): Do not access non-existing
35840         arguments.
35841
35842 2010-04-01  Richard Guenther  <rguenther@suse.de>
35843
35844         PR middle-end/43602
35845         Revert
35846         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
35847                     Jack Howarth  <howarth@bromo.med.uc.edu>
35848
35849         * tree-profile.c (tree_init_ic_make_global_vars): Make static
35850         variables TLS.
35851
35852 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35853
35854         * doc/install.texi (Prerequisites): Document libelf usability on
35855         IRIX 5/6 and Solaris 2.
35856         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
35857         Update GNU as, GNU ld requirements.
35858         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
35859         Document Sun Studio compiler download.
35860         Update and simplify as, ld recommendations.
35861         (Specific, *-*-solaris2.7): Note obsoletion, removal.
35862
35863 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35864
35865         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
35866         with_tune_32 to pentium4.
35867
35868 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
35869
35870         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
35871
35872 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35873
35874         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
35875         obsoletion, removal.
35876         Update IDO URL.
35877         Document GNU as requirement.
35878         Update configure requirements.
35879         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
35880         Recomment IRIX 6.5.18+.
35881         Document IDF/IDL requirement.
35882         Document GNU as requirement.
35883         Document GNU ld bootstrap failure.
35884         Remove freeware.sgi.com reference.
35885
35886 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35887
35888         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
35889         UNIX V4.0, V5.0 obsoletion, removal.
35890         Remove --with-gc=simple reference.
35891         Update VM requirements during bootstrap.
35892         Remove -oldas bootstrap description.
35893         Update binutils reference.
35894         Remove comparison failure note.
35895
35896 2010-03-31  Richard Guenther  <rguenther@suse.de>
35897             Zdenek Dvorak  <ook@ucw.cz>
35898             Sebastian Pop  <sebastian.pop@amd.com>
35899
35900         PR middle-end/43464
35901         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
35902         with multiple arguments.
35903         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
35904
35905 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35906
35907         * graphite-dependences.c (print_pddr): Call print_pdr with an
35908         extra argument.
35909         * graphite-poly.c (debug_pdr): Add an extra argument for the
35910         verbosity level.
35911         (print_pdr): Same.
35912         (print_pbb_domain): Same.
35913         (print_pbb): Same.
35914         (print_scop_context): Same.
35915         (print_scop): Same.
35916         (print_cloog): Same.
35917         (debug_pbb_domain): Same.
35918         (debug_pbb): Same.
35919         (print_pdrs): Same.
35920         (debug_pdrs): Same.
35921         (debug_scop_context): Same.
35922         (debug_scop): Same.
35923         (debug_cloog): Same.
35924         (print_scop_params): Same.
35925         (debug_scop_params): Same.
35926         (print_iteration_domain): Same.
35927         (print_iteration_domains): Same.
35928         (debug_iteration_domain): Same.
35929         (debug_iteration_domains): Same.
35930         (print_scattering_function): Same.
35931         (print_scattering_functions): Same.
35932         (debug_scattering_function): Same.
35933         (debug_scattering_functions): Same.
35934         * graphite-poly.h (debug_pdr): Update declaration.
35935         (print_pdr): Same.
35936         (print_pbb_domain): Same.
35937         (print_pbb): Same.
35938         (print_scop_context): Same.
35939         (print_scop): Same.
35940         (print_cloog): Same.
35941         (debug_pbb_domain): Same.
35942         (debug_pbb): Same.
35943         (print_pdrs): Same.
35944         (debug_pdrs): Same.
35945         (debug_scop_context): Same.
35946         (debug_scop): Same.
35947         (debug_cloog): Same.
35948         (print_scop_params): Same.
35949         (debug_scop_params): Same.
35950         (print_iteration_domain): Same.
35951         (print_iteration_domains): Same.
35952         (debug_iteration_domain): Same.
35953         (debug_iteration_domains): Same.
35954         (print_scattering_function): Same.
35955         (print_scattering_functions): Same.
35956         (debug_scattering_function): Same.
35957         (debug_scattering_functions): Same.
35958
35959 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35960
35961         * graphite-poly.c (print_scattering_function_1): New.
35962         (print_scattering_function): Call it.
35963         (print_scop_params): Remove spaces at the end of lines.
35964         (print_cloog): New.
35965         (debug_cloog): New.
35966         * graphite-poly.h (print_cloog): Declared.
35967         (debug_cloog): Declared.
35968
35969 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35970
35971         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
35972         in loop->header.
35973         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
35974         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
35975         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
35976         to switch between adding the IV bump in loop->latch or in loop->header.
35977
35978 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35979
35980         * graphite-poly.c (print_scattering_function): Pretty print following
35981         the scoplib format.
35982         (print_pdr): Same.
35983         (print_pbb_domain): Same.
35984         (dump_gbb_cases): Same.
35985         (dump_gbb_conditions): Same.
35986         (print_pdrs): Same.
35987         (print_pbb): Same.
35988         (print_scop_params): Same.
35989         (print_scop_context): Same.
35990         (print_scop): Same.
35991         (print_pbb_body): New.
35992         (lst_indent_to): New.
35993         (print_lst): Start new lines with a #.
35994         * graphite-poly.h (pbb_bb): New.
35995         (pbb_index): Use pbb_bb.
35996         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
35997         disjuncts.
35998         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
35999
36000 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
36001
36002         * dwarf2out.c (size_of_die): For -gdwarf-4 use
36003         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
36004         and 0 instead of 1 for dw_val_class_flag.
36005         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
36006         dw_val_class_range_list, dw_val_class_loc_list,
36007         dw_val_class_lineptr and dw_val_class_macptr, use
36008         DW_FORM_flag_present for dw_val_class_flag and
36009         DW_FORM_exprloc for dw_val_class_loc.
36010         (output_die): For -gdwarf-4 print dw_val_class_loc
36011         size as uleb128 instead of 1 or 2 bytes and don't print
36012         anything for dw_val_class_flag.
36013
36014         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
36015         instead of cselib_lookup following by tweaking locs->setting_insn.
36016
36017         PR bootstrap/43596
36018         * cselib.c (cselib_process_insn): Clear cselib_current_insn
36019         even before returning from label, setjmp call or volatile asm
36020         handling.
36021
36022 2010-03-31  Richard Guenther  <rguenther@suse.de>
36023
36024         PR middle-end/43600
36025         * cgraphunit.c (cgraph_output_in_order): Do not allocate
36026         temporary data on stack.
36027
36028 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36029
36030         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
36031         (PUSHSECTION_ASM_OP): Remove.
36032         (POPSECTION_ASM_OP): Remove.
36033         (PUSHSECTION_FORMAT): Remove.
36034         * config/sol2.h (PUSHSECTION_FORMAT): Define.
36035         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
36036         * config/sol2.c (solaris_output_init_fini): Use it.
36037
36038 2010-03-31  Jie Zhang  <jie@codesourcery.com>
36039
36040         PR 43574
36041         * opt-functions.awk (var_type_struct): Use signed char type
36042         for simple variables.
36043
36044 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36045
36046         * config/sol2.c: Include output.h.
36047         (solaris_assemble_visibility): New function.
36048         * config/t-sol2 (sol2.o): Add output.h dependency.
36049         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
36050         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
36051         Redefine.
36052
36053 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
36054
36055         PR target/43580
36056         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
36057         V2SImode or XFmode on PRE_DEC.
36058
36059         PR debug/43557
36060         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
36061         BLKmode.
36062
36063 2010-03-31  Jie Zhang  <jie@codesourcery.com>
36064
36065         PR 43562
36066         * reload.h (caller_save_initialized_p): Declare.
36067         * toplev.c (backend_init_target): Don't call
36068         init_caller_save but set caller_save_initialized_p to false.
36069         * caller-save.c (caller_save_initialized_p): Define.
36070         (init_caller_save): Check caller_save_initialized_p.
36071         * ira.c (ira): Call init_caller_save if flag_caller_saves.
36072
36073 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36074
36075         PR target/39048
36076         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
36077         and soft-fp/t-softfp to tmake_file.
36078         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
36079         (LIBGCC2_TF_CEXT): Define.
36080         (TF_SIZE): Define.
36081
36082 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
36083
36084         PR debug/42977
36085         * cselib.c (n_useless_values): Document handling of debug locs.
36086         (n_useless_debug_values, n_debug_values): New variables.
36087         (new_elt_loc_list): Don't add to debug values, keep count.
36088         (promote_debug_loc): New.
36089         (cselib_reset_table): Zero new variables.
36090         (entry_and_rtx_equal_p): Promote debug locs.
36091         (discard_useless_locs): Increment n_useless_debug_values for
36092         debug values.
36093         (remove_useless_values): Adjust n_useless_values and n_debug_values
36094         with n_useless_debug_values.
36095         (add_mem_for_addr): Promote debug locs.
36096         (cselib_lookup_mem): Likewise.
36097         (cselib_lookup_addr): Renamed to...
36098         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
36099         (cselib_log_lookup): ... this.  Turn into...
36100         (cselib_lookup_addr): ... new wrapper.
36101         (cselib_lookup_from_insn): New.
36102         (cselib_invalidate_regno): Increment n_useless_debug_values for
36103         debug values.
36104         (cselib_invalidate_mem): Likewise.
36105         (cselib_process_insn): Take n_deleted and n_debug_values into
36106         account to guard remove_useless_value call.
36107         (cselib_finish): Zero n_useless_debug_values.
36108         * cselib.h (cselib_lookup_from_insn): Declare.
36109         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
36110         (sched_analyze_2): Likewise.
36111
36112 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
36113
36114         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
36115         functions.
36116         (adjust_mems): Replace narrowing SUBREG of expression containing
36117         just PLUS, MINUS, MULT and ASHIFT of registers and constants
36118         with operations in the narrower mode.
36119
36120         PR debug/43593
36121         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
36122         regs_invalidated_by_call instead all call_used_reg_set registers.
36123
36124 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
36125
36126         PR middle-end/43430
36127         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
36128         pointer comparisons with types_compatible_p.
36129         * tree-vect-stmts.c (vectorizable_call): Same.
36130         (vectorizable_condition): Same.
36131
36132 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36133
36134         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
36135         stack check if the mask would be zero.
36136
36137 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
36138             Jack Howarth  <howarth@bromo.med.uc.edu>
36139
36140         * tree-profile.c (tree_init_ic_make_global_vars): Make static
36141         variables TLS.
36142
36143 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
36144
36145         PR other/25232
36146         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
36147         and __unordtf2.
36148         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
36149         Include ___unordxf2 and ___unordtf2.
36150         * config/i386/libgcc-glibc.ver: Do not define inheritance from
36151         GCC_4.4.0 here.
36152
36153 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
36154
36155         * config/lm32/t-lm32: New file.
36156         * config.gcc: Use the above file when targetting lm32.
36157
36158 2010-03-28  Duncan Sands  <baldrick@free.fr>
36159
36160         * Makefile.in (PLUGIN_HEADERS): Add except.h.
36161
36162 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
36163
36164         PR middle-end/43431
36165         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
36166         Improve vectorization cost model diagnostic.
36167
36168 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
36169
36170         PR middle-end/43436
36171         * tree-vect-data-refs.c (vect_analyze_data_refs): When
36172         compute_data_dependences_for_loop returns false, early exit
36173         and output an extra diagnostic for the failed data reference
36174         analysis.
36175
36176 2010-03-29  Richard Guenther  <rguenther@suse.de>
36177
36178         PR tree-optimization/43560
36179         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
36180         (can_sm_ref_p): Treat stores to readonly locations as trapping.
36181
36182 2010-03-29  Jie Zhang  <jie@codesourcery.com>
36183
36184         PR 43564
36185         * toplev.c (process_options): Set optimization_default_node
36186         and optimization_current_node.
36187         * opts.c (decode_options): Don't set optimization_default_node
36188         and optimization_current_node.
36189
36190 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
36191
36192         * config/rtems.h: Abandon -qrtems_debug.
36193
36194 2010-03-28  Jan Hubicka  <jh@suse.cz>
36195
36196         PR tree-optimization/43505
36197         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
36198         map should not be copied.
36199
36200 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36201
36202         PR middle-end/41674
36203         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
36204         cdtors, set DECL_PRESERVE_P.
36205         * ipa.c (cgraph_externally_visible_p): Return true if declaration
36206         should be preseved.
36207
36208 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
36209
36210         PR tree-optimization/43528
36211         * stor-layout.c (place_field): Check that constant fits into
36212         unsigned HWI when skipping calculation of MS bitfield layout.
36213
36214 2010-03-27  Jan Hubicka  <jh@suse.cz>
36215
36216         PR middle-end/43391
36217         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
36218         notice_global_symbol work.
36219
36220 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
36221
36222         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
36223         instead of dwarf2out_decl.
36224         (struct var_loc_node): Remove section_label field.
36225         (dwarf2out_function_decl): New function.
36226         (dwarf2out_var_location): Don't set section_label field.
36227         (dwarf2out_begin_function): Don't empty decl_loc_table here.
36228
36229 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
36230
36231         PR tree-optimization/43544
36232         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36233         First argument for builtin vectorized function hook is now a
36234         tree to be able to distinguish between machine specific and
36235         standard builtins.
36236         * targhooks.c (default_builtin_vectorized_function): Ditto.
36237         * targhooks.h (default_builtin_vectorized_function): Ditto.
36238         * target.h (struct gcc_target): Ditto.
36239         * tree-vect-stmts.c (vectorizable_function): Ditto.
36240         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
36241         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
36242         Ditto.
36243
36244 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
36245
36246         PR c/43381
36247         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
36248         nested binding iff it is a FUNCTION_DECL.
36249         (store_parm_decls_newstyle): Pass nested=true to bind for
36250         FUNCTION_DECLs amongst parameters.
36251
36252 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
36253
36254         * var-tracking.c (vt_expand_loc_callback): Don't run
36255         cselib_expand_value_rtx_cb in dummy mode if
36256         cselib_dummy_expand_value_rtx_cb returned false.
36257
36258         * var-tracking.c (emit_note_insn_var_location): For one part
36259         notes with offset 0, don't add EXPR_LIST around the location.
36260         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
36261         add_location_or_const_value_attribute): Adjust for that change.
36262
36263         PR debug/43540
36264         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
36265         into first operand and location into second.
36266         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
36267         dw_cfi_oprnd_loc for DW_CFA_expression.
36268         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
36269         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
36270         assume first argument is regnum and second argument is location.
36271
36272 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
36273
36274         PR target/42113
36275         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
36276         of scratch register to DImode.  Split to DImode comparison operator.
36277         Use SImode subreg of scratch register in the multiplication.
36278         (*cmp_sadd_sidi): Ditto.
36279         (*cmp_ssub_si): Ditto.
36280         (*cmp_ssub_sidi): Ditto.
36281
36282 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
36283
36284         PR target/43524
36285         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
36286         Remove invalid assert and wrong comment.
36287
36288 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
36289
36290         PR debug/43516
36291         * flags.h (final_insns_dump_p): New extern.
36292         * final.c (final_insns_dump_p): New variable.
36293         (rest_of_clean_state): Set it before -fdump-final-insns=
36294         dumping, clear afterwards.
36295         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
36296         MEM_ALIAS_SET on MEMs.
36297
36298 2010-03-26  David S. Miller  <davem@davemloft.net>
36299
36300         * configure.ac: Fix sparc GOTDATA_OP bug check.
36301         * configure: Rebuild.
36302
36303 2010-03-26  Alan Modra  <amodra@gmail.com>
36304
36305         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
36306
36307 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36308
36309         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
36310         TLS_SECTION_ASM_FLAG.
36311
36312 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
36313
36314         PR bootstrap/43511
36315         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
36316         Clear first_function_block_is_cold.
36317
36318         PR c/43385
36319         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
36320         argument if the argument is truth_value_p.
36321
36322 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
36323
36324         * config/rs6000/constraints.md: Update copyright year for my changes.
36325
36326         PR target/43484
36327         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
36328         used in reg+reg addressing, swap registers.
36329
36330 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
36331
36332         PR debug/43293
36333         * target.h (struct gcc_target): Add code_end hook.
36334         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
36335         if not yet defined.
36336         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
36337         * toplev.c (compile_file): Call targetm.asm_out.code_end
36338         hook before unwind info/debug info output.
36339         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
36340         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
36341         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
36342         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
36343         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
36344         * config/i386/i386.c (ix86_file_end): Renamed to...
36345         (ix86_code_end): ... this.  Make static.  Don't call
36346         file_end_indicate_exec_stack.  Emit unwind info using
36347         final_start_function/final_end_function.
36348         (darwin_x86_file_end): Remove.
36349         (TARGET_ASM_CODE_END): Define.
36350         * config/i386/i386.h (TARGET_ASM_FILE_END,
36351         NEED_INDICATE_EXEC_STACK): Don't define.
36352         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
36353         (TARGET_ASM_FILE_END): Define to darwin_file_end.
36354         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
36355         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
36356
36357         PR target/43498
36358         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
36359         at the beginning and final_end_function at the end.
36360         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
36361
36362 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36363
36364         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
36365         and Sun as TLS syntax.
36366         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
36367         * configure: Regenerate.
36368         * config.in: Regenerate.
36369         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
36370         (default_elf_asm_named_section): Use it.
36371         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
36372         (i386_output_dwarf_dtprel): Likewise.
36373         (output_addr_const_extra): Likewise.
36374         (output_pic_addr_const): Lowercase @GOTTPOFF.
36375         (output_addr_const_extra): Likewise.
36376         (output_pic_addr_const): Lowercase @GOTNTPOFF.
36377         (output_addr_const_extra): Likewise.
36378         (output_pic_addr_const): Lowercase @INDNTPOFF.
36379         (output_addr_const_extra): Likewise.
36380         (output_pic_addr_const): Lowercase @NTPOFF.
36381         (output_addr_const_extra): Likewise.
36382         (output_pic_addr_const): Lowercase @TPOFF.
36383         (output_addr_const_extra): Likewise.
36384         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
36385         (*tls_global_dynamic_64): Likewise.
36386         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
36387         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
36388
36389         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
36390         (ASM_OUTPUT_TLS_COMMON): Use it.
36391         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
36392
36393         PR target/38118
36394         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
36395         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
36396         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
36397         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
36398         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
36399         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
36400
36401 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36402
36403         * config/i386/i386.c (override_options): Don't accept
36404         -mtls-dialect=sun any longer.
36405         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
36406         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
36407         (*tls_local_dynamic_base_32_sun): Likewise.
36408         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
36409
36410 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
36411
36412         PR debug/43508
36413         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
36414         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
36415
36416         PR debug/43479
36417         * ira.c (adjust_cleared_regs): New function.
36418         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
36419
36420         PR debug/19192
36421         PR debug/43479
36422         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
36423         from gimple_block.
36424         * expr.c (expand_expr_real): Restore previous
36425         curr_insn_source_location and curr_insn_block after
36426         expand_expr_real_1 call.
36427         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
36428         instead of expand_expr_real_1.
36429
36430 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
36431
36432         PR rtl-optimization/43413
36433         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
36434         hard regs too.
36435
36436 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
36437
36438         PR target/43348
36439         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
36440         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
36441
36442 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
36443
36444         * config/i386/i386.c (ix86_target_string): Add -mfma.
36445         Fix a typo in comment.
36446
36447 2010-03-22  Mike Stump  <mikestump@comcast.net>
36448
36449         PR target/23071
36450         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
36451         Don't overly align based upon packed packed fields.
36452
36453 2010-03-22  Jason Merrill  <jason@redhat.com>
36454
36455         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
36456         Use () rather than [], and move before the element type.
36457
36458 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36459
36460         * doc/configfiles.texi (Configuration Files): Removed
36461         fixinc/Makefile*, intl/Makefile.*.
36462         * doc/makefile.texi: Fixed markup. Abstract from version
36463         control system used.
36464         (Makefile): Removed obsolete java/parse.y example.
36465         * doc/sourcebuild.texi: Likewise.
36466         (Top Level): Added config, gnattools, libdecnumber, libgcc,
36467         libgomp, libssp.  Removed fastjar.
36468         (Miscellaneous Docs): Clarify location.
36469         Added COPYING3, COPYING3.LIB.
36470         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
36471
36472 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36473
36474         PR target/38085
36475         * config/i386/i386.c (x86_function_profiler)
36476         [!NO_PROFILE_COUNTERS]: Fix typo.
36477         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
36478         instead of callq.
36479
36480 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
36481             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36482
36483         * doc/sourcebuild.texi (Test Directives): Split into six
36484         subsections, with most of the current text in new subsections
36485         Directives, Selectors, and Final Actions.
36486         (Directives): Split list of test directives into multiple
36487         subsubsections.
36488         (Selectors): Describe use and syntax of selectors.
36489         (Effective-Target Keywords): Describe all existing keywords.
36490         (Add Options): Describe features for dg-add-options.
36491         (Require Support): Describe variants of dg-require-support.
36492         (Final Actions): Describe commands to use in dg-final.
36493
36494 2010-03-22  Michael Matz  <matz@suse.de>
36495
36496         PR middle-end/43475
36497         * recog.c (validate_replace_rtx_group): Replace also in
36498         REG_EQUAL and REG_EQUIV notes.
36499
36500 2010-03-22  Richard Guenther  <rguenther@suse.de>
36501
36502         PR tree-optimization/43390
36503         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
36504         sure vector extracts are type correct.
36505
36506 2010-03-22  Richard Guenther  <rguenther@suse.de>
36507
36508         PR middle-end/40106
36509         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
36510         x * sqrt (x) even when optimizing for size if the target
36511         has native support for sqrt.
36512
36513 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
36514
36515         * varasm.c (make_decl_rtl_for_debug): Also clear
36516         flag_mudflap for the duration of make_decl_rtl call.
36517
36518         PR debug/43443
36519         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
36520         locs from preserved VALUEs.
36521
36522 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36523
36524         PR middle-end/42718
36525         * pa.md (movmemsi): Set align to one if zero.
36526         (movmemdi): Likewise.
36527
36528 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
36529
36530         PR target/42321
36531         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
36532         with their corresponding prologue pushes.
36533
36534 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
36535
36536         PR target/43156
36537         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
36538         at the begining or end.
36539         (spu_expand_epilogue): Likewise.
36540
36541 2010-03-20  Richard Guenther  <rguenther@suse.de>
36542
36543         PR rtl-optimization/43438
36544         * combine.c (make_extraction): Properly zero-/sign-extend an
36545         extraction of the low part of a CONST_INT.  Also handle
36546         CONST_DOUBLE.
36547
36548 2010-03-19  Mike Stump  <mikestump@comcast.net>
36549
36550         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
36551         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
36552         (override_options): Use SUBTARGET32_DEFAULT_CPU.
36553
36554 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
36555
36556         PR c/43211
36557         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
36558         an error.
36559
36560 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
36561
36562         PR rtl-optimization/42258
36563         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
36564         use that may match DEF.
36565
36566         PR target/40697
36567         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
36568         the cost of loading the constant rather than assuming
36569         COSTS_N_INSNS (1).
36570         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
36571         outer code is AND, do the same tests as the andsi3 expander and
36572         return COSTS_N_INSNS (1) if and is cheap.
36573
36574         * optabs.c (avoid_expensive_constant): Fix formatting.
36575
36576 2010-03-19  Michael Matz  <matz@suse.de>
36577
36578         PR c++/43116
36579         * attribs.c (decl_attributes): When rebuilding a function pointer
36580         type use the same qualifiers as the original pointer type.
36581
36582 2010-03-19  Martin Jambor  <mjambor@suse.cz>
36583
36584         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
36585         and is_gimple_ip_invariant_address.
36586
36587 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36588
36589         Revert
36590         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36591
36592         * config/arm/arm.c (arm_override_options): Turn off
36593         flag_dwarf2_cfi_asm for AAPCS variants.
36594
36595 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36596
36597         PR target/43399
36598         * config/arm/arm.c (emit_multi_reg_push): Update comments.
36599         Use PRE_MODIFY instead of PRE_DEC.
36600         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
36601         (vfp_emit_fstmd): Likewise.
36602
36603 2010-03-19  Michael Matz  <matz@suse.de>
36604
36605         PR target/43305
36606         * builtins.c (expand_builtin_interclass_mathfn,
36607         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
36608         if that fails.
36609
36610 2010-03-19  Richard Guenther  <rguenther@suse.de>
36611
36612         PR tree-optimization/43415
36613         * tree-ssa-pre.c (phi_translate): Split out worker to ...
36614         (phi_translate_1): ... this.
36615         (phi_translate): Move all caching here.  Cache all NARY
36616         and REFERENCE translations.
36617
36618 2010-03-19  David S. Miller  <davem@davemloft.net>
36619
36620         With help from Eric Botcazou.
36621         * config/sparc/sparc.c: Include dwarf2out.h.
36622         (emit_pic_helper): Delete.
36623         (pic_helper_symbol_name): Delete.
36624         (pic_helper_emitted_p): Delete.
36625         (pic_helper_needed): New.
36626         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
36627         (get_pc_thunk_name): New.
36628         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
36629         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
36630         Set pic_helper_needed to true.  Don't call emit_pic_helper.
36631         (sparc_expand_prologue): Update load_pic_register call.
36632         (sparc_output_mi_thunk): Likewise.
36633         (sparc_file_end): Emit a hidden comdat symbol for the PIC
36634         thunk if possible.  Output CFI information as needed.
36635
36636 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
36637             Jack Howarth  <howarth@bromo.med.uc.edu>
36638
36639         PR target/36399
36640         * config/i386/i386.h: Fix ABI on darwin x86-32.
36641
36642 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
36643
36644         * tree.h: Declare make_decl_rtl_for_debug.
36645         * varasm.c (make_decl_rtl_for_debug): New.
36646         * dwarf2out.c (rtl_for_decl_location): Call it.
36647         * cfgexpand.c (expand_debug_expr): Call it.
36648
36649 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
36650
36651         PR bootstrap/43399
36652         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
36653         mem_mode.
36654
36655         PR bootstrap/43403
36656         * var-tracking.c (vt_init_cfa_base): Do nothing if
36657         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
36658
36659 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
36660
36661         PR debug/42873
36662         * var-tracking.c (canonicalize_vars_star): New.
36663         (dataflow_post_merge_adjust): Use it.
36664
36665 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
36666
36667         PR debug/43058
36668         * var-tracking.c (non_suitable_const): New function.
36669         (add_uses): For DEBUG_INSNs with constants, don't record any
36670         value, instead just the constant value itself.
36671         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
36672         is not VAR_LOC_UNKNOWN_P, set var to the constant.
36673         (emit_notes_in_bb): Likewise.
36674         (emit_note_insn_var_location): For onepart variables if
36675         cur_loc is a VOIDmode constant, use DECL_MODE.
36676
36677 2010-03-18  Martin Jambor  <mjambor@suse.cz>
36678
36679         PR middle-end/42450
36680         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
36681         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
36682         all non-clones.  Moved call redirection...
36683         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
36684         (cgraph_materialize_all_clones): Dispose of all
36685         combined_args_to_skip bitmaps.
36686         (verify_cgraph_node): Do not check for edges pointing to wrong
36687         nodes in inline clones.
36688         * tree-inline.c (copy_bb): Call
36689         cgraph_redirect_edge_call_stmt_to_callee.
36690         * ipa.c (cgraph_remove_unreachable_nodes): Call
36691         cgraph_node_remove_callees even when there are used clones.
36692
36693 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
36694
36695         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
36696
36697 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
36698
36699         PR target/43383
36700         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
36701         for 32bit.
36702
36703 2010-03-18  Michael Matz  <matz@suse.de>
36704
36705         PR middle-end/43419
36706         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
36707         into sqrt(x) if we need to preserve signed zeros.
36708
36709 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
36710             Eric Botcazou  <ebotcazou@adacore.com>
36711
36712         PR rtl-optimization/43360
36713         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
36714         note if we don't know its invariant status.
36715
36716 2010-03-18  Michael Matz  <matz@suse.de>
36717
36718         PR tree-optimization/43402
36719         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
36720         PHI chains of ssa names registered for update.
36721
36722 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
36723
36724         PR target/42427
36725         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
36726         non-offsettable and pre_modify update addressing.
36727         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
36728         and "2" alternatives "#".
36729         (*movdd_softfloat32): Make all alternatives "#";
36730         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
36731         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
36732         (*movdf_softfloat32): Make all alternatives "#";
36733         (movdi): Use the new DIFD mode iterator to create a common splitter
36734         for movdi, movdf and movdd patterns.
36735
36736 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
36737
36738         * common.opt (dumpdir): Remove redundant tab.
36739
36740 2010-03-17  Martin Jambor  <mjambor@suse.cz>
36741
36742         PR tree-optimization/43347
36743         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
36744         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
36745
36746 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
36747
36748         PR rtl-optimization/42216
36749         * regrename.c (create_new_chain): New function, broken out from...
36750         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
36751         appending a use to an empty chain.
36752         (build_def_use): Remove previous changes that convert OP_INOUT to
36753         OP_OUT operands; instead detect the case where an OP_INOUT operand
36754         uses a previously untracked register and create an empty chain for it.
36755
36756 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36757
36758         * doc/extend.texi (Function Attributes): Rewrite unfinished
36759         sentence in ms_abi documentation.
36760
36761 2010-03-17  Alan Modra  <amodra@gmail.com>
36762
36763         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
36764         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
36765         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
36766         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
36767
36768 2010-03-16  Richard Henderson  <rth@redhat.com>
36769
36770         PR middle-end/43365
36771         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
36772         (lower_try_finally): Save and restore eh_seq around the expansion
36773         of the try-finally.
36774
36775 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
36776
36777         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
36778         statements before splitting block.
36779
36780 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36781
36782         * doc/sourcebuild.texi (Testsuites): Fix markup.
36783         Use pathnames relative to gcc/testsuite.
36784         (Test Directives): Move description of how timeout is determined.
36785         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
36786         (C Tests): Correct gcc.misc-tests directory.
36787         Framework tests now live in gcc.test-framework.
36788
36789 2010-03-16  Richard Guenther  <rguenther@suse.de>
36790
36791         PR middle-end/43379
36792         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
36793         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
36794
36795 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
36796             Alexandre Oliva  <aoliva@redhat.com>
36797
36798         PR tree-optimization/42917
36799         * lambda-code.c (remove_iv): Skip debug statements.
36800         (lambda_loopnest_to_gcc_loopnest): Likewise.
36801         (not_interesting_stmt): Debug statements are not interesting.
36802
36803 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
36804
36805         PR debug/43051
36806         PR debug/43092
36807         * cselib.c (cselib_preserve_constants,
36808         cfa_base_preserved_val): New static variables.
36809         (preserve_only_constants): New function.
36810         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
36811         clear its REG_VALUES.  If cselib_preserve_constants, don't
36812         empty the whole hash table, but preserve there VALUEs with constants,
36813         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
36814         (cselib_preserve_cfa_base_value): New function.
36815         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
36816         (cselib_init): Change argument to int bitfield.  Set
36817         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
36818         is in it.
36819         (cselib_finish): Clear cselib_preserve_constants and
36820         cfa_base_preserved_val.
36821         * cselib.h (enum cselib_record_what): New enum.
36822         (cselib_init): Change argument to int.
36823         (cselib_preserve_cfa_base_value): New prototype.
36824         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
36825         * dse.c (dse_step1): Likewise.
36826         * cfgcleanup.c (thread_jump): Likewise.
36827         * sched-deps.c (sched_analyze): Likewise.
36828         * gcse.c (local_cprop_pass): Likewise.
36829         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
36830         If FN is non-NULL, call the callback always and whenever it returns
36831         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
36832         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
36833         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
36834         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
36835         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
36836         * var-tracking.c: Include recog.h.
36837         (bb_stack_adjust_offset): Remove.
36838         (vt_stack_adjustments): Don't call it, instead just gather the
36839         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
36840         (adjust_stack_reference): Remove.
36841         (compute_cfa_pointer): New function.
36842         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
36843         (struct adjust_mem_data): New type.
36844         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
36845         functions.
36846         (get_address_mode): New function.
36847         (replace_expr_with_values): Use it.
36848         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
36849         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
36850         (adjust_sets): Remove.
36851         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
36852         Use get_address_mode.
36853         (get_adjusted_src): Remove.
36854         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
36855         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
36856         (add_with_sets): Don't call adjust_sets.
36857         (fp_setter, vt_init_cfa_base): New functions.
36858         (vt_initialize): Change return type to bool.  Move most of pool etc.
36859         initialization to the beginning of the function from end.  Pass
36860         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
36861         If !frame_pointer_needed, call vt_stack_adjustment before mos
36862         vector is filled, call vt_init_cfa_base if argp/framep has been
36863         eliminated to sp.  If frame_pointer_needed and argp/framep has
36864         been eliminated to hard frame pointer, set
36865         hard_frame_pointer_adjustment and call vt_init_cfa_base after
36866         encountering fp setter in the prologue.  For MO_ADJUST, call
36867         log_op_type before pusing the op into mos vector, not afterwards.
36868         Call adjust_insn before cselib_process_insn/add_with_sets,
36869         call cancel_changes (0) afterwards.
36870         (variable_tracking_main_1): Adjust for vt_initialize calling
36871         vt_stack_adjustments and returning whether it succeeded or not.
36872
36873 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
36874
36875         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
36876         debug statements.
36877
36878 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
36879
36880         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
36881         has been set.
36882         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
36883         drap_reg has not been set.
36884
36885 2010-03-15  Michael Matz  <matz@suse.de>
36886
36887         PR middle-end/43300
36888         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
36889         use it to expand block copies.
36890         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
36891         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
36892         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
36893
36894 2010-03-15  Richard Guenther  <rguenther@suse.de>
36895
36896         PR tree-optimization/43367
36897         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
36898         elimination check.
36899
36900 2010-03-15  Richard Guenther  <rguenther@suse.de>
36901
36902         PR tree-optimization/43317
36903         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
36904
36905 2010-03-15  Martin Jambor  <mjambor@suse.cz>
36906
36907         PR tree-optimization/43141
36908         * tree-sra.c (create_abstract_origin): New function.
36909         (modify_function): Call create_abstract_origin.
36910
36911 2010-03-15  Chris Demetriou  <cgd@google.com>
36912
36913         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
36914         wasn't copied.
36915
36916 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36917
36918         PR middle-end/43354
36919         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
36920         call insert_out_of_ssa_copy for default definitions.
36921
36922 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36923
36924         * graphite-clast-to-gimple.c (my_long_long): Defined.
36925         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
36926         * graphite-sese-to-poly.c (my_long_long): Defined.
36927         (scop_ivs_can_be_represented): Use it.
36928
36929 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36930
36931         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
36932         graphite-max-bbs-per-function, and loop-block-tile-size.
36933         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
36934         with "maximum".
36935         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
36936
36937 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36938
36939         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
36940         forward declaration.
36941         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
36942         (add_upper_bounds_from_estimated_nit): New.
36943         (build_loop_iteration_domains): Use it.
36944
36945 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36946
36947         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
36948
36949 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36950
36951         PR middle-end/43306
36952         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
36953         should be an INTEGER_CST.  Also handle CASE_CONVERT.
36954
36955 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36956
36957         * graphite.c (graphite_initialize): To bound the number of bbs per
36958         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
36959         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
36960         * doc/invoke.texi: Document it.
36961
36962 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36963
36964         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
36965         * graphite-sese-to-poly.h (build_poly_scop): Same.
36966
36967 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36968
36969         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
36970         the number of parameters in the scop.  Use as an upper bound
36971         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
36972         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
36973         * doc/invoke.texi: Document it.
36974
36975 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
36976
36977         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
36978         * doc/c-tree.texi: Remove.
36979         * doc/generic.texi: Merge c-tree.texi here.
36980         * doc/gccint.texi (Trees): Remove menu entry.
36981         (c-tree.texi): Remove @include.
36982         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
36983         * doc/languages.texi (Reading RTL): Ditto.
36984
36985 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
36986
36987         PR target/42869
36988         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
36989
36990 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
36991
36992         PR middle-end/42431
36993         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
36994         code added to work around reload clobbering CONST insns.
36995
36996 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
36997
36998         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
36999         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
37000         (cselib_preserve_only_values): Remove retain argument, don't
37001         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
37002         * cselib.h (cselib_preserve_only_values): Remove retain argument.
37003         * var-tracking.c (micro_operation): Move insn field before union.
37004         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
37005         (struct variable_tracking_info_def): Remove n_mos field, change
37006         mos into a vector of micro_operations.
37007         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
37008         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
37009         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
37010         changing into a vector.
37011         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
37012         come before all other uops generated by add_stores.
37013         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
37014         argument removal.
37015         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
37016         a vector.  Run just one pass over the bbs instead of separate counting
37017         and computation phase.
37018         (vt_finalize): Free VTI (bb)->mos vector instead of array.
37019
37020         PR debug/43329
37021         * tree-inline.c (remap_decls): Put old_var rather than origin_var
37022         into *nonlocalized_list vector.
37023         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
37024         even if origin is non-NULL.
37025         (gen_variable_die): Likewise.
37026         (process_scope_var): Don't change origin.
37027         (gen_decl_die): Likewise.
37028         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
37029         before adding new edges instead of after it, fix moving over
37030         debug stmts.
37031
37032 2010-03-11  David S. Miller  <davem@davemloft.net>
37033
37034         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
37035         of four.
37036         * configure: Rebuild.
37037
37038 2010-03-11  Martin Jambor  <mjambor@suse.cz>
37039
37040         PR tree-optimization/43257
37041         * tree.c (assign_assembler_name_if_neeeded): New function.
37042         (free_lang_data_in_cgraph): Assembler name assignment moved to the
37043         above new function.
37044         * tree.h (assign_assembler_name_if_neeeded): Declare.
37045         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
37046         the function if needed.
37047
37048 2010-03-11  Chris Demetriou  <cgd@google.com>
37049
37050         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
37051         include/stdint-gcc.h, and include/stdint.h world-readable.
37052
37053 2010-03-11  Richard Guenther  <rguenther@suse.de>
37054
37055         PR tree-optimization/43255
37056         * tree-vrp.c (process_assert_insertions_for): Do not insert
37057         asserts for trivial conditions.
37058
37059 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37060
37061         PR tree-optimization/43280
37062         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
37063         generation.  Move calculation of size out of the if branch.
37064         (find_bswap): Modify compare number generation.
37065
37066 2010-03-11  Richard Guenther  <rguenther@suse.de>
37067
37068         PR lto/43200
37069         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
37070         (input_gimple_stmt): Fixup handled component types during
37071         operand read.  Also fix up decls in ADDR_EXPRs.
37072
37073 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
37074
37075         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
37076         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
37077
37078 2010-03-10  Jan Hubicka  <jh@suse.cz>
37079
37080         PR c/43288
37081         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
37082         * varasm.c (get_variable_section): Don't do that here...
37083         (make_decl_rtl): ... and here.
37084         (do_assemble_alias): Produce decl RTL.
37085         (assemble_alias): Likewise.
37086
37087 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
37088
37089         PR debug/43290
37090         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
37091         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
37092         of fde->vdrap_reg.
37093         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
37094         (based_loc_descr): Only express drap or vdrap regno based expressions
37095         using DW_OP_fbreg when not optimizing.
37096         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
37097         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
37098         REG_CFA_SET_VDRAP note.
37099
37100 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
37101
37102         PR tree-optimization/43236
37103         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
37104         error in calculation of base address in reverse iteration case.
37105         (generate_builtin): Take number of latch executions if the statement
37106         is in the latch.
37107
37108 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
37109
37110         PR middle-end/42859
37111         * tree-eh.c: Include pointer-set.h.
37112         (lower_eh_dispatch): Filter out duplicate case labels and
37113         remove the unneeded edge when the label is unused.  Return
37114         true when some edges are removed.
37115         (execute_lower_eh_dispatch): When any lowering resulted in
37116         removing an edge, also delete unreachable blocks.
37117
37118 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
37119
37120         PR bootstrap/43287
37121         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
37122         UNSPEC_MACHOPIC_OFFSET.
37123
37124 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
37125
37126         PR target/43294
37127         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
37128         (m68k_delegitimize_address): New function.
37129
37130 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
37131
37132         PR debug/43299
37133         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
37134
37135         PR debug/43299
37136         * var-tracking.c (adjust_sets): New function.
37137         (count_with_sets, add_with_sets): Use it.
37138         (get_adjusted_src): New inline function.
37139         (add_stores): Use it.
37140
37141         PR debug/43304
37142         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
37143         call cselib_dummy_expand_value_rtx_cb instead of
37144         cselib_expand_value_rtx_cb.
37145
37146         PR debug/43293
37147         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
37148         * config/i386/i386.c: Include debug.h and dwarf2out.h.
37149         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
37150         and .cfi_endproc around the pic thunks.
37151         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
37152         all queued unwind info register saves are saved before the call.
37153         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
37154         considered as sp-=4 for unwind info and the pop as sp+=4 which
37155         also clobbers dest, but doesn't actually restore it.
37156
37157         PR debug/43290
37158         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
37159         RTX_FRAME_RELATED_P.
37160
37161 2010-03-09  Jie Zhang  <jie@codesourcery.com>
37162
37163         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
37164         whitespaces in output template.
37165
37166 2010-03-09  Jie Zhang  <jie@codesourcery.com>
37167
37168         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
37169         out array boundary.
37170
37171 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
37172
37173         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
37174         builtins.exp in a separate job.
37175
37176 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37177
37178         * graphite-sese-to-poly.c (add_param_constraints): Use
37179         lower_bound_in_type and upper_bound_in_type.
37180
37181 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37182
37183         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
37184         instead of unsigned_type_node.
37185
37186 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37187             Reza Yazdani  <reza.yazdani@amd.com>
37188
37189         PR middle-end/43065
37190         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
37191         on pointer type parameters.
37192
37193 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
37194
37195         PR middle-end/42644
37196         PR middle-end/42130
37197         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
37198         handle conversions from pointer to integers.
37199         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
37200         induction variable, to be able to work with code generated by CLooG.
37201         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
37202         (build_poly_scop): Bail out if we cannot codegen a loop.
37203
37204 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
37205
37206         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
37207         code generation with gloog_error.
37208
37209 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37210
37211         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
37212         Call fold_convert on all the returned values.
37213         (expand_scalar_variables_expr): Pass to
37214         expand_scalar_variables_ssa_name the type of the resulting expression.
37215
37216 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37217
37218         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
37219         ppl_min_for_le_pointset.
37220         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
37221         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
37222
37223 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37224
37225         * graphite-dependences.c (map_into_dep_poly): Removed.
37226         (dependence_polyhedron_1): Use combine_context_id_scat.
37227
37228 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37229
37230         * graphite-poly.h (struct poly_scattering): Add layout documentation.
37231         (struct poly_bb): Same.
37232         (combine_context_id_scat): New.
37233
37234 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37235
37236         PR middle-end/42326
37237         * sese.c (name_defined_in_loop_p): Return false for default
37238         definitions.
37239
37240 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37241
37242         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
37243         and clean up the logic.
37244
37245 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37246
37247         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
37248         early return.
37249
37250 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
37251
37252         * var-tracking.c (remove_cselib_value_chains): Define only for
37253         ENABLE_CHECKING.
37254         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
37255         delete_slot_part, emit_notes_for_differences_1): Don't call
37256         remove_cselib_value_chains here.
37257         (set_slot_part, emit_notes_for_differences_2): Don't call
37258         add_cselib_value_chains here.
37259         (preserved_values): New vector.
37260         (preserve_value): New function.
37261         (add_uses, add_stores, vt_add_function_parameters): Use it
37262         instead of cselib_preserve_value.
37263         (changed_values_stack): New vector.
37264         (check_changed_vars_0): New function.
37265         (check_changed_vars_1, check_changed_vars_2): Use it.
37266         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
37267         changed_values_stack VALUEs.
37268         (vt_emit_notes): For all preserved_values call
37269         add_cselib_value_chains.  If ENABLE_CHECKING call
37270         remove_cselib_value_chains before verifying value_chains is empty.
37271         Initialize and free changed_values_stack.
37272         (vt_initialize): Initialize preserved_values.
37273         (vt_finalize): Free preserved_values.
37274
37275 2010-03-08  Richard Guenther  <rguenther@suse.de>
37276
37277         PR tree-optimization/43269
37278         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
37279         region detection.
37280
37281 2010-03-08  Martin Jambor  <mjambor@suse.cz>
37282
37283         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
37284         (ipa_is_param_called): Removed.
37285         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
37286         (ipa_print_node_params): Do not print the called flag.
37287         (ipa_write_node_info): Do not stream the called flag.
37288         (ipa_read_node_info): Likewise.
37289
37290 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
37291
37292         PR debug/43176
37293         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
37294         * cselib.c (struct expand_value_data): Add dummy field.
37295         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
37296         dummy to false.
37297         (cselib_dummy_expand_value_rtx_cb): New function.
37298         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
37299         any rtl.
37300         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
37301         * var-tracking.c: Include pointer-set.h.
37302         (variable): Change n_var_parts to char from int.  Add
37303         cur_loc_changed and in_changed_variables fields.
37304         (variable_canonicalize): Remove.
37305         (shared_var_p): New inline function.
37306         (unshare_variable): Maintain cur_loc_changed and
37307         in_changed_variables fields.  If var was in changed_variables,
37308         replace it there with new_var.  Just copy cur_loc instead of
37309         resetting it to something else.
37310         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
37311         (dataflow_set_union): Don't call variable_canonicalize.
37312         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
37313         of their DEBUG_EXPR_TREE_DECLs.
37314         (canonicalize_loc_order_check): Verify that cur_loc is NULL
37315         and in_changed_variables and cur_loc_changed is false.
37316         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
37317         and cur_loc_changed.  Don't update cur_loc here.
37318         (variable_merge_over_src): Don't call variable_canonicalize.
37319         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
37320         removing loc that is equal to cur_loc, clear cur_loc,
37321         set cur_loc_changed and ensure variable_was_changed is called.
37322         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
37323         compare pointers in cur_loc check, if it is equal to loc,
37324         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
37325         (variable_different_p): Remove compare_current_location argument,
37326         don't compare cur_loc.
37327         (dataflow_set_different_1): Adjust variable_different_p caller.
37328         (variable_was_changed): If dv had some var in changed_variables
37329         already, reset in_changed_variables flag for it and propagate
37330         cur_loc_changed over to the new variable.  On empty var
37331         always set cur_loc_changed.  Set in_changed_variables on whatever
37332         var is added to changed_variables.
37333         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
37334         Use shared_var_p.  When removing loc that is equal to cur_loc,
37335         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
37336         end, don't set it to something else, just call variable_was_changed.
37337         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
37338         loc being removed, clear cur_loc and set cur_loc_changed.
37339         Set cur_loc_changed if all locations have been removed.
37340         (struct expand_loc_callback_data): New type.
37341         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
37342         allocated.  Always create SUBREGs if simplify_subreg failed.
37343         Prefer to use cur_loc, when that fails and still in
37344         changed_variables (and seen first time) recompute it.  Set
37345         cur_loc_changed of variables which had to change cur_loc and
37346         compute elcd->cur_loc_changed if any of the subexpressions used
37347         had to change cur_loc.
37348         (vt_expand_loc): Adjust to pass arguments in
37349         expand_loc_callback_data structure.
37350         (vt_expand_loc_dummy): New function.
37351         (emitted_notes): New variable.
37352         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
37353         that weren't used for any other decl in current
37354         emit_notes_for_changes call call vt_expand_loc_dummy to update
37355         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
37356         first loc_chain location if NULL before.  Always use just
37357         cur_loc instead of first loc_chain location.  When cur_loc_changed
37358         is false, when not --enable-checking=rtl just don't emit any note.
37359         When rtl checking, compute the note and assert it is the same
37360         as previous note.  Clear cur_loc_changed and in_changed_variables
37361         at the end before removing from changed_variables.
37362         (check_changed_vars_3): New function.
37363         (emit_notes_for_changes): Traverse changed_vars to call
37364         check_changed_vars_3 on each changed var.
37365         (emit_notes_for_differences_1): Clear cur_loc_changed and
37366         in_changed_variables.  Recompute cur_loc of new_var.
37367         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
37368         (vt_emit_notes): Initialize and destroy emitted_notes.
37369
37370 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
37371
37372         PR rtl-optimization/42220
37373         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
37374         Use verify_reg_tracked to determine if we should use OP_OUT rather
37375         than OP_INOUT.
37376         (build_def_use): If we see an in-out operand for a register that we
37377         know nothing about, treat is an output if possible, fail the block if
37378         not.
37379
37380 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37381
37382         PR debug/42897
37383         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
37384         permanently.
37385
37386 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37387
37388         PR debug/42897
37389         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
37390         uses of relevant DEFs that are dead outside the loop too.
37391
37392 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37393
37394         * var-tracking.c (dataflow_set_merge): Swap src and src2.
37395         Reverted:
37396         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37397         PR debug/41371
37398         * var-tracking.c (values_to_unmark): New variable.
37399         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37400         values_to_unmark vector.  Moved body to...
37401         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37402         instead queue it into values_to_unmark vector.
37403         (vt_find_locations): Free values_to_unmark vector.
37404
37405 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
37406
37407         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
37408         (site.exp): Export them when plugins are enabled.
37409
37410 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
37411
37412         PR middle-end/42326
37413         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
37414         that contain scevs.
37415         (chrec_fold_multiply): Same.
37416
37417 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
37418
37419         PR c/43248
37420         * c-decl.c (build_compound_literal): Return early if init is
37421         an error_mark_node.
37422
37423 2010-03-04  Martin Jambor  <mjambor@suse.cz>
37424
37425         PR tree-optimization/43164
37426         PR tree-optimization/43191
37427         * tree-sra.c (type_consists_of_records_p): Reject records with
37428         zero-size bit-fields at the end.
37429
37430 2010-03-04  Mike Stump  <mikestump@comcast.net>
37431
37432         * Makefile.in (TAGS): Remove *.y.
37433
37434 2010-03-04  Richard Guenther  <rguenther@suse.de>
37435
37436         PR tree-optimization/40761
37437         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
37438         in reverse order.
37439         (my_rev_post_order_compute): New function.
37440         (init_pre): Call it.
37441
37442 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
37443
37444         PR middle-end/43209
37445         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
37446         decrease the cost of an IV candidate when the cost is infinite.
37447
37448 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37449
37450         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
37451         Use '3DNow!' for the extension of that name, ensure normal space
37452         after the string.
37453         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
37454
37455 2010-03-03  Jeff Law  <law@redhat.com>
37456
37457         * PR middle-end/32693
37458         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
37459         than gen_rtx_SUBREG.
37460         (extract_bit_field_1): Likewise.
37461
37462 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
37463
37464         * doc/sourcebuild.texi (Test directives): Document that arguments
37465         include-opts and exclude-opts are now optional for dg-skip-if,
37466         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
37467
37468 2010-03-03  Jason Merrill  <jason@redhat.com>
37469
37470         PR c++/12909
37471         * cgraph.h (varpool_node): Add extra_name field.
37472         * varpool.c (varpool_extra_name_alias): New.
37473         (varpool_assemble_decl): Emit extra name aliases.
37474         (varpool_mark_needed_node): Look past an extra name alias.
37475         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
37476         * lto-streamer-in.c (lto_input_tree): Read it.
37477         * lto-streamer-out.c (output_unreferenced_globals): Write it.
37478
37479 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
37480
37481         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
37482         (sparc*-*-solaris2*): ...this.
37483
37484 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
37485
37486         PR debug/43229
37487         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
37488         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
37489         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
37490         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
37491
37492         PR debug/43237
37493         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
37494         fallthrough to default handling, just with want_address 0 instead of 2.
37495         For single element lists, add_AT_loc directly, otherwise create an
37496         artificial variable DIE and stick location list to it.
37497
37498         PR debug/43177
37499         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
37500         (VAL_EXPR_HAS_REVERSE): Define.
37501         (reverse_op): New function.
37502         (add_stores): For reversible operations add an extra MO_VAL_USE.
37503
37504 2010-03-02  Jason Merrill  <jason@redhat.com>
37505
37506         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
37507
37508 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
37509
37510         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
37511         (sparc64-*-linux*): Likewise.
37512         (sparc64-*-solaris2*): Include assembler files before linker ones.
37513         (sparc-*-solaris2*): Simplify and reorder to match previous case.
37514         * config/sparc/gas.h: Delete.
37515         * config/sparc/sol2-64.h: Add copyright notice.
37516         * config/sparc/sol2-gas-bi.h: Likewise.
37517         * config/sparc/sol2-gld.h: Likewise.
37518         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
37519         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
37520         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
37521         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
37522         (sparc_elf_asm_named_section): Rename into...
37523         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
37524
37525 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
37526
37527         * config/alpha/alpha.c (override_options): Fix -mtune error message.
37528
37529 2010-03-02  Jeff Law  <law@redhat.com>
37530
37531         PR middle-end/42431
37532         * reload1.c (rtx_p, substitute_stack): Declare.
37533         (substitute): Record addresses of changed rtxs.
37534         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
37535         Restore the original rtx when complete.
37536         (reload): Free subsitute_stack when complete.
37537
37538 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
37539
37540         * doc/gccint.texi (menu): Add Testsuites as a chapter.
37541         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
37542         new chapter.
37543         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
37544         LTO Testing, gcov Testing, profopt Testing, compat Testing,
37545         Torture Tests): Change from subsection to section.
37546
37547 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
37548             Steven Bosscher  <steven@gcc.gnu.org>
37549
37550         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
37551         instead of bb.
37552
37553 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
37554
37555         PR middle-end/42640
37556         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
37557         the assignment from the new induction variable to the assignment
37558         of the value from the original loop PHI function.
37559
37560 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
37561             Daniel Jacobowitz  <dan@codesourcery.com>
37562
37563         * doc/sourcebuild.texi (Test directives): Clarify options to
37564         dg-skip-if.
37565
37566 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37567
37568         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
37569         Disable cfi directives unless GCC and gas agree on using read-only
37570         .eh_frame sections for 64-bit.
37571         * configure: Regenerate.
37572
37573 2010-03-01  Richard Guenther  <rguenther@suse.de>
37574
37575         PR tree-optimization/43220
37576         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
37577         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
37578
37579 2010-03-01  Richard Guenther  <rguenther@suse.de>
37580             Martin Jambor  <mjambor@suse.cz>
37581
37582         PR middle-end/41250
37583         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
37584         gimplified parameters.
37585
37586 2010-03-01  Christian Bruel  <christian.bruel@st.com>
37587
37588         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
37589
37590 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
37591
37592         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
37593
37594 2010-03-01  Richard Guenther  <rguenther@suse.de>
37595
37596         PR middle-end/43213
37597         * expr.c (expand_assignment): Use the alias-oracle to tell
37598         if the rhs aliases the result decl.
37599
37600 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37601
37602         PR pch/14940
37603         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
37604         to sol_gt_pch_get_address.
37605         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
37606         64-bit, SPARC and x86.
37607         (sol_gt_pch_get_address): New function.
37608
37609 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
37610
37611         * toplev.h (inform_n, error_n): Declare.
37612         * diagnostic.c (inform_n, error_n): New function.
37613
37614 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
37615
37616         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
37617         has no rtl yet when processing local_decls, queue it and recheck
37618         if deferred stack allocation hasn't assigned it rtl.
37619
37620 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
37621
37622         * config/sh/sh.c (unspec_bbr_uid): New.
37623         (gen_block_redirect): Use it instead of INSN_UID.
37624         (gen_far_branch): Likewise.
37625
37626 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
37627
37628         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
37629         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
37630
37631 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37632
37633         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
37634         (Warning Options): -Wno-conversion-null is valid for
37635         Objective-C++ as well.
37636         * doc/tm.texi (Named Address Spaces): Likewise.
37637         * doc/plugins.texi (Plugins): Replace TABs with spaces.
37638         * doc/tree-ssa.texi (Tree SSA): Likewise.
37639
37640 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37641
37642         PR bootstrap/43202
37643         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
37644         by default.  Don't set the default arch for
37645         i[34567]86-*-darwin*|x86_64-*-darwin*.
37646
37647 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37648
37649         PR bootstrap/43202
37650         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
37651         default.  Set the default 32bit/64bit archs with $with_arch
37652         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
37653
37654 2010-02-27  Richard Guenther  <rguenther@suse.de>
37655
37656         PR tree-optimization/43186
37657         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
37658         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
37659         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
37660         unroller iterations.
37661
37662 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37663
37664         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
37665         required and i[34567]86-*-* targets don't support 64bit ISA.
37666
37667 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
37668
37669         PR ada/43096
37670         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
37671         the same alias set.
37672
37673 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
37674
37675         * config.gcc: Set the default arch at least to Prescott for
37676         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
37677         if SSE math is enabled.
37678
37679 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37680
37681         * diagnostic.c (diagnostic_initialize): Update.
37682         (diagnostic_report_diagnostic): Test inhibit_notes_p for
37683         informative notes.
37684         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
37685         (diagnostic_inhibit_notes): New.
37686         * toplev.c (process_options): inhibit notes with -fcompare-debug.
37687
37688 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37689
37690         PR c/20631
37691         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
37692         * doc/standards.texi: Likewise.
37693         * doc/extend.texi: Likewise.
37694         * doc/trouble.texi: Likewise.
37695         * doc/cppopts.texi: Likewise.
37696         * doc/install.texi: Likewise.
37697         * c.opt (std=c90,std=gnu90): New options.
37698         * c-opts.c (c_common_handle_option): Handle them.
37699
37700 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37701
37702         PR c/24577
37703         * c-decl.c (undeclared_variable): Use an informative note.
37704
37705 2010-02-26  Richard Guenther  <rguenther@suse.de>
37706
37707         PR tree-optimization/43186
37708         * gimple.h (gimple_fold): Remove.
37709         * gimple.c (gimple_fold): Remove.  Inline into single user ...
37710         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
37711         Try harder for conditions.
37712
37713 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
37714
37715         PR debug/43190
37716         * function.c (used_types_insert): Don't skip through named pointer
37717         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
37718         and it is different from the main variant's type.
37719
37720 2010-02-26  Nick Clifton  <nickc@redhat.com>
37721
37722         * config/rx/rx.md (sminsi3): Remove bogus alternative.
37723
37724 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
37725
37726         * config.gcc: Support --with-fpmath=sse for x86.
37727
37728         * config/i386/ssemath.h: New.
37729
37730         * doc/install.texi (--with-fpmath=sse): Documented.
37731
37732 2010-02-26  Richard Guenther  <rguenther@suse.de>
37733
37734         PR tree-optimization/43188
37735         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
37736         vector types of over-aligned element type.
37737
37738 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
37739
37740         PR target/43175
37741         * config/i386/i386.c (expand_vec_perm_blend): Use correct
37742         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
37743
37744 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
37745
37746         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
37747
37748 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
37749
37750         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
37751         * var-tracking.c: Include diagnostic.h.
37752         (debug_dv): New function.
37753         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
37754
37755         PR debug/43160
37756         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
37757         (add_value_chain, add_value_chains, remove_value_chain,
37758         remove_value_chains): Handle DEBUG_EXPRs.
37759         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
37760
37761         PR debug/43161
37762         * regcprop.c (struct queued_debug_insn_change): New type.
37763         (struct value_data_entry): Add debug_insn_changes field.
37764         (struct value_data): Add n_debug_insn_changes field.
37765         (debug_insn_changes_pool): New variable.
37766         (free_debug_insn_changes, apply_debug_insn_changes,
37767         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
37768         (kill_value_one_regno): Call free_debug_insn_changes if needed.
37769         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
37770         fields.
37771         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
37772         changes for them.
37773         (copyprop_hardreg_forward_1): Don't call apply_change_group for
37774         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
37775         changes, call cprop_find_used_regs via note_stores.
37776         (copyprop_hardreg_forward): When copying vd from predecessor
37777         which has any queued DEBUG_INSN changes, make sure the pointers are
37778         cleared.  At the end call df_analyze and then if there are any
37779         DEBUG_INSN changes queued at the end of some basic block for still
37780         live registers, apply them.
37781         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
37782
37783 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
37784
37785         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
37786         (arm*-*-*): Ditto.
37787
37788 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
37789
37790         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
37791         targets.  Set the default with_cpu/with_arch from arch/cpu.
37792         Allow x86-64 and native for with_cpu/with_arch.
37793
37794 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
37795
37796         * ebitmap.c: Change calls to verify_popcount with calls to
37797         sbitmap_verify_popcount.
37798         (ebitmap_clear_bit): Fixed map->cacheindex test and
37799         map>cache update when bit clearing results in an empty
37800         element.
37801
37802 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
37803
37804         PR target/43154
37805         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
37806         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
37807         and support both V2DF and V2DI modes.
37808         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
37809         support both V2DF and V2DI modes.
37810         (general): Delete trailing whitespace from a few patterns.
37811
37812         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
37813         V2DF/V2DI interleave high/low builtins.
37814
37815         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
37816         new VSX builtins.
37817
37818         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
37819         interleave high/low functions.
37820
37821 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
37822
37823         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
37824         #pragma extern_prefix.
37825
37826 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
37827
37828         PR debug/43166
37829         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
37830         BLKmode, assert op0 is a MEM and just adjust its mode.
37831
37832         PR debug/43165
37833         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
37834         if bitpos isn't multiple of mode's bitsize.
37835
37836 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37837
37838         * c.opt (-ftemplate-depth=): New.
37839         (-ftemplate-depth-): Deprecate.
37840         * optc-gen.awk: Handle -ftemplate-depth=.
37841         * opth-gen.awk: Likewise.
37842         * c-opts.c (c_common_handle_option): Likewise.
37843         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
37844
37845 2010-02-24  Jason Merrill  <jason@redhat.com>
37846
37847         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
37848
37849 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37850
37851         * cfg.c (alloc_aux_for_block): Remove inline.
37852         (alloc_aux_for_edge): Likewise.
37853
37854 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37855
37856         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
37857
37858 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37859
37860         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
37861         * config/i386/sol2-gas.h: New file.
37862         * config.gcc (i[34567]86-*-solaris2*): Use it.
37863
37864 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37865
37866         PR c/43128
37867         * c-typeck.c (ep_convert_and_check): New.
37868         (build_conditional_expr): Use it.
37869         (build_binary_op): Likewise.
37870
37871 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
37872
37873         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
37874
37875         PR debug/43150
37876         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
37877         bounds even for -O+.
37878         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
37879         expr needs to have DECL_NAME set.
37880
37881 2010-02-24  Nick Clifton  <nickc@redhat.com>
37882
37883         * config/mep/mep.c: Include gimple.h.
37884         (mep_function_uses_sp): Delete unused function.
37885         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
37886         parameters.  Use unsigned integers to count args.  Return a
37887         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
37888
37889 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
37890
37891         PR target/43107
37892         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
37893         greater or equal to nelt instead of 2 * nelt.
37894         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
37895         with nelt - 1.
37896
37897 2010-02-23  Jason Merrill  <jason@redhat.com>
37898
37899         PR debug/42800
37900         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
37901         in cfun->local_decls even if they have register types.
37902
37903         PR c++/42837
37904         * stor-layout.c (place_field): Don't warn about unnecessary
37905         DECL_PACKED if the type is packed.
37906
37907 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
37908
37909         PR target/43139
37910         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
37911         GOTOFF relocs, even when the base reg isn't pic pointer.
37912
37913 2010-02-23  Michael Matz  <matz@suse.de>
37914
37915         PR debug/43077
37916         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
37917         (expand_gimple_basic_block): Generate and use debug temps if there
37918         are debug uses left after the last real use of TERed ssa names.
37919         Unlink debug immediate uses when they are expanded.
37920
37921 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37922
37923         PR 43123
37924         * config/i386/i386.c (override_options): Reorganise to provide
37925         better error messages.
37926
37927 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37928
37929         PR middle-end/43083
37930         * graphite-scop-detection.c (create_single_exit_edge): Move
37931         the call to find_single_exit_edge to....
37932         (create_sese_edges): ...here.  Don't handle multiple edges
37933         exiting the function.
37934         (build_graphite_scops): Don't handle multiple edges
37935         exiting the function.
37936
37937 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37938
37939         PR middle-end/43097
37940         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
37941         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
37942
37943 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37944
37945         PR middle-end/43026
37946         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
37947
37948 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37949
37950         PR c++/43126
37951         * c-typeck.c (convert_arguments): Print declaration location.
37952         * c-common.c (validate_nargs): Rename as
37953         builtin_function_validate_nargs.
37954         (check_builtin_function_arguments): Update.
37955
37956 2010-02-22  Richard Guenther  <rguenther@suse.de>
37957
37958         PR lto/43045
37959         * tree-inline.c (declare_return_variable): Use the type of
37960         the call stmt lhs if available.
37961
37962 2010-02-22  Duncan Sands  <baldrick@free.fr>
37963
37964         * passes.c (register_pass): Always consider all pass lists when
37965         ref_pass_instance_number is zero.
37966
37967 2010-02-22  Richard Guenther  <rguenther@suse.de>
37968
37969         PR tree-optimization/42749
37970         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
37971         parameter.  Do arithmetic in the original type.
37972         (update_accumulator_with_ops): Likewise.
37973         (adjust_accumulator_values): Adjust.
37974
37975 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37976
37977         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
37978         (QI to BLKmode splitter): New splitter.
37979
37980 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
37981
37982         * config/i386/i386.c (initial_ix86_tune_features): Turn on
37983         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
37984
37985 2010-02-22  Richard Guenther  <rguenther@suse.de>
37986
37987         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
37988
37989 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
37990
37991         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
37992         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
37993         ($(T)crti.o, $(T)crtn.o): Remove rules.
37994
37995 2010-02-21  Tobias Burnus  <burnus@net-b.de>
37996
37997         PR fortran/35259
37998         * doc/invoke.texi (-fassociative-math): Document that this
37999         option is automatically enabled for Fortran.
38000
38001 2010-02-20  David S. Miller  <davem@davemloft.net>
38002
38003         * configure.ac: Test if linker and assembler properly support
38004         GOTDATA_OP relocations.
38005         * configure: Rebuild.
38006         * config.in: Likewise.
38007         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
38008         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
38009         (movsi_high_pic): Likewise.
38010         (movdi_lo_sum_pic): Likewise.
38011         (movdi_high_pic): Likewise.
38012         (movsi_pic_gotdata_op): New pattern.
38013         (movdi_pic_gotdata_op): Likewise.
38014         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
38015         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
38016
38017 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
38018
38019         PR target/43067
38020         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
38021         attribute to ssemul.
38022         (xop_mulv2div2di3_high): Ditto.
38023
38024 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38025
38026         PR c++/35669
38027         * c.opt (Wconversion-null): New option.
38028         * doc/invoke.texi (Wconversion-null): Document.
38029
38030 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38031
38032         * common.opt (Wlarger-than-): Add Undocumented.
38033
38034 2010-02-19  Mike Stump  <mikestump@comcast.net>
38035
38036         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
38037
38038 2010-02-19  Jason Merrill  <jason@redhat.com>
38039
38040         PR target/40332
38041         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
38042         * configure: Likewise.
38043
38044 2010-02-20  Alan Modra  <amodra@gmail.com>
38045
38046         PR middle-end/42344
38047         * cgraph.h (cgraph_make_decl_local): Declare.
38048         * cgraph.c (cgraph_make_decl_local): New function.
38049         (cgraph_make_node_local): Use it.
38050         * cgraphunit.c (cgraph_function_versioning): Likewise.
38051         * ipa.c (function_and_variable_visibility): Likewise.
38052
38053 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38054
38055         PR bootstrap/43121
38056         * except.c (sjlj_emit_function_enter): Don't call
38057         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
38058         directly.
38059         * rtl.h (add_reg_br_prob_note): Remove prototype.
38060
38061 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38062
38063         PR 41779
38064         * c-common.c (conversion_warning): Remove widening conversions
38065         before checking the conversion of integers to reals.
38066
38067 2010-02-19  Mike Stump  <mikestump@comcast.net>
38068
38069         PR middle-end/43125
38070         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
38071
38072         PR objc/43061
38073         * cgraphunit.c (process_function_and_variable_attributes): Check
38074         DECL_PRESERVE_P instead of looking up attribute "used".
38075         * ipa-pure-const.c (check_decl): Likewise.
38076         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
38077         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
38078         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
38079         instead of attribute "used".
38080         * config/sol2-c.c (solaris_pragma_init): Likewise.
38081         (solaris_pragma_fini): Likewise.
38082
38083 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38084
38085         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
38086         Use XCNEW instead of xcalloc.
38087         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
38088         XNEW instead of xmalloc.
38089         (get_fields): Use XNEWVEC instead of xmalloc.
38090
38091         PR debug/43084
38092         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
38093         populate vars array.
38094         (create_new_general_access): For debug stmts just reset value.
38095         (get_stmt_accesses): For accesses within debug stmts just record them
38096         using add_access_to_acc_sites instead of preventing the peeling or
38097         counting them as accesses.
38098
38099         PR middle-end/42233
38100         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
38101
38102 2010-02-19  Richard Guenther  <rguenther@suse.de>
38103
38104         PR tree-optimization/42916
38105         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
38106         instructions.
38107
38108 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
38109
38110         * configure.ac: Replace all uses of changequote in macro arguments
38111         with proper quoting.
38112
38113 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38114
38115         PR middle-end/42233
38116         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
38117
38118 2010-02-19  Richard Guenther  <rguenther@suse.de>
38119
38120         PR tree-optimization/42944
38121         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
38122         test for aliasing with errno.
38123
38124 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38125
38126         PR middle-end/42233
38127         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
38128         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
38129         * dojump.c: Include output.h.
38130         (inv): New inline function.
38131         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
38132         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
38133         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
38134         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
38135         argument, pass it down to other calls.
38136         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
38137         add REG_BR_PROB note to the conditional jump.
38138         * cfgexpand.c (add_reg_br_prob_note): Removed.
38139         (expand_gimple_cond): Don't call it, add the probability
38140         as last argument to jumpif_1/jumpifnot_1.
38141         * Makefile.in (dojump.o): Depend on output.h.
38142         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
38143         callers.
38144         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
38145         * stmt.c (do_jump_if_equal): Likewise.
38146         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
38147         * loop-unswitch.c (compare_and_jump_seq): Likewise.
38148         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
38149         Likewise.
38150         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
38151         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
38152         jumpifnot_1 callers.
38153         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
38154         callers.
38155         (store_expr): Adjust jumpifnot caller.
38156         (store_constructor): Adjust jumpif caller.
38157
38158         PR middle-end/42233
38159         * gimplify.c (gimple_boolify): For __builtin_expect call
38160         gimple_boolify also on its first argument.
38161
38162 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
38163
38164         * configure.ac (gnu-unique-object): Wrap regexps using [] in
38165         changequote block.
38166         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
38167         * configure: Regenerated.
38168
38169 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
38170
38171         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
38172         lang_hooks.types_compatible_p instead of comptypes.
38173
38174 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
38175
38176         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
38177         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
38178         if __prefer_thumb__ is defined.
38179
38180 2010-02-18  Martin Jambor  <mjambor@suse.cz>
38181
38182         PR tree-optimization/43066
38183         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
38184         array with zero-sized element type.
38185
38186 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
38187
38188         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
38189         rtx, allocate struct var_loc_node here and return it to the
38190         caller, and only if it is actually needed.
38191         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
38192         move it earlier and return immediately if it returns NULL.
38193
38194 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
38195
38196         * config/sparc/gas.h: New file.  Restore
38197         TARGET_ASM_NAMED_SECTION to its ELF default.
38198         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
38199         check !HAVE_GNU_AS.
38200         * config/sparc/sparc.c (sparc_elf_asm_named_section):
38201         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
38202         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
38203         after sparc/sysv4.h.
38204
38205 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
38206
38207         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
38208
38209 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
38210
38211         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
38212         patterns from predicated pattern.
38213
38214 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
38215
38216         PR target/43103
38217         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
38218         for insn mnemonic suffix.
38219
38220 2010-02-17  Richard Guenther  <rguenther@suse.de>
38221
38222         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
38223         to loop PHI nodes.
38224
38225 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
38226
38227         PR debug/42918
38228         * caller-save.c (save_call_clobbered_regs): If BB ends with
38229         a DEBUG_INSN, move any notes in between last real insn and the last
38230         DEBUG_INSN after the last DEBUG_INSN.
38231
38232 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
38233
38234         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
38235         Fix return type.  Fix argument type.  Explain meaning of return value.
38236
38237 2010-02-16  Richard Guenther  <rguenther@suse.de>
38238
38239         PR tree-optimization/41043
38240         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
38241         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
38242         statements ...
38243         (vrp_visit_phi_node): ... but only for loop PHI nodes.
38244
38245 2010-02-16  Ira Rosen  <irar@il.ibm.com>
38246
38247         PR tree-optimization/43074
38248         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
38249         * tree-vect-loop.c (vect_analyze_loop_operations): Add
38250         vectorizable cycles in hybrid SLP check.
38251         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
38252
38253 2010-02-16  Richard Guenther  <rguenther@suse.de>
38254
38255         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
38256         (true_dependence): If memrefs_conflict_p computes must-alias
38257         trust it.  Move TBAA check after offset-based disambiguation.
38258         (canon_true_dependence): Likewise.
38259
38260 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
38261
38262         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
38263         * doc/invoke.texi: Document it.
38264         * var-tracking.c: Include toplev.h and params.h.
38265         (vt_find_locations): Return bool indicating success.  Compute
38266         hash sizes unconditionally.  Check new parameter, report.
38267         (variable_tracking_main_1): Check vt_find_locations results and
38268         retry.  Renamed from...
38269         (variable_tracking_main): ... this.  New wrapper to preserve
38270         flag_var_tracking_assignments.
38271         * Makefile.in (var-tracking.o): Adjust dependencies.
38272
38273 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
38274             Jakub Jelinek  <jakub@redhat.com>
38275
38276         PR target/42854
38277         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
38278         if weak_import attribute is present.
38279         * config/darwin.c (machopic_select_section): Likewise.
38280
38281 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
38282
38283         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
38284         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
38285         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
38286         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
38287
38288         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
38289         types.
38290
38291         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
38292         Fix argument types.
38293
38294         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
38295         Rewrite text to refer to the names.
38296
38297 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
38298
38299         * config/i386/i386-builtin-types.def
38300         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
38301         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
38302         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
38303         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
38304         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
38305         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
38306         IX86_BUILTIN_VPERMIL2PS256.
38307         (MULTI_ARG_4_DF2_DI_I): Defined.
38308         (MULTI_ARG_4_DF2_DI_I1): Defined.
38309         (MULTI_ARG_4_SF2_SI_I): Defined.
38310         (MULTI_ARG_4_SF2_SI_I1): Defined.
38311         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
38312         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
38313         __builtin_ia32_vpermil2ps256.
38314         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
38315         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
38316         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
38317         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
38318         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
38319         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
38320         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
38321         CODE_FOR_xop_vpermil2v8sf3.
38322         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
38323         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
38324         * config/i386/xopintrin.h (_mm_permute2_pd): New.
38325         (_mm256_permute2_pd): New.
38326         (_mm_permute2_ps): New.
38327         (_mm256_permute2_ps): New.
38328
38329 2010-02-15  Nick Clifton  <nickc@redhat.com>
38330
38331         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
38332         boolean parameters.  Use emit_jump_insn when emitting a pop
38333         instruction containing a return insn.
38334         (push): Use 'true' rather than '1' as second parameter to F.
38335         (h8300_expand_prologue): Likewise.
38336         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
38337         (h8300_expand_epilogue): Likewise.
38338
38339 2010-02-15  Richard Guenther  <rguenther@suse.de>
38340
38341         PR middle-end/43068
38342         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
38343         if that is zero.
38344
38345 2010-02-15  Nick Clifton  <nickc@redhat.com>
38346
38347         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
38348         delta.
38349
38350 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
38351
38352         * intl.c (fake_ngettext): New function.
38353         * intl.h (fake_ngettext): Declare.
38354         (ngettext): Define macro.
38355         * collect2.c (notice_translated): New function.
38356         (main): Use notice_translated and ngettext.
38357         * collect2.h (notice_translated): Declare.
38358
38359 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
38360
38361         * reorg.c (delete_computation): Comment fixes.
38362         * caller-save.c (setup_save_areas): Idem.
38363         * sel-sched-dump.c (dump_lv_set): Idem.
38364         * rtl.def: Idem.
38365
38366 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38367
38368         * config/s390/s390.c (s390_sched_init): New function.
38369         (TARGET_SCHED_INIT): Target hook defined.
38370
38371 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
38372             Jack Howarth  <howarth@bromo.med.uc.edu>
38373             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
38374
38375         PR target/42982
38376         Partial revert of unintended change in fix for PR41605.
38377         * config/darwin.h: Fix typo.
38378         * config/darwin9.h: Same.
38379
38380 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
38381
38382         * c-pch.c (pch_init): Clear v.
38383
38384 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38385
38386         PR middle-end/42930
38387         * graphite-scop-detection.c (graphite_can_represent_scev): Call
38388         graphite_can_represent_init for MULT_EXPR.
38389
38390 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38391
38392         PR middle-end/42914
38393         PR middle-end/42530
38394         * graphite-sese-to-poly.c (remove_phi): New.
38395         (translate_scalar_reduction_to_array): Call remove_phi.
38396
38397 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38398
38399         PR middle-end/42771
38400         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
38401         * graphite-clast-to-gimple.h (gloog): Update declaration.
38402         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
38403         * graphite-poly.h (struct poly_bb): Add missing comments.
38404         (struct scop): Add poly_scop_p field.
38405         (POLY_SCOP_P): New.
38406         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
38407         * graphite.c (graphite_transform_loops): Build the polyhedral
38408         representation for each scop before code generation.
38409         * sese.c (rename_variables_in_operand): Removed.
38410         (rename_variables_in_expr): Return the renamed expression.
38411         (rename_sese_parameters): New.
38412         * sese.h (rename_sese_parameters): Declared.
38413
38414 2010-02-11  Richard Guenther  <rguenther@suse.de>
38415
38416         PR tree-optimization/42998
38417         * tree-ssa-pre.c (create_expression_by_pieces): Treat
38418         POINTER_PLUS_EXPR properly.
38419
38420 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38421             Changpeng Fang  <changpeng.fang@amd.com>
38422
38423         PR middle-end/40886
38424         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
38425         the cost of an IV candidate when the IV is used in a test against zero.
38426
38427         * gcc.dg/tree-ssa/ivopts-3.c: New.
38428
38429 2010-02-11  Richard Guenther  <rguenther@suse.de>
38430
38431         PR lto/41664
38432         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
38433         pointer-vs-decl case by swapping refs.  Handle some cases
38434         of pointer-vs-decl disambiguations more conservatively.
38435         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
38436         to false after expanding.
38437
38438 2010-02-11  Richard Guenther  <rguenther@suse.de>
38439
38440         PR driver/43021
38441         * gcc.c (process_command): Handle LTO file@offset case more
38442         appropriately.
38443
38444 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
38445
38446         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
38447         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
38448         of DEBUG_INSNs.
38449         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
38450
38451         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
38452         if MEM's mode size isn't DWARF2_ADDR_SIZE.
38453         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
38454         Optimize eq/ne comparisons when both arguments are known to be
38455         zero-extended.
38456         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
38457         Don't mask operands unnecessarily if they are known to be already
38458         zero-extended.
38459
38460 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
38461
38462         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
38463         instead of loop.
38464
38465 2010-02-10  Richard Guenther  <rguenther@suse.de>
38466
38467         PR tree-optimization/43017
38468         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
38469         for wrapping signed arithmetic.
38470
38471 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
38472
38473         PR debug/43010
38474         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
38475         if no debug info should be emitted for it.
38476
38477 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
38478
38479         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
38480         note when flag_exceptions is set.
38481
38482 2010-02-10  Duncan Sands  <baldrick@free.fr>
38483
38484         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
38485
38486 2010-02-10  Richard Guenther  <rguenther@suse.de>
38487
38488         PR c/43007
38489         * tree.c (get_unwidened): Handle constants.
38490         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
38491
38492 2010-02-10  Martin Jambor  <mjambor@suse.cz>
38493
38494         PR lto/42985
38495         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
38496         check for variable argument counts independently.
38497
38498 2010-02-10  Christian Bruel  <christian.bruel@st.com>
38499
38500         PR target/42841
38501         * config/sh/sh.c (find_barrier): Increase length for non delayed
38502         conditional branches.
38503
38504 2010-02-10  Christian Bruel  <christian.bruel@st.com>
38505
38506         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
38507
38508 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
38509
38510         * builtins.c (set_builtin_user_assembler_name): Also handle
38511         ffs if int is smaller than word.
38512
38513 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
38514
38515         PR middle-end/42973
38516         * ira-conflicts.c (get_dup): Remove.
38517         (process_reg_shuffles): Add new parameter.  Use it as an
38518         additional guard for copy generation.
38519         (add_insn_allocno_copies): Rewrite.
38520
38521 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
38522
38523         * common.opt (fsched2-use-traces): Preserved for backward
38524         compatibility.
38525         * doc/invoke.texi: Remove the documentation about option
38526         -fsched2-use-traces.
38527         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
38528         flag_sched2_use_traces.
38529         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
38530         the backward compatibility flag section.
38531
38532 2010-02-09  Richard Guenther  <rguenther@suse.de>
38533
38534         PR tree-optimization/43008
38535         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
38536         make HEAP variables initialized from global memory if they
38537         are not known builtin functions.
38538         (find_func_aliases): Adjust.
38539
38540 2010-02-09  Richard Guenther  <rguenther@suse.de>
38541
38542         PR tree-optimization/43000
38543         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
38544         arithmetic manually.
38545
38546 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
38547
38548         PR tree-optimization/42931
38549         * tree-loop-linear.c (try_interchange_loops): Don't call
38550         double_int_mul if estimated_loop_iterations failed.
38551
38552 2010-02-08  Martin Jambor  <mjambor@suse.cz>
38553
38554         PR middle-end/42898
38555         * tree-sra.c (build_accesses_from_assign): Do not mark in
38556         should_scalarize_away_bitmap if stmt has volatile ops.
38557         (sra_modify_assign): Do not process assigns piecemeal if if stmt
38558         has volatile ops.
38559
38560 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
38561
38562         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
38563
38564 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
38565
38566         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
38567         before the pattern.
38568
38569 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
38570
38571         PR middle-end/42946
38572         * df-core.c (df_finish_pass): Change type of saved_flags to int.
38573
38574 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
38575
38576         PR middle-end/42988
38577         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
38578         to unknown_dependence.
38579         (graphite_legal_transform_dr): Handle the unknown_dependence.
38580         (graphite_carried_dependence_level_k): Same.
38581
38582 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
38583
38584         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
38585
38586 2010-02-07  Richard Guenther  <rguenther@suse.de>
38587
38588         PR middle-end/42991
38589         * expr.c (get_inner_reference): Always initialize *pbitsize.
38590
38591 2010-02-07  Richard Guenther  <rguenther@suse.de>
38592
38593         PR middle-end/42956
38594         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
38595         new ARRAY_REFs on variable size element or minimal index arrays.
38596         Complete.
38597         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
38598         gimple_fold_indirect_ref.
38599
38600 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
38601
38602         PR target/42957
38603         * arm.c (arm_override_options): Just return if the user has specified
38604         an invalid fpu name.
38605
38606 2010-02-03  Jason Merrill  <jason@redhat.com>
38607
38608         PR c++/42870
38609         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
38610         i386_pe_maybe_record_exported_symbol.
38611
38612 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
38613
38614         PR target/42924
38615         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
38616         (pa_delegitimize_address): New function.
38617
38618 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
38619
38620         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
38621         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
38622
38623 2010-02-05  Richard Guenther  <rguenther@suse.de>
38624
38625         PR lto/42762
38626         * lto-streamer-in.c (get_resolution): Deal with references
38627         to undefined functions.
38628
38629 2010-02-05  Richard Guenther  <rguenther@suse.de>
38630
38631         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
38632         (fold_const_aggregate_ref): Likewise.
38633         (ccp_fold_stmt): Substitute loads.
38634         (maybe_fold_reference): Verify types before substituting.
38635         Unshare properly.
38636         (fold_gimple_assign): Unshare properly.
38637         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
38638
38639 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
38640
38641         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
38642         for rs6000_gen_cell_microcode.
38643
38644 2010-02-04  Richard Guenther  <rguenther@suse.de>
38645
38646         PR rtl-optimization/42952
38647         * dse.c (const_or_frame_p): Remove MEM handling.
38648
38649 2010-02-04  Nick Clifton  <nickc@redhat.com>
38650
38651         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
38652         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
38653         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
38654         (mn10300_asm_output_mi_thunk): New function.
38655         (mn10300_can_output_mu_thunk): New function.
38656         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
38657         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
38658         (FUNCTION_ARG): Delete incorrect comment.
38659
38660 2010-02-03  Jason Merrill  <jason@redhat.com>
38661
38662         PR c++/40138
38663         * fold-const.c (operand_equal_p): Handle erroneous types.
38664
38665 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
38666
38667         * config/h8300/h8300.md (can_delay): Fix attibute condition.
38668
38669 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
38670
38671         PR rtl-optimization/42941
38672         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
38673         of xmalloc.
38674
38675 2010-02-03  Jason Merrill  <jason@redhat.com>
38676
38677         PR c++/35652
38678         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
38679
38680 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
38681
38682         PR debug/42896
38683         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
38684         (cselib_reset_table): Renamed from...
38685         (cselib_reset_table_with_next_value): ... this.
38686         (cselib_get_next_uid): Renamed from...
38687         (cselib_get_next_unknown_value): ... this.
38688         * cselib.c (next_uid): Renamed from...
38689         (next_unknown_value): ... this.
38690         (cselib_clear_table): Adjust.
38691         (cselib_reset_table): Adjust.  Renamed from...
38692         (cselib_reset_table_with_next_value): ... this.
38693         (cselib_get_next_uid): Adjust.  Renamed from...
38694         (cselib_get_next_unknown_value): ... this.
38695         (get_value_hash): Use hash.
38696         (cselib_hash_rtx): Likewise.
38697         (new_cselib_val): Adjust.  Set and dump uid.
38698         (cselib_lookup_mem): Pass next_uid as hash.
38699         (cselib_subst_to_values): Likewise.
38700         (cselib_log_lookup): Dump uid.
38701         (cselib_lookup): Pass next_uid as hash.  Adjust.
38702         (cselib_process_insn): Adjust.
38703         (cselib_init): Initialize next_uid.
38704         (cselib_finish): Adjust.
38705         (dump_cselib_table): Likewise.
38706         * dse.c (canon_address): Dump value uid.
38707         * print-rtl.c (print_rtx): Print value uid.
38708         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
38709         (dvuid): New type.
38710         (dv_uid): New function, sort of renamed from...
38711         (dv_htab_hash): ... this, reimplemented in terms of it and...
38712         (dv_uid2hash): ... this.  New.
38713         (variable_htab_eq): Drop excess assertions.
38714         (tie_break_pointers): Removed.
38715         (canon_value_cmp): Compare uids.
38716         (variable_post_merge_New_vals): Print uids.
38717         (vt_add_function_parameters): Adjust.
38718         (vt_initialize): Reset table.  Adjust.
38719
38720 2010-02-03  Richard Guenther  <rguenther@suse.de>
38721
38722         PR tree-optimization/42944
38723         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
38724         (call_may_clobber_ref_p_1): Likewise.  Properly handle
38725         malloc and calloc clobbering errno.
38726
38727 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
38728
38729         * doc/invoke.texi: Fix name of sched1 dump.
38730
38731         * opts.c (decode_options): Set flag_tree_switch_conversion
38732         only conditionally on optimize >= 2.
38733
38734         * gcse.c: Assorted comment fixes in pass description.
38735
38736 2010-02-03  Anthony Green  <green@moxielogic.com>
38737
38738         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
38739         nop padding in order to maintain alignment of storage location of
38740         target function address.
38741         (moxie_trampoline_init): Store target function address at newly
38742         aligned location.
38743         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
38744         to 32.
38745         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
38746
38747 2010-02-03  Richard Guenther  <rguenther@suse.de>
38748
38749         PR middle-end/42927
38750         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
38751
38752 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38753
38754         * config.gcc: Reenable check for obsolete targets.
38755         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
38756         mips-sgi-irix6.[0-4]*.
38757
38758 2010-02-02  Nick Clifton  <nickc@redhat.com>
38759
38760         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
38761         constant size of 4 as being the same as 0.
38762         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
38763         can take values in the range 0..4.
38764
38765 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
38766
38767         PR java/41991
38768         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
38769         as _darwin10_Unwind_FindEnclosingFunction().
38770         * libgcc-libsystem.ver: New.
38771
38772 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
38773
38774         PR target/41399
38775         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
38776         implicitly set registers.
38777
38778 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
38779
38780         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
38781         (arm_override_options): Allow automatic selection of the thread
38782         pointer register if thumb2.
38783         (legitimize_pic_address): Improve code sequences for Thumb2.
38784         (arm_call_tls_get_addr): Likewise.
38785         (legitimize_tls_address): Likewise.
38786         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
38787         (pic_load_addr_32bit): ... this.  New named pattern.
38788         * thumb2.md (pic_load_addr_thumb2): Delete.
38789         (pic_load_dot_plus_four): Delete.
38790         (tls_load_dot_plus_four): New named pattern.
38791
38792 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38793
38794         PR libgomp/29986
38795         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
38796         Document fix for TLS bug.
38797
38798 2010-01-31  Richard Guenther  <rguenther@suse.de>
38799
38800         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
38801         conservatively correct.
38802
38803 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38804
38805         PR target/42850
38806         Revert:
38807         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38808
38809         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38810
38811 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
38812
38813         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
38814
38815 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
38816
38817         * config.gcc: Adjust order of makefile fragments for mingw targets.
38818
38819 2010-01-31  Richard Guenther  <rguenther@suse.de>
38820
38821         PR middle-end/42898
38822         * gimplify.c (gimplify_init_constructor): For volatile LHS
38823         initialize a temporary.
38824
38825 2010-01-31  Matthias Klose  <doko@ubuntu.com>
38826
38827         * configure.ac: Fix __stack_chk_fail check for cross builds configured
38828         --with-headers
38829         * configure: Regenerate.
38830
38831 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
38832
38833         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
38834         the same alias set and their sizes different constantness.
38835         (aliasing_component_refs_p): Revert 2009-10-24 change.
38836
38837 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38838
38839         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
38840         unused.
38841
38842 2010-01-29  Richard Guenther  <rguenther@suse.de>
38843
38844         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
38845         Assert we successfully updated the call.
38846
38847 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
38848
38849         PR rtl-optimization/42889
38850         * df.h (df_set_bb_dirty_nonlr): New prototype.
38851         * df-core.c (df_set_bb_dirty_nonlr): New function.
38852         * df-scan.c (df_insn_rescan): Call it instead of
38853         df_set_bb_dirty for DEBUG_INSNs.
38854
38855 2010-01-29  Richard Guenther  <rguenther@suse.de>
38856
38857         PR middle-end/37448
38858         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
38859         quadratic behavior in most cases.
38860
38861 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
38862
38863         PR target/42891
38864         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
38865         in the call to gen_x86_movsicc_0_m1.
38866
38867 2010-01-28  Richard Guenther  <rguenther@suse.de>
38868
38869         PR tree-optimization/42871
38870         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
38871
38872 2010-01-28  Richard Guenther  <rguenther@suse.de>
38873
38874         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
38875         into call arguments.
38876
38877 2010-01-28  Richard Guenther  <rguenther@suse.de>
38878
38879         PR middle-end/42883
38880         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
38881         the forwarder if the destination is an EH landing pad.
38882
38883 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
38884
38885         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
38886         block list passed to gimple_duplicate_sese_tail.
38887         (parallelize_loops): Avoid parallelization when the function
38888         has_nonlocal_label.
38889         Avoid parallelization when the preheader is IRREDUCIBLE.
38890         Try to optimize when estimated_loop_iterations_int is unresolved.
38891         Add the loop's location to the dump file.
38892         * tree-cfg.c (add_phi_args_after_redirect): Remove.
38893         (gimple_duplicate_sese_tail): Remove the check for the latch.
38894         Redirect nexits to the exit block.
38895         Remove handling of the incoming edges to the latch.
38896         Redirect the backedge from the copied latch to the exit bb.
38897
38898 2010-01-28  Michael Matz  <matz@suse.de>
38899
38900         PR target/42881
38901         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
38902         Wrap force_reg into a sequence, emit it before user.
38903
38904 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
38905
38906         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
38907         (arm_rev): New.
38908         (arm_legacy_rev): Likewise.
38909         (thumb_legacy_rev): Likewise.
38910
38911 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
38912
38913         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
38914         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
38915         on MEM's address failed, try avoid_constant_pool_reference and
38916         recurse if it returned something different.
38917         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
38918         address, try avoid_constant_pool_reference and recurse if it
38919         returned something different.
38920         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
38921         address and avoid_constant_pool_reference returned something
38922         different, don't set have_address.
38923
38924 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
38925
38926         PR debug/42861
38927         * var-tracking.c (val_store): Add modified argument, obey it.
38928         Adjust callers.
38929         (count_uses): Move down logging of main.
38930         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
38931         don't need resolution.
38932         (emit_notes_in_bb): Likewise.
38933
38934 2010-01-27  Richard Guenther  <rguenther@suse.de>
38935
38936         PR middle-end/42878
38937         * tree-inline.c (remap_decl): Delay remapping of SSA name
38938         default definitions until we need them.
38939
38940 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
38941
38942         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
38943         (rs6000_delegitimize_address): New function.
38944
38945         * config/s390/s390.c (s390_delegitimize_address): Call
38946         delegitimize_mem_from_attrs.
38947
38948         PR middle-end/42874
38949         * tree-inline.c (cannot_copy_type_1): Removed.
38950         (copy_forbidden): Don't forbid copying of functions containing
38951         records/unions with variable length fields.
38952
38953 2010-01-27  Christian Bruel  <christian.bruel@st.com>
38954
38955         Revert:
38956         PR target/42841
38957         * config/sh/sh.c (find_barrier): Increase length for non delayed
38958         conditional branches.
38959
38960 2010-01-27  Matthias Klose  <doko@ubuntu.com>
38961
38962         * configure.ac (gnu-unique-object): Fix ldd version check.
38963         * configure: Regenerate.
38964
38965 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38966
38967         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
38968         HAVE_GNU_AS value.
38969         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
38970         Test for HAVE_GNU_AS value.
38971
38972 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38973
38974         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
38975         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
38976         INT64_TYPE): Define.
38977         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
38978         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
38979         INT_LEAST64_TYPE): Define.
38980         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
38981         UINT_LEAST64_TYPE): Define.
38982         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
38983         INT_FAST64_TYPE): Define.
38984         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
38985         UINT_FAST64_TYPE): Define.
38986         (INTMAX_TYPE, UINTMAX_TYPE): Define.
38987         (INTPTR_TYPE, UINTPTR_TYPE): Define.
38988         (SIG_ATOMIC_TYPE): Define.
38989
38990 2010-01-26  Richard Guenther  <rguenther@suse.de>
38991
38992         * df-scan.c (df_scan_set_bb_info): Remove assert.
38993         (df_insn_rescan_debug_internal): Merge asserts.
38994         (df_install_ref): Likewise.
38995         (df_mark_reg): Use bitmap_set_range.
38996         (df_hard_reg_used_p): Remove assert.
38997         (df_hard_reg_used_count): Likewise.
38998
38999 2010-01-26  Richard Guenther  <rguenther@suse.de>
39000
39001         PR rtl-optimization/42685
39002         * web.c (web_main): Ignore DEBUG_INSNs.
39003
39004 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
39005
39006         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
39007
39008         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
39009         Fix types of fndecl and arglist parameters.
39010
39011 2010-01-26  Richard Guenther  <rguenther@suse.de>
39012
39013         PR middle-end/42806
39014         * tree-eh.c (unsplit_eh): Skip debug insns.
39015
39016 2010-01-26  Richard Guenther  <rguenther@suse.de>
39017
39018         PR tree-optimization/42250
39019         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
39020
39021 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
39022
39023         PR fortran/42866
39024         * omp-low.c (expand_omp_sections): Only use single_pred if
39025         l2_bb is single_pred_p.
39026
39027 2010-01-25  Christian Bruel  <christian.bruel@st.com>
39028
39029         PR target/42841
39030         * config/sh/sh.c (find_barrier): Increase length for non delayed
39031         conditional branches.
39032         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
39033
39034 2010-01-24  David S. Miller  <davem@davemloft.net>
39035
39036         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
39037         define if not using GAS.
39038         * config/sparc/sparc.c (sparc_elf_asm_named_section):
39039         Likewise.  Delete SECTION_MERGE code, which is only applicable
39040         when using GAS.
39041
39042 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
39043
39044         PR c++/42748
39045         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
39046         mangling of va_list in system headers.
39047
39048 2010-01-23  Toon Moene  <toon@moene.org>
39049
39050         * tree-predcom.c (combine_chains): Return NULL, not false.
39051
39052 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
39053
39054         * tree-loop-distribution.c (distribute_loop): Fix declaration and
39055         initialization of variable res to agree with return type.
39056
39057 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
39058
39059         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
39060         * tree-sra.c: Add include of expr.h.
39061
39062 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
39063
39064         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
39065         insert the debug stmt on the single non-EH edge from the stmt.
39066
39067 2010-01-22  Richard Henderson  <rth@redhat.com>
39068
39069         PR tree-opt/42833
39070         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
39071         the RHS until after generate_subtree_copies has insertted its
39072         code before the current statement.
39073
39074 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
39075
39076         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
39077
39078         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
39079
39080 2010-01-21  Martin Jambor  <mjambor@suse.cz>
39081
39082         PR tree-optimization/42585
39083         * tree-sra.c (struct access): New field grp_total_scalarization.
39084         (dump_access): Dump the new field.
39085         (should_scalarize_away_bitmap): New variable.
39086         (cannot_scalarize_away_bitmap): Likewise.
39087         (sra_initialize): Allocate new bitmaps.
39088         (sra_deinitialize): Free new bitmaps.
39089         (create_access_1): New function.
39090         (create_access): Parts moved to create_access_1.
39091         (type_consists_of_records_p): New function.
39092         (completely_scalarize_record): Likewise.
39093         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
39094         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
39095         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
39096         access.
39097         (analyze_all_variable_accesses): Completely scalarize small eligible
39098         records.
39099
39100 2010-01-21  Martin Jambor  <mjambor@suse.cz>
39101
39102         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
39103
39104 2010-01-21  Andrew Haley  <aph@redhat.com>
39105
39106         * gcc.c (process_command): Move lang_specific_driver before
39107         setting cc_libexec_prefix.
39108
39109 2010-01-21  Richard Guenther  <rguenther@suse.de>
39110
39111         PR middle-end/19988
39112         * fold-const.c (negate_expr_p): Pretend only negative
39113         real constants are easily negatable.
39114
39115 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
39116             Jason Merrill  <jason@redhat.com>
39117
39118         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
39119         (TYPE_TRANSPARENT_AGGR): this, for union and record.
39120         * calls.c (initialize argument_information): Handle it.
39121         * c-common.c (handle_transparent_union_attribute): Use new name.
39122         * c-decl.c (finish_struct): Ditto.
39123         * c-typeck.c (type_lists_compatible_p): Ditto.
39124         (convert_for_assignment): Use new name and also handle record.
39125         * function.c (aggregate_value_p): Handle it.
39126         (pass_by_reference): Ditto.
39127         (assign_parm_data_types): Ditto.
39128         * print-tree.c (print_node): Ditto.
39129         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
39130         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
39131         * tree.c (first_field): New fn.
39132
39133 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
39134
39135         PR target/42818
39136         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
39137         even when linking statically, for now.
39138
39139 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
39140
39141         PR debug/42715
39142         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
39143         without a cselib val.
39144         (count_uses): Accept MO_VAL_SET with no val on stores.
39145         (add_stores): Likewise.
39146
39147 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39148
39149         * var-tracking.c (check_value_val): Add a compile time assertion.
39150         (dv_is_decl_p): Simplify.
39151         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
39152         gcc_assert if ENABLE_CHECKING.
39153
39154 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
39155
39156         PR debug/42782
39157         * var-tracking.c: Include tree-flow.h.
39158         (mem_dies_at_call): New.
39159         (dataflow_set_preserve_mem_locs): Use it.
39160         (dataflow_set_remove_mem_locs): Likewise.
39161         (dump_var): Renamed from dump_variable.  Adjust all callers.
39162         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
39163         * Makefile.in (var-tracking.o): Adjust deps.
39164
39165 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
39166
39167         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
39168
39169 2010-01-20  Richard Guenther  <rguenther@suse.de>
39170
39171         PR tree-optimization/42717
39172         * tree-ssa-dce.c (get_live_post_dom): Remove.
39173         (forward_edge_to_pdom): Take an arbitrary edge to copy
39174         degenerate PHI args from.
39175         (remove_dead_stmt): Use the first post-dominator even if it
39176         does not contain live statements as redirection destination.
39177
39178 2010-01-20  Richard Guenther  <rguenther@suse.de>
39179
39180         * tree-inline.c (estimate_num_insns): Handle EH builtins.
39181
39182 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39183
39184         * sel-sched.c (create_speculation_check): Remove set but not used
39185         variable twin.
39186         (try_transformation_cache): Remove set but not used variable ds.
39187         (calculate_privileged_insns): Remove set but not used variables
39188         cur_insn and min_spec_insn.
39189         (find_best_expr): Remove set but not used variable avail_n.
39190         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
39191         variable e.
39192         * cgraphunit.c (assemble_thunk): Remove set but not used variable
39193         false_label.
39194         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
39195         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
39196         new_scop_exit_edge.
39197
39198 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
39199
39200         PR bootstrap/42786
39201         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
39202         cpu types.  Add support for *-sse3 cpu types.
39203         (x86_64-*-*): Ditto.
39204
39205 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39206
39207         PR middle-end/42803
39208         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
39209         argument, call initializer_constant_valid_p_1 instead of
39210         initializer_constant_valid_p, pass CACHE to it, return NULL
39211         immediately if first call returns NULL.
39212         (initializer_constant_valid_p_1): New function.
39213         (initializer_constant_valid_p): Use it.
39214
39215 2010-01-20  Thomas Quinot  <quinot@adacore.com>
39216
39217         * tree.def (PLACEHOLDER_EXPR): Fix comment.
39218
39219 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39220
39221         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
39222         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
39223         (loc_list_from_tree): Don't handle unsigned division.  Handle
39224         signed modulo using DW_OP_{over,over,div,mul,minus}.
39225         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
39226         modulo instead of signed.
39227
39228 2010-01-20  DJ Delorie  <dj@redhat.com>
39229
39230         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
39231         (Fpa): Pass it
39232         (h8300_emit_stack_adjustment): Propogate it.
39233         (push): Pass it.
39234         (h8300_expand_prologue): Likewise.
39235         (h8300_expand_epilogue): Likewise.
39236
39237 2010-01-19  Michael Matz  <matz@suse.de>
39238
39239         PR tree-optimization/41783
39240         * tree-data-ref.c (toplevel): Include flags.h.
39241         (dump_data_dependence_relation):  Also dump the inputs if the
39242         result will be unknown.
39243         (split_constant_offset_1): Look through some conversions.
39244         * tree-predcom.c (determine_roots_comp): Restart a new chain if
39245         the offset from last element is too large.
39246         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
39247         (reassociate_to_the_same_stmt): Handle vector registers.
39248         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
39249         (e.g. conversions).
39250         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
39251         wide_prolog_niters argument, emit widening instructions.
39252         (vect_do_peeling_for_alignment): Adjust caller, use widened
39253         variant of the iteration cound.
39254         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
39255
39256 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
39257
39258         PR target/38697
39259         * config/arm/neon-testgen.m (emit_automatics): New parameter
39260         features. Adjust for Fixed_return_reg feature.
39261         (test_intrinsic): Call emit_automatics with new feature.
39262         * config/arm/neon.ml: Update copyright years.
39263         (features): New Fixed_return_reg feature.
39264         (ops): Update feature for Vget_low.
39265
39266 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
39267
39268         PR tree-optimization/42719
39269         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
39270         stmt uses.
39271
39272         PR debug/42728
39273         * fwprop.c (all_uses_available_at): Return false if def_set dest
39274         is a REG that is used in def_insn.
39275
39276 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
39277
39278         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
39279
39280         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
39281         Add argument names.
39282
39283         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
39284
39285         * target.h (struct gcc_target) <secondary_reload>: Change type
39286         of last argument to secondary_reload_info *.
39287
39288 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
39289
39290         PR target/42774
39291         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
39292         memory references with unaligned offsets.  Remove CQImode handling.
39293         (unaligned_memory_operand): Return 1 for memory references with
39294         unaligned offsets.  Remove CQImode handling.
39295
39296 2010-01-18  Richard Guenther  <rguenther@suse.de>
39297
39298         PR middle-end/39954
39299         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
39300         builtin calls.
39301
39302 2010-01-18  Richard Guenther  <rguenther@suse.de>
39303
39304         PR tree-optimization/42781
39305         * tree-ssa-structalias.c (find_what_var_points_to): Skip
39306         restrict processing only if the original variable was artificial.
39307
39308 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
39309
39310         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
39311         find number of popped argument bytes.
39312
39313         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
39314         Fix the text that describes the return value for invalid insns.
39315
39316         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
39317
39318         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
39319         Clarify what 'cost of the -dependence' is.  Fix quoting.
39320
39321         * toplev.c (default_get_pch_validity): Rename argument to "sz".
39322         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
39323
39324 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
39325
39326         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
39327         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
39328
39329 2010-01-17  Richard Guenther  <rguenther@suse.de>
39330
39331         PR middle-end/42248
39332         * function.c (split_complex_args): Take a VEC to modify.
39333         (assign_parms_augmented_arg_list): Build a VEC instead of
39334         a chain of PARM_DECLs.
39335         (assign_parms_unsplit_complex): Take a VEC of arguments.
39336         Do not fixup unmodified parms.
39337         (assign_parms): Deal with the VEC.
39338         (gimplify_parameters): Likewise.
39339
39340 2010-01-17  Richard Guenther  <rguenther@suse.de>
39341
39342         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
39343         node existence check.
39344         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
39345         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
39346         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
39347         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
39348         (gimple_execute_on_growing_pred): Likewise.
39349
39350 2010-01-17  Richard Guenther  <rguenther@suse.de>
39351
39352         PR tree-optimization/42773
39353         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
39354         (compute_antic_aux): Likewise.
39355         (compute_partial_antic_aux): Likewise.
39356
39357 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
39358
39359         PR debug/42767
39360         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
39361         and US_TRUNCATE.
39362
39363 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
39364
39365         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
39366         appearance.
39367
39368         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
39369         Fix markup for strict argument.
39370
39371         (TARGET_SCHED_REORDER2): Fix argument types.
39372
39373         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
39374         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
39375
39376         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
39377         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
39378
39379         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
39380         Add argument name.
39381
39382         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
39383         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
39384         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
39385         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
39386         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
39387
39388         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
39389
39390         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
39391
39392         (TARGET_ASM_RELOC_RW_MASK): Add return type.
39393         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
39394
39395         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
39396
39397         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
39398         Use prototype.
39399
39400         (TARGET_ASM_NAMED_SECTION): Fix argument list.
39401
39402         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
39403         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
39404
39405         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
39406
39407         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
39408
39409         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
39410         referring to it.  Fix language.
39411
39412         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
39413
39414         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
39415
39416         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
39417
39418         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
39419
39420         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
39421         '@var{stream}.  Remove stray 'and'.
39422
39423         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
39424
39425         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
39426
39427         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
39428
39429         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
39430         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
39431
39432         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
39433         Fix description of return value.
39434         Rename argument "sz" to "len."
39435
39436         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
39437         Clarify meaning of 'true' return value.
39438
39439         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
39440
39441         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
39442         rep_mode versus mode_rep.
39443
39444         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
39445
39446         (TARGET_BUILTIN_DECL): Fix name.
39447
39448         (TARGET_COMMUTATIVE_P): Fix type of first argument.
39449
39450         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
39451
39452         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
39453
39454         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
39455
39456         (TARGET_RELAXED_ORDERING): Use @deftypevr.
39457
39458         (TARGET_GET_DRAP_RTX): Note that this is a hook.
39459         Clarify language.
39460
39461         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
39462         Rename argument tm_fn to md_fn.
39463
39464         (TARGET_OPTION_PRINT): Fix argument list.
39465
39466 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
39467
39468         PR target/42664
39469         * config/i386/i386.c (ix86_fixup_binary_operands):
39470         Revert FMA4 fixup of operands.
39471
39472 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
39473
39474         PR other/42525
39475         * Makefile.in (write_entries_to_file, install-plugin):
39476         Use \012 instead of \n with tr.
39477
39478 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
39479
39480         * configure.ac (HAVE_AS_REF): New C macro.
39481         * configure: Regenerate.
39482         * config.in: Likewise.
39483         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
39484         if HAVE_AS_REF.
39485         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
39486         if HAVE_AS_REF.
39487
39488 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
39489
39490         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
39491
39492         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
39493
39494         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
39495
39496         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
39497
39498         (TARGET_IN_SMALL_DATA_P): Fix argument type.
39499
39500         (TARGET_BINDS_LOCAL_P): Fix argument type.
39501
39502         (TARGET_ASM_FILE_END): Use prototype.
39503
39504         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
39505
39506         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
39507
39508         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
39509
39510         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
39511
39512         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
39513         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
39514
39515         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
39516         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
39517
39518         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
39519         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
39520         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
39521         (TARGET_ADDR_SPACE_CONVERT): Likewise.
39522
39523         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
39524
39525         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
39526
39527         (TARGET_INIT_BUILTINS): Use prototype.
39528
39529         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
39530         Put 'const char *' in braces.  Fix parameter types.
39531         (TARGET_INVALID_CONVERSION): Fix parameter types.
39532         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
39533         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
39534
39535         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
39536         Fix argument type.
39537
39538         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
39539
39540         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
39541
39542 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
39543
39544         * doc/tm.texi (TARGET_HELP): Fix return type.
39545
39546         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
39547         in braces.  Fix argument types.
39548
39549         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
39550
39551         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
39552
39553         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
39554
39555         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
39556         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
39557
39558         (TARGET_MANGLE_TYPE): Fix argument types.
39559
39560         (TARGET_IRA_COVER_CLASSES): Use prototype.
39561
39562         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
39563
39564         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
39565
39566         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
39567
39568         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
39569
39570         (TARGET_CALLEE_COPIES): Fix argument types.
39571
39572         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
39573
39574         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
39575
39576         (TARGET_FUNCTION_VALUE): Fix argument types.
39577
39578         (TARGET_RETURN_IN_MSB): Fix argument type.
39579
39580         (TARGET_RETURN_IN_MEMORY): Fix argument types.
39581
39582         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
39583
39584         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
39585
39586         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
39587         agree with return type.
39588
39589         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
39590
39591 2010-01-15  Jing Yu  <jingyu@google.com>
39592
39593         PR rtl-optimization/42691
39594         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
39595         a pseudo to a constant and are merged, and adjust comments.
39596
39597 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
39598
39599         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
39600
39601 2010-01-15  Richard Guenther  <rguenther@suse.de>
39602
39603         PR middle-end/42739
39604         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
39605         labels of computed or non-local gotos to the destination.
39606         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
39607         landing pad label is the first label.
39608
39609 2010-01-15  Richard Guenther  <rguenther@suse.de>
39610
39611         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
39612
39613 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
39614
39615         PR target/42747
39616         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
39617         to allow generation of the xssqrtdp instruction on power7.
39618         (sqrtdf2_fpr): Ditto.
39619
39620 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39621
39622         PR middle-end/42674
39623         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
39624         functions with noreturn attribute.
39625
39626         PR c++/42608
39627         * varasm.c (declare_weak): Add weak attribute to decl if it
39628         doesn't have one already.
39629         (assemble_external): Only add decls to weak_decls if they also
39630         have weak attribute.
39631
39632 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
39633
39634         * var-tracking.c (var_reg_delete): Don't delete the association
39635         between REGs and values or one-part variables if the register
39636         isn't clobbered.
39637
39638 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39639
39640         PR debug/42657
39641         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
39642         because its first operand is a non-localized variable.
39643
39644 2010-01-14  Martin Jambor  <mjambor@suse.cz>
39645
39646         PR tree-optimization/42706
39647         * tree-sra.c (encountered_recursive_call): New variable.
39648         (encountered_unchangable_recursive_call): Likewise.
39649         (sra_initialize): Initialize both new variables.
39650         (callsite_has_enough_arguments_p): New function.
39651         (scan_function): Call decl and flags check only for IPA-SRA, check
39652         whether there is a recursive call and whether it has enough arguments.
39653         (all_callers_have_enough_arguments_p): New function.
39654         (convert_callers): Look for recursive calls only when
39655         encountered_recursive_call is set.
39656         (ipa_early_sra): Bail out either if
39657         !all_callers_have_enough_arguments_p or
39658         encountered_unchangable_recursive_call.
39659
39660 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39661
39662         * sel-sched.c: Add 2010 to copyright years.
39663         * sel-sched-ir.c: Likewise.
39664         * sel-sched-ir.h: Likewise.
39665
39666 2010-01-14  Martin Jambor  <mjambor@suse.cz>
39667
39668         PR tree-optimization/42714
39669         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
39670         constructors specially.
39671
39672 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39673
39674         * config/i386/drivers-i386.c (detect_caches_intel):
39675         Add l2sizekb parameter and fill in.
39676         (host_detect_local_cpu): Add l2sizekb, fill in.
39677         Add Atom small cache heuristic.
39678
39679 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39680
39681         * config/i386/drivers-i386.c (detect_caches_cpuid4):
39682         Add level3 parameter and fill in.
39683         (detect_caches_intel): Handle level3 cache.
39684
39685 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39686
39687         * config/i386/drivers-i386.c (host_detect_local_cpu):
39688         Fix core duo detection.
39689
39690 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39691
39692         * config/i386/drivers-i386.c (host_detect_local_cpu):
39693         Fix Atom detection.
39694
39695 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39696
39697         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
39698         (rs6000_variable_issue_1): this.  Use...
39699         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
39700
39701 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39702
39703         * sel-sched-ir.c (sel_restore_other_notes): Rename to
39704         sel_restore_notes.  Update all callers.  Call reemit_notes
39705         for all insns.
39706
39707 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39708
39709         PR rtl-optimization/42246
39710         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
39711         loops.
39712
39713 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39714
39715         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
39716         all successors is the same as number of successors in current region.
39717
39718 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39719
39720         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
39721         to rename is not separable.  Otherwise check that its LHS is not NULL.
39722
39723 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39724
39725         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
39726
39727 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39728
39729         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
39730         available registers when failed to discover LHS register class.
39731         Fix indentation.  Update comment.
39732
39733 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39734             Alexander Monakov  <amonakov@ispras.ru>
39735
39736         PR rtl-optimization/42389
39737         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
39738         to can_issue_more.
39739         (advance_state_on_fence): Likewise.
39740         (sel_target_adjust_priority): Print debug output only when
39741         sched_verbose >= 4, not 2.
39742         (get_expr_cost): Do not issue all unique insns on the next cycle.
39743         (fill_insns): Initialize can_issue_more from the value saved
39744         with the fence.
39745         * sel-sched-ir.c (flist_add): New parameter issue_more.
39746         Init FENCE_ISSUE_MORE with it.
39747         (merge_fences): Likewise.
39748         (init_fences): Update call to flist_add.
39749         (add_to_fences, add_clean_fence_to_fences)
39750         (add_dirty_fence_to_fences): Likewise.
39751         (move_fence_to_fences): Update call to merge_fences.
39752         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
39753         sched groups.
39754         * sel-sched-ir.h (struct _fence): New field issue_more.
39755         (FENCE_ISSUE_MORE): New accessor macro.
39756
39757 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39758
39759         PR rtl-optimization/42388
39760         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
39761         that have no predecessors nor successors.  Do not call move_bb_info
39762         for empty blocks outside of current region.
39763
39764 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39765
39766         PR rtl-optimization/42294
39767         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
39768         * sel-sched.c (move_exprs_to_boundary): Transitively add all
39769         originators' originators.
39770
39771 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39772
39773         PR rtl-optimization/39453
39774         PR rtl-optimization/42246
39775         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
39776         for pipelining_p.
39777         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
39778
39779 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39780             Alexander Monakov  <amonakov@ispras.ru>
39781
39782         PR middle-end/42245
39783         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
39784         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
39785         argument.  Update all callers.
39786         (tidy_control_flow): ... and here.  Recompute topological order
39787         of basic blocks in region if necessary.
39788         (sel_redirect_edge_and_branch): Change return type.  Return true
39789         if topological order might have been invalidated.
39790         (purge_empty_blocks): Export and move from...
39791         * sel-sched.c (purge_empty_blocks): ... here.
39792         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
39793         (maybe_tidy_empty_bb): Delete prototype.
39794         (purge_empty_blocks): Declare.
39795
39796 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39797
39798         PR rtl-optimization/42249
39799         * sel-sched.c (try_replace_dest_reg): When chosen register
39800         and original register is the same, do not bail out early, but
39801         still check all original insns for validity of replacing destination
39802         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
39803         in this case.
39804
39805 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39806
39807         PR c/42721
39808         Port from no-undefined-overflow branch:
39809         2009-03-09  Richard Guenther  <rguenther@suse.de>
39810
39811         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
39812
39813 2010-01-14  Richard Guenther  <rguenther@suse.de>
39814
39815         PR lto/42665
39816         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
39817
39818 2010-01-14  Ira Rosen  <irar@il.ibm.com>
39819
39820         PR tree-optimization/42709
39821         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
39822         as scalar type in creation of constant vector operand.
39823
39824 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
39825
39826         PR testsuite/42414
39827         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
39828         (check-parallel-%): Match `testsuite' directory component only
39829         at the end.
39830
39831 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
39832
39833         PR translation/39521
39834         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
39835         strings with _().
39836
39837 2010-01-13  Richard Guenther  <rguenther@suse.de>
39838
39839         PR tree-optimization/42730
39840         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
39841         offset zero.
39842
39843 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
39844
39845         PR target/pr42542
39846         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
39847         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
39848         them signed.
39849
39850 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
39851
39852         * config/bfin/libgcc-bfin.ver: Regenerate based on current
39853         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
39854         ___umulsi3_highpart.
39855
39856         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
39857         rather than schedule_insns if the pass is enabled.
39858
39859 2010-01-13  Martin Jambor  <mjambor@suse.cz>
39860
39861         PR tree-optimization/42704
39862         * tree-sra.c (sra_modify_assign): Do not delete assignments to
39863         SSA_NAMEs.
39864
39865 2010-01-13  Martin Jambor  <mjambor@suse.cz>
39866
39867         PR tree-optimization/42703
39868         * tree-sra.c (analyze_access_subtree): Check that we can build a
39869         reference to the original data within the aggregate.
39870
39871 2010-01-13  Richard Guenther  <rguenther@suse.de>
39872
39873         PR tree-optimization/42705
39874         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
39875
39876 2010-01-13  Richard Guenther  <rguenther@suse.de>
39877
39878         PR middle-end/42716
39879         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
39880
39881 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
39882
39883         PR debug/41371
39884         * var-tracking.c (values_to_unmark): New variable.
39885         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
39886         values_to_unmark vector.  Moved body to...
39887         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
39888         instead queue it into values_to_unmark vector.
39889         (vt_find_locations): Free values_to_unmark vector.
39890
39891 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
39892
39893         * config/s390/s390.c (override_options): Set
39894         default of max-pending-list-length to 256
39895
39896 2010-01-13  Richard Guenther  <rguenther@suse.de>
39897
39898         PR lto/42678
39899         * tree-pass.h (PROP_gimple_lcx): New.
39900         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
39901         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
39902         before the final cleanup_eh.
39903         (dump_properties): Dump PROP_gimple_lcx.
39904         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
39905         (tree_lower_complex_O0): Remove.
39906         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
39907         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
39908         tree_lower_complex, schedule TODO_update_ssa.
39909         * lto-streamer-out.c (output_function): Stream the functions
39910         properties.
39911         * lto-streamer-in.c (input_function): Likewise.
39912         (lto_read_body): Do not override them here.
39913
39914 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
39915
39916         PR c/42708
39917         * c-typeck.c (build_c_cast): Fold value cast to union type before
39918         wrapping it in a CONSTRUCTOR.
39919
39920 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
39921
39922         PR rtl-optimization/42699
39923         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
39924         involved.
39925
39926 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39927
39928         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
39929         SUBTARGET_WARN_UNUSED_SPEC): Move ...
39930         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
39931         SUBTARGET_WARN_UNUSED_SPEC): ... here
39932         * config/mips/iris5.h (LIBGCC_SPEC): Define.
39933
39934 2010-01-12  Julian Brown  <julian@codesourcery.com>
39935
39936         * config/arm/neon-schedgen.ml (Utils): Don't try to
39937         open missing module.
39938         (find_with_result): New.
39939
39940 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
39941
39942         PR debug/42662
39943         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
39944         sharing when canonicalizing ({lt,ge}u (plus a b) b).
39945
39946         PR tree-optimization/42645
39947         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
39948         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
39949         decl_map, set processing_debug_stmt to -1 and return name without
39950         any remapping.
39951
39952 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
39953
39954         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
39955         binutils version, and reword target configuration description.
39956
39957 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
39958
39959         * config/avr/avr.h (LINKER_NAME): Remove.
39960
39961 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
39962
39963         PR target/42416
39964         * config/rs6000/rs6000.c (rs6000_override_options): On targets
39965         that support VSX, warn for -mno-altivec if vsx is not disabled,
39966         and disable vsx.
39967
39968 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
39969             Shujing Zhao  <pearly.zhao@oracle.com>
39970
39971         PR translation/42469
39972         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
39973         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
39974         character between option name and help text.
39975         * c.opt (imultilib): Likewise.
39976
39977 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
39978
39979         * lto-streamer-out.c (output_unreferenced_globals): Output static
39980         variables.
39981
39982 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
39983
39984         PR rtl-optimization/42621
39985         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
39986         optimizing for size.
39987         (duplicate_computed_gotos): Remove now-redundant check.
39988
39989 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
39990
39991         PR target/37454
39992         * configure.ac: Save and restore LDFLAGS and LIBS
39993         * configure: Regenerate.
39994
39995 2010-01-10  Richard Guenther  <rguenther@suse.de>
39996
39997         PR middle-end/42667
39998         * builtins.c (fold_builtin_strlen): Add type argument and
39999         convert the resulting length to it.
40000         (fold_builtin_1): Adjust.
40001
40002 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
40003
40004         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
40005         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
40006         1 insn.
40007         (num_insns_constant_wide): Adjust for that change.
40008
40009 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40010
40011         PR debug/42631
40012         * web.c (union_defs): Add used argument, to combine uses of
40013         uninitialized regs.
40014         (entry_register): Adjust type and tests of used argument.
40015         (web_main): Widen used for new use.  Pass it to union_defs.
40016         * df.h (union_defs): Adjust prototype.
40017
40018 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40019
40020         PR debug/42630
40021         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
40022         uses in new incoming argument.  Free body.
40023         (reset_debug_uses_in_loop): New.
40024         (analyze_insn_to_expand_var): Call the latter if the former found
40025         anything.  Fix whitespace.  Reject invalid dest overlaps before
40026         going through all insns in the loop.
40027
40028 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40029
40030         PR debug/42629
40031         * haifa-sched.c (dying_use_p): Debug insns don't count.
40032
40033 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40034
40035         PR middle-end/42363
40036         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
40037         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
40038         (verify_gimple_call): Reject LHS in noreturn calls.
40039
40040 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40041
40042         PR debug/42604
40043         PR debug/42395
40044         * tree-vect-loop-manip.c (adjust_info): New type.
40045         (adjust_vec): New pointer to vector.
40046         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
40047         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
40048         (slpeel_update_phis_for_duplicate_loop): Use them.
40049         (slpeel_update_phi_nodes_for_guard1): Likewise.
40050         (slpeel_update_phi_nodes_for_guard2): Likewise.
40051         (slpeel_tree_peel_loop_to_edge): Likewise.
40052         (vect_update_ivs_after_vectorizer): Likewise.
40053
40054 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40055
40056         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
40057         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
40058
40059 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40060
40061         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
40062         bogus uninitialized warning.
40063
40064 2010-01-09  Richard Guenther  <rguenther@suse.de>
40065
40066         PR middle-end/42512
40067         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
40068         the evolution is compatible with the initial condition.
40069
40070 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
40071
40072         * gcc.c (process_command): Update copyright notice dates.
40073         * gcov.c (print_version): Likewise.
40074         * gcov-dump.c (print_version): Likewise.
40075         * mips-tfile.c (main): Likewise.
40076         * mips-tdump.c (main): Likewise.
40077
40078 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
40079
40080         PR target/41885
40081         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
40082         (rotlhi3): Delete.
40083         (rotlhi3_8): Delete.
40084         (rotlsi3): Delete.
40085         (rotlsi3_8): Delete.
40086         (rotlsi3_16): Delete.
40087         (rotlsi3_24): Delete.
40088         (rotl<mode>3): New.
40089         (*rotw<mode>3): New.
40090         (*rotb<mode>3): New.
40091         * config/avr/avr.c (avr_rotate_bytes): New function.
40092         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
40093
40094 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
40095
40096         PR target/37454
40097         * configure.ac: Modify -rdynamic check.
40098         * configure: Regenerate.
40099
40100 2010-01-08  DJ Delorie  <dj@redhat.com>
40101
40102         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
40103         register popping order.
40104
40105 2010-01-08  Richard Guenther  <rguenther@suse.de>
40106
40107         PR lto/42528
40108         * c.opt (fsigned-char): Also let LTO handle this option.
40109         (funsigned-char): Likewise.
40110
40111 2010-01-07  Richard Guenther  <rguenther@suse.de>
40112
40113         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
40114         (gimple_op): Likewise.
40115         (gimple_op_ptr): Likewise.
40116         (gimple_assign_set_lhs): Remove gcc_assert.
40117         (gimple_assign_set_rhs1): Likewise.
40118         (gimple_assign_set_rhs2): Likewise.
40119         (gimple_call_set_lhs): Likewise.
40120         (gimple_call_set_fn): Likewise.
40121         (gimple_call_set_fndecl): Likewise.
40122         (gimple_call_fndecl): Likewise.
40123         (gimple_call_return_type): Likewise.
40124         (gimple_call_set_chain): Likewise.
40125         (gimple_call_num_args): Likewise.
40126         (gimple_call_set_arg): Likewise.
40127         (gimple_cond_set_code): Likewise.
40128         (gimple_cond_set_lhs): Likewise.
40129         (gimple_cond_set_rhs): Likewise.
40130         (gimple_cond_set_true_label): Likewise.
40131         (gimple_cond_set_false_label): Likewise.
40132         (gimple_label_set_label): Likewise.
40133         (gimple_goto_set_dest): Likewise.
40134         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
40135         (gimple_debug_bind_get_value): Likewise.
40136         (gimple_debug_bind_get_value_ptr): Likewise.
40137         (gimple_debug_bind_set_var): Likewise.
40138         (gimple_debug_bind_set_value): Likewise.
40139         (gimple_debug_bind_reset_value): Likewise.
40140         (gimple_debug_bind_has_value_p): Likewise.
40141         (gimple_return_retval_ptr): Remove gcc_assert.
40142         (gimple_return_retval): Likewise.
40143         (gimple_return_set_retval): Likewise.
40144         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
40145         (safe_referenced_var_iterator): Remove.
40146         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
40147         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
40148         (fill_referenced_var_vec): Remove.
40149         (first_readonly_imm_use): Remove redundant gcc_assert.
40150         (phi_arg_index_from_use): Combine gcc_asserts.
40151         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
40152         (first_imm_use_stmt): Remove redundant gcc_assert.
40153         * tree-cfg.c (verify_gimple_call): Verify function and chain
40154         operands.  Verify arguments.
40155         (verify_types_in_gimple_stmt): Verify condition code and labels.
40156
40157 2010-01-07  Richard Guenther  <rguenther@suse.de>
40158
40159         PR tree-optimization/42641
40160         * sese.c (rename_map_elt_info): Use the SSA name version, do
40161         not hash pointers.
40162
40163 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
40164
40165         PR tree-optimization/42625
40166         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
40167         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
40168
40169 2010-01-07  Duncan Sands  <baldrick@free.fr>
40170
40171         * Makefile.in (PLUGIN_HEADERS): Add version.h.
40172
40173 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
40174
40175         PR target/42511
40176         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
40177         note itself is not function_invariant_p.
40178
40179 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
40180
40181         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
40182         Do not add the DF_NOTE problem.
40183         * store-motion.c (execute_rtl_store_motion): Likewise.
40184
40185 2010-01-07  Martin Jambor  <mjambor@suse.cz>
40186
40187         PR tree-optimization/42157
40188         * tree-sra.c (compare_access_positions): Stabilize sort if both
40189         accesses have integer types, return zero immediately if they are the
40190         same.
40191
40192 2010-01-06  Richard Henderson  <rth@redhat.com>
40193
40194         PR middle-end/41883
40195         * haifa-sched.c (add_to_note_list): Merge into ...
40196         (concat_note_lists): ... here, and ...
40197         (unlink_other_notes, rm_other_notes): Merge into...
40198         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
40199         NOTE_INSN_EPILOGUE_BEG.
40200
40201 2010-01-06  Richard Guenther  <rguenther@suse.de>
40202
40203         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
40204         not inline regular functions into always-inline functions.
40205
40206 2010-01-06  Nick Clifton  <nickc@redhat.com>
40207
40208         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
40209         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
40210         used together.
40211         (OVERRIDE_OPTIONS): Delete.
40212         (OPTIMIZATION_OPTIONS): Define.
40213         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
40214         * config/rx/rx.c (rx_handle_option): Issue an error message if
40215         -mcpu=rx200 and -fpu are used together.
40216         (rx_set_optimization_options): New function.  Issue an error
40217         message if an optimization attribute attempts to reset the FPU/
40218         math optimization pairing.
40219         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
40220         * config/rx/rx.opt: Set the default to 32-bit doubles.
40221         * config/rx/t-rx: Add multilibs for -nofpu option.
40222         * doc/invoke.texi: Update documentation of RX options.
40223
40224 2010-01-06  Richard Guenther  <rguenther@suse.de>
40225
40226         * tree-ssa-pre.c (name_to_id): New global.
40227         (alloc_expression_id): Simplify SSA name handling.
40228         (lookup_expression_id): Likewise.
40229         (init_pre): Zero name_to_id.
40230         (fini_pre): Free it.
40231
40232 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
40233
40234         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
40235
40236 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
40237
40238         PR target/42542
40239         * config/i386/sse.md (smaxv2di3): New.
40240         (umaxv2di3): Likewise.
40241         (sminv2di3): Likewise.
40242         (uminv2di3): Likewise.
40243
40244 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
40245
40246         PR target/42564
40247         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
40248         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
40249         (legitimize_tls_address): Likewise.
40250         (sparc_tls_referenced_p): Likewise.
40251         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
40252         and adjust calls to legitimize_pic_address.
40253         (legitimate_constant_p) Use sparc_tls_referenced_p.
40254         (legitimate_pic_operand_p): Likewise.
40255         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
40256         (sparc_tls_symbol_ref_1): Delete.
40257         (sparc_tls_referenced_p): Make static, recognize specific patterns.
40258         (legitimize_tls_address): Make static, handle CONST patterns.
40259         (legitimize_pic_address): Make static, remove unused parameter and
40260         adjust recursive calls.
40261         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
40262         and adjust call to legitimize_pic_address.
40263         (sparc_output_mi_thunk): Likewise.
40264
40265 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
40266             H.J. Lu  <hongjiu.lu@intel.com>
40267
40268         PR target/42542
40269         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
40270         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
40271         operands to make them signed.
40272
40273         Revert:
40274         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40275
40276         PR target/42542
40277         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
40278         GTU to GT for V4SI and V2DI.
40279
40280         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
40281         (umin<mode>3): Removed.
40282         (uminv8hi3): New.
40283         (uminv4si3): Likewise.
40284
40285 2010-01-05  Martin Jambor  <mjambor@suse.cz>
40286
40287         PR tree-optimization/42462
40288         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
40289         current_function_decl to helper functions and macros.
40290
40291 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40292
40293         PR bootstrap/41771
40294         * flags.h: Don't include real.h.
40295         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
40296         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
40297         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
40298         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
40299         * dominance.c: Update copyright.
40300         * gimple.c (walk_gimple_op): Remove inline.
40301         * tree-ssa-reassoc.c: Include real.h.
40302         * Makefile.in (FLAGS_H): Remove $(REAL_H).
40303         (tree-ssa-reassoc.o): Depend on $(REAL_H).
40304
40305 2010-01-05  Nick Clifton  <nickc@redhat.com>
40306
40307         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
40308         register to push into the stack frame when the accumulator has to
40309         be saved during interrupts.
40310
40311 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
40312
40313         * doc/invoke.texi: Remove the documentation about option
40314         -Wunreachable-code.
40315         * common.opt (Wunreachable-code):  Preserved for backward
40316         compatibility.
40317         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
40318         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
40319         the backward compatibility flag section.
40320
40321 2010-01-05  Richard Guenther  <rguenther@suse.de>
40322
40323         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
40324
40325 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
40326
40327         PR other/42611
40328         * cfgexpand.c (expand_one_var): Diagnose too large variables.
40329
40330         PR tree-optimization/42508
40331         * tree-sra.c (convert_callers): Check for recursive call
40332         by comparing cgraph nodes instead of decls.
40333         (modify_function): Call ipa_modify_formal_parameters also
40334         on all same_body aliases.
40335
40336         * cgraphunit.c (cgraph_materialize_all_clones): Compare
40337         cgraph nodes when checking for same_body aliases.
40338
40339 2010-01-05  Richard Guenther  <rguenther@suse.de>
40340
40341         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
40342         allocation and lookup.
40343         (get_or_alloc_expr_for_constant): Likewise.
40344         (phi_translate): Sink allocation.
40345
40346 2010-01-04  Richard Guenther  <rguenther@suse.de>
40347
40348         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
40349         a new entry only if needed.
40350         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
40351         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
40352         hashtable lookup.
40353         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
40354         the result array.
40355         (phi_translate): Handle CONSTANTs early.
40356
40357 2010-01-04  Martin Jambor  <mjambor@suse.cz>
40358
40359         PR tree-optimization/42398
40360         * tree-sra.c (struct access): Removed flag grp_different_types.
40361         (dump_access): Do not dump the removed flag.
40362         (sort_and_splice_var_accesses): Do not set the removed flag.
40363         (sra_modify_expr): Check for type compatibility directly.
40364
40365 2010-01-04  Martin Jambor  <mjambor@suse.cz>
40366
40367         PR tree-optimization/42366
40368         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
40369         edges with variable number of parameters.
40370         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
40371         flag instead of asserting it.
40372         (ipa_read_node_info): Read uses_analysis_done flag.
40373
40374 2010-01-04  Richard Guenther  <rguenther@suse.de>
40375
40376         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
40377         iterative_hash_* as intended.
40378         (vn_reference_compute_hash): Likewise.  Simplify hashing
40379         SSA names.
40380         (vn_reference_lookup_2): Likewise.
40381         (vn_nary_op_compute_hash): Likewise.
40382         (vn_phi_compute_hash): Likewise.
40383         (expressions_equal_p): Remove strange code.
40384         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
40385         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
40386         (bitmap_insert_into_set_1): Take value-id as parameter.
40387         (add_to_value): Pass it.
40388         (bitmap_insert_into_set): Likewise.
40389         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
40390
40391 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
40392
40393         PR driver/42442
40394         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
40395         (do_self_spec): For switches with SWITCH_IGNORE set set also
40396         SWITCH_IGNORE_PERMANENTLY.
40397         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
40398         of SWITCH_IGNORE.
40399
40400 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
40401
40402         * lto-streamer-out.c (output_unreferenced_globals): Output the full
40403         tree of an unreferenced global var.
40404
40405 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40406
40407         PR target/42542
40408         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
40409         GTU to GT for V4SI and V2DI.
40410
40411         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
40412         (umin<mode>3): Removed.
40413         (uminv8hi3): New.
40414         (uminv4si3): Likewise.
40415
40416 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40417
40418         PR lto/42581
40419         * collect2.c (main): Turn on trace in collect2 if -v is passed
40420         to gcc with LTO.
40421
40422 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
40423
40424         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
40425         description of expression operand.
40426
40427 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
40428
40429         * configure.ac: Add install-html to target_list for Make-hooks.
40430         * configure: Regenerate.
40431         * fortran/Make-lang.in (F95_HTMLFILES): New.
40432         (fortran.html): Use it.
40433         (fortran.install-html): New.
40434         * Makefile.in (install-html): Add lang.install-html.
40435         * java/Make-lang.in (JAVA_HTMLFILES): New.
40436         (java.html): Use it.
40437         (java.install-html): New.
40438         * objc/Make-lang.in (objc.install-html): New.
40439         * objcp/Make-lang.in (obj-c++.install-html): New.
40440         * cp/Make-lang.in (c++.install-html): New.
40441         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
40442         * lto/Make-lang.in (lto.install-html): New.
40443
40444 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
40445
40446         PR lto/42520
40447         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
40448
40449 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
40450
40451         PR rtl-optimization/41862
40452         * store-motion.c (store_killed_in_insn, compute_store_table,
40453         remove_reachable_equiv_notes, replace_store_insn,
40454         build_store_vectors): Ignore all DEBUG_INSNs.
40455
40456 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
40457
40458         PR lto/41564
40459         * common.opt: Add dumpdir.
40460
40461         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
40462         isn't specified.
40463         (option_map): Add --dumpdir.
40464
40465         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
40466
40467         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
40468
40469         * opts.c (decode_options): Try dump_dir_name first if
40470         dump_base_name isn't an absolute path.
40471         (common_handle_option): Handle OPT_dumpdir.
40472
40473         * toplev.c (dump_dir_name): New.
40474         (print_switch_values): Also ignore -dumpdir.
40475
40476         * toplev.h (dump_dir_name): New.
40477
40478 2010-01-03  Richard Guenther  <rguenther@suse.de>
40479
40480         PR tree-optimization/42589
40481         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
40482         double-word expansion of bswap32.
40483
40484 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
40485
40486         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
40487         with BLOCK_FOR_INSN.
40488         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
40489         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
40490         noce_process_if_block): Likewise.
40491         * gcse.c (compute_local_properties, insert_expr_in_table,
40492         insert_set_in_table, canon_list_insert, find_avail_set,
40493         pre_insert_copy_insn): Likewise.
40494
40495         * basic-block.h (BLOCK_NUM): Move from here...
40496         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
40497
40498 2010-01-03  Richard Guenther  <rguenther@suse.de>
40499
40500         PR tree-optimization/42438
40501         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
40502         contains_may_not_return_call flag.
40503         (BB_MAY_NOTRETURN): New.
40504         (valid_in_sets): Trapping nary operations are not valid
40505         in blocks that may not return.
40506         (insert_into_preds_of_block): Remove check for trapping expressions.
40507         (compute_avail): Compute also BB_MAY_NOTRETURN.
40508
40509 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
40510
40511         * doc/invoke.texi: Add 2010 to copyright years.
40512
40513 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
40514
40515         * config/sparc/sparc.c: Fix formatting nits.
40516
40517 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
40518             Alexander Monakov  <amonakov@ispras.ru>
40519
40520         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
40521
40522 2010-01-02  Richard Guenther  <rguenther@suse.de>
40523
40524         PR middle-end/42577
40525         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
40526         (simplify_switch_using_ranges): Mark to be removed edges
40527         as non-executable.
40528
40529 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
40530
40531         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
40532
40533         * collect2.c (scan_libraries): Add missing argument in call to
40534         scan_prog_file.
40535
40536 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
40537
40538         PR target/42448
40539         * config/alpha/predicates.md (aligned_memory_operand): Return false
40540         for CQImode.
40541         (unaligned_memory_operand): Return true for CQImode.
40542         * config/alpha/alpha.c (get_aligned_mem): Assert that location
40543         doesn not cross aligned SImode word boundary.
40544
40545 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
40546
40547         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
40548         Remove.
40549         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
40550         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
40551
40552 2010-01-02  Richard Guenther  <rguenther@suse.de>
40553
40554         PR lto/41597
40555         * toplev.c (compile_file): Emit LTO marker properly.  Change
40556         it to __gnu_lto_v1.
40557         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
40558
40559 2010-01-01  Richard Guenther  <rguenther@suse.de>
40560
40561         PR debug/42455
40562         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
40563
40564 2010-01-01  Richard Guenther  <rguenther@suse.de>
40565
40566         PR c/42570
40567         * c-decl.c (grokdeclarator): For zero-size arrays force
40568         structural equality checks as layout_type does.
40569
40570 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
40571
40572         * builtins.c: Update copyright to 2010.
40573
40574 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
40575
40576         PR lto/42531
40577         * lto-streamer-out.c (produce_asm): Revert the last change.
40578         (copy_function): Likewise.
40579
40580         * lto-streamer.c (lto_get_section_name): Skip any leading
40581         asterisk in name.
40582
40583 2010-01-01  Richard Guenther  <rguenther@suse.de>
40584
40585         PR middle-end/42559
40586         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
40587         for LABEL_DECLs.
40588
40589 \f
40590 Copyright (C) 2010 Free Software Foundation, Inc.
40591
40592 Copying and distribution of this file, with or without modification,
40593 are permitted in any medium without royalty provided the copyright
40594 notice and this notice are preserved.